①新建分支修改並進行提交
$ git checkout -b branch1
$ vim demo.c
$ git add demo.c
$ git commit -m "code for branch1"
②切換到“master”主分支
上述截圖中,Git提示當前的“master”分支比遠程的“master”分支要超前一個提交。修改“master”分支上的文件後繼續提交修改。
Now,“master”分支和“branch1”分支上都分別有各自的新的提交,在這種情況下,Git無法進行“Fast-forward”。
③合併分支
使用命令“git merge”命令合併分支時,Git提示Automatic merge failed; fix conflicts and then commit the result.存在衝突無法自動合併需要進行手動解決。使用“git status”查看當前文件狀態。
文件狀態顯示中標紅處衝突的文件爲:“ both modified: demo.c”。查看衝突的文件的文件內容:
#include<iostream>
using namespace std;
/*
* function: demo
<<<<<<< HEAD
=======
* return: 0
>>>>>>> branch1
* date: 2019-09-22
* author: colin.tan
* */
void demo(void)
{
cout << "666" << endl;
}
/*
function main
return 0
*/
int main(void)
{
cout << "Hello World!" << endl;
return 0;
}
在衝突的文件中,Git使用了<<<<<<< 、 ======= 、 >>>>>>>來對不同的分支內容進行標識。
④重新修改之後再次提交
提交後使用帶參數的“git log”命令進行當前分支合併狀態的查看
$ git log --graph --pretty=oneline --abbrev-commit
PS: 使用“git log --graph”命令可以查看分支合併圖。
⑤Last,刪除branch1分支