情景: 项目分为前端和后端, 即frontend和backend. 前后端需要同时改动代码, 按照同一时间只做一端的方式, 以免逻辑混乱.
1. 首先进入项目目录(前端或后端, 此处假设后端), 在develop分支上进行 git pull 拉下最新的代码
2. 在本地新建一个branch 名为issue-932 的分支,
git branch -t origin/develop -b issue-932 // -t : track // -b: branch
3. 在issue-932上进行代码前端的编写和改动
4. 在开发完成后, 使用 git status 查看状态, 用git checkout 文件名 文件名2 ... 的方式去除不需要的更改, 使用git commit -m "提交说明" 来在本地提交
5. 本地提交过后, 使用git push origin issue-932 命令,将本地的提交推送至远端, 远端没有issue-932这个分支,所以默认在远端创建此分支.
a. 如果不是第一次push 那么在需要用 git push origin issue-932 -f 来强制提交合并.
b. 多次强制提交合并会产生多个commit, 合并commit要用到 git rebase 命令
--push完后, 使用 git rebase -i origin/develop 命令 , 此时会弹出一个对话框, pick 后面跟的内容就是每次提交的内容 将需要的pick保留
其他的根据相应的提示进行替换, 如将第一个pick 保留,第二个替换为s 则 第二次提交的会和第一次合并,而且,第二次的提交说明也会
被忽略. ctrl+O ,回车保存,ctrl + x 退出,继续更改issue-commit 的信息.注释掉不需要的message.
这样, 一次rebase就搞定了
6. 虽然本地rebase搞定了, 但是远端确没有, 接下来继续用git push origin issue-932 -f 来强制推送到远端.远端的commit 合并也就搞定了.
//----------接下来就是到另一个文件目录(此处为前端)下创建一个同名分支-------------------//
7. 切换到另一个目录, 建立分支前先确保代码是最新的,不然可能会有别的冲突.
a. 使用git pull 保证develop分支代码的新鲜度.
b. 使用 git checkout -t origin/issue-932 -b issue-932 来创建新分支并跟踪已经存在的issue-932远端分支 .
---此处也可以直接切换到issue-932 以后的合并也不会出现太大麻烦.
8. 在此分支上进行代码的编写, 添加提交并push到远端.
9. 多个commit的情况依旧使用rebase命令进行合并, 冗余的提交信息使用 git commit --amend 命令注释掉,至此, 两个地方成功的合并.
10. 最后 将本地的rebase信息push到远端服务器.
//-----------此时后端分支已经存在------------//
11. 你可以选择切换到后端, pull 代码,编辑, 步骤同上.