Git常用流程
-
对于新项目, 在您的项目目录初始化您的项目。 如果是(已有项目)随后的功能开发/代码变动,这一步请忽略。
cd <项目目录> git init
-
检出(checkout) 一个新的功能或故障修复(feature/bug-fix)分支。
git checkout -b <分支名称>
-
新增代码变更。
git add git commit -a
git commit -a
会独立启动一个编辑器用来编辑您的说明信息,这样可以专注于写这些注释说明。 -
保持与远程(develop分支)的同步,以便(使得本地 develop 分支)拿到最新变更。
git checkout develop git pull
当您进行(稍后)变基操作的时候,保持更新会给您一个在您的机器上解决冲突的机会。这比(不同步更新就进行下一步的变基操作并且)发起一个与远程仓库冲突的合并请求要好。
-
(切换至功能分支并且)通过交互式变基从您的develop分支中获取最新的代码提交,以更新您的功能分支。
git checkout <branchname> git rebase -i --autosquash develop
您可以使用
--autosquash
将所有提交压缩到单个提交。没有人会愿意(看到)develop
分支中的单个功能开发就占据如此多的提交历史。 -
如果没有冲突请跳过此步骤,如果您有冲突, 就需要解决它们并且继续变基操作。
git add <file1> <file2> ... git rebase --continue
-
推送您的(功能)分支。变基操作会改变提交历史, 所以您必须使用
-f
强制推送到远程(功能)分支。 如果其他人与您在该分支上进行协同开发,请使用破坏性没那么强的--force-with-lease
参数。git push -f
当您进行 rebase 操作时,您会改变功能分支的提交历史。这会导致 Git 拒绝正常的
git push
。那么,您只能使用-f
或--force
参数了。 -
提交一个合并请求(Pull Request)。
-
Pull Request 会被负责代码审查的同事接受,合并和关闭。
-
如果您完成了开发,请记得删除您的本地分支。
git branch -d <分支>