git 日常用法
git pull远程主机名>远程分支名>:本地分支名>
git push远程主机名>本地分支名>:远程分支名> , 和git pull 都是 src:dest
git fetch远程主机名>分支名>其实就是拉去远程分支到本地版本库,然后再使用 git merge
git merge 合并分支,将 合并到当前所在的分支, 比如 git merge master ,将本地master与自己的分支合并,比如 git merge origin/branch ,就是将远程的 origin/branch 与本地的分支合并 , 比如不自动commit,可以 git merge--no-commit 。 其实git merge 可以一次合并多个分支,比如 git merge origin/ 其实就是管你远程和本地了全部合到我的分支上。
git diff 在两个分支之间比较
git diff--cached 比较 git add. 与 工作区之间的比较 , 也就是本地暂存区与工作区之间的比较
git reset--mixed 将暂存区的分支直接回到到工作区, 也就是比如 git add. 你想回退到本地,直接 `git resrt --mixed
git reset--mixed HEAD~1 回退一个版本,比如你本地commit/远程已经push了,那么你本地和远程是一样的,如果你想回退一个版本,此时需要reset操作,主要是解决回退的操作,上面就是commit一次后需要回退一个版本,所以是 HEAD 1 , 比如commit了两次就是 HEAD~2 , 此时有4种选项,一般分为 --hard 和 --mixed , --soft , --hard 硬reset,回退回来你的这次修改全部没有了,也就是直接回到了上一个版本,而 --mixed 回退到你没有 git add. 操作的时候, --soft 是回退到你 git add. 操作完后的时候。 看需求吧。一般只用 --hard 和 --mixed .
git commit--amend 主要是处理 你 git commit-m'' 想要修改 commit的desc/comment了。
git rm-r--cached. 比如修改了 gitignore ,但是其实你的版本库/暂存区是没有 ignore的,所以需要直接删除 暂存区的缓存。
git rm file 也就是删除本地开发的一个文件,硬删除,直接删没了,回退也需要硬回退。
git checkout. 清空本地所有修改的代码
git checkout-b 将本地的这个分支,checkout 出一个新的分支,名字为 git checkout-b origin/ ,将远程的 分支上 checkout一个新的本地分支名字为`
有些场景可能需要打tag,所以一般是 git pull ,拉去远程的所有代码(记得切换到master上),然后 git tag 查看 tag 历史 ,创建一个新的tag ,比如 git tag v1.1.0 ,然后直接推送到远程 git push origin v1.1.0 就好了(一般是别人给你合master了,上线可能需要打新的tag)
文件权限 发生变更需要配置:git diff old mode 100644 new mode 100755 的问题 :需要设置 git config --add core.filemode false
git log-p README.md 查看文件的变更详细 历史 , git log 查看文件的变更 历史 ,另外有可能查看某一行的变更,这个是指你没有ide的情况下,所以需要指定
然后
git shortlog-sn 查看提交者
git submodel add remote_addr local_dir 子模块
文档:Git-工具-子模块
1、在父项目新建子模块
2、提交子模块
问题就是,提交流程过于复杂!!