准备工作
=========
0、克隆一个远程的代码厍
git clone ...
1、在本地创建一个work分支
git checkout -b work
日常工作
===========
0、在本地的work分支做各种修改,修改完了以后提交。
git commit
1、去主干上把别人最新的修改抓到本地的master
git checkout master
git pull origin master
2、在work分支上rebase主干的修改
git checkout work
git rebase master # 此步骤有可能需要解决冲突。
2.1、(可选)如果此时xxx文件发生冲突,那么git会自动在你本地创建一个临时分支,你需要在这个分支下编辑冲突的文件,解决冲突:
编辑xxx文件
git add xxx
git rebase --continue # 继续执行rebase,如果成功,会返回work分支
或者
git rebase --abort # 回退到rebase之前的状态,返回work分支
2.2、(可选)如果你希望备份一下本地的work分支到服务器上,可以选择在这个时间点去上传
git push origin work
3、在主干上合并work分支的修改。(因为我们已经做了rebase,这里应该没有任何冲突)
git checkout master
git merge work
4、把本地的master推送到服务器,让别人能看到你的工作成果
git push origin master
只要按照此顺序操作,这些基本就是你日常需要用到的所有git命令了,不会遇到什么奇怪的麻烦。而且master的历史会保持线性,不会有多头历史。
注意:这只是我们推荐的工作流程。因为git比较灵活,支持很多种不同的工作流程,所以拦不住你不按这个流程操作。所以,请务必弄明白自己在做什么以后再操作。
在使用git的时候,请记住一个简单的原则:
当你在自己的分支下修改了一个功能,想把代码合并回主干的时候,请在主干上执行: git merge 分支名
当你在自己的分支下工作,此时别人在主干上做了一些修改,你想把这些修改合并到你自己的分支上时,请在自己分支下执行: git rebase master (而不要执行 git merge master)
这样做,可以让代码的提交历史记录更整洁,尤其是多人开发的时候,代码的历史是线性的