Git 是一個開源的分佈式版本控制系統,用於敏捷高效地處理任何或小或大的項目。Git 是 Linus Torvalds 爲了幫助管理 Linux 內核開發而開發的一個開放源碼的版本控制軟件。Git 與經常使用的版本控制工具 CVS, Subversion 等不一樣,它採用了分佈式版本庫的方式,沒必要服務器端軟件支持。 |
合併並不單單是簡單的文件添加、移除的操做,Git 也會合並修改。php
$ git branch * master $ cat runoob.php
首先,咱們建立一個叫作 change_site 的分支,切換過去,咱們將 runoob.php 內容改成:html
< ?php echo 'runoob'; ?>
建立 change_site 分支:linux
$ git checkout -b change_site Switched to a new branch 'change_site' $ vim runoob.php $ head -3 runoob.php < ?php echo 'runoob'; ?> $ git commit -am 'changed the runoob.php' [change_site 7774248] changed the runoob.php 1 file changed, 3 insertions(+)
將修改的內容提交到 change_site 分支中。 如今,假如切換回 master 分支咱們能夠看內容恢復到咱們修改前的(空文件,沒有代碼),咱們再次修改 runoob.php 文件。git
http://www.51cto.com/it/news/2019/0923/14820.html
https://www.linuxprobe.com/booksvim
$ git checkout master Switched to branch 'master' $ cat runoob.php $ vim runoob.php # 修改內容以下 $ cat runoob.php < ?php echo 1; ?> $ git diff diff --git a/runoob.php b/runoob.php index e69de29..ac60739 100644 --- a/runoob.php +++ b/runoob.php @@ -0,0 +1,3 @@ +< ?php +echo 1; +?> $ git commit -am '修改代碼' [master c68142b] 修改代碼 1 file changed, 3 insertions(+)
如今這些改變已經記錄到個人 "master" 分支了。接下來咱們將 "change_site" 分支合併過來。服務器
$ git merge change_site Auto-merging runoob.php CONFLICT (content): Merge conflict in runoob.php Automatic merge failed; fix conflicts and then commit the result. $ cat runoob.php # 代開文件,看到衝突內容 < ?php <<<<<<< HEAD echo 1; ======= echo 'runoob'; >>>>>>> change_site ?>
咱們將前一個分支合併到 master 分支,一個合併衝突就出現了,接下來咱們須要手動去修改它。分佈式
$ vim runoob.php $ cat runoob.php < ?php echo 1; echo 'runoob'; ?> $ git diff diff --cc runoob.php index ac60739,b63d7d7..0000000 --- a/runoob.php +++ b/runoob.php @@@ -1,3 -1,3 +1,4 @@@ < ?php +echo 1; + echo 'runoob'; ?>
在 Git 中,咱們能夠用 git add 要告訴 Git 文件衝突已經解決工具
$ git status -s UU runoob.php $ git add runoob.php $ git status -s M runoob.php $ git commit [master 88afe0e] Merge branch 'change_site'
如今咱們成功解決了合併中的衝突,並提交告終果。3d