想了一圈还是觉得需要写篇文章来好好的聊下这个每天工作中都在使用的老朋友 git
拉取
仓库下有多个子仓库的情况下,可以使用 git submodule foreach
对每个子仓库进行操作。
可能你一不小心添加了到git仓库中一些没用的文件夹这时候你希望git不再继续追踪这些文件可以使用 git rm
来从git追踪中删除。
合并多个commits
在团队开发中可能会遇到修改一个bug的情况下产生了多个commit历史,如果其中某些commit是完全可以由一个commit来代替的话,可能合并commit使得提交记录更简洁就会更为合适。
(:以上情况只发生在本地仓库, 远程仓库的commit 神圣不可侵犯。
直接使用命令 git rebase -i [startpoint] [endpoint]
其中 -i 的意思是 –interactive,即弹出交互式的界面让用户编辑完成合并操作
startpoint - endpoint
即为合并的区间 如果不指明 endpoint 则默认为当前分支的 HEAD的指向 (从开始一直合并到当前所处的commit)
回退
git 对于已 add
到本地仓库的回退 git reset --hard HEAD^
, 其中的 ^
代表回退一个版本使用两个则代表回退两个版本。(其中 –hard彻底回退到某个版本,本地的源码也会变为上一个版本的内容)。
git 对已经 commit
到本地仓库的回退 git reset [--hard|soft|mixed|merge|keep] [commit|HEAD]
git 对远程仓库的回滚 git checkout <tag>
可以回滚到上次发布的tag、