教你玩轉Git-合併衝突
Git 是一個開源的分散式版本控制系統,用於敏捷高效地處理任何或小或大的專案。Git 是 Linus Torvalds 為了幫助管理 核心開發而開發的一個開放原始碼的版本控制軟體。Git 與常用的版本控制工具 CVS, Subversion 等不同,它採用了分散式版本庫的方式,不必伺服器端軟體支援。 |
合併並不僅僅是簡單的檔案新增、移除的操作,Git 也會合並修改。
$ git branch * master $ cat runoob.php
首先,我們建立一個叫做 change_site 的分支,切換過去,我們將 runoob.php 內容改為:
< ?php echo 'runoob'; ?>
建立 change_site 分支:
$ 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 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'
現在我們成功解決了合併中的衝突,並提交了結果。
本文原創地址: 編輯:王豔敏,稽核員:逄增寶
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31524109/viewspace-2658444/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 教你玩轉Git-分支合併Git
- 教你玩轉Git-安裝Git
- 教你玩轉Git-建立倉庫Git
- 教你玩轉Git-伺服器搭建Git伺服器
- 教你玩轉Git-提取遠端倉庫Git
- 教你玩轉Git-刪除遠端倉庫Git
- git 入門教程之衝突合併Git
- Git合併時遇到衝突或錯誤後取消合併Git
- iceberg合併小檔案衝突測試
- 【Git】合併分支報衝突怎麼解決Git
- Git多人合作,合併請求並解決衝突Git
- 處理併發衝突
- 【Git】3. Git重要特性-分支操作,合併衝突詳解Git
- git如何進行程式碼的合併和衝突的解決Git行程
- 如何在VS Code中啟用實時合併衝突檢測?
- 如何用 Git 合併兩個庫(合併歷史記錄,解決衝突/改寫路徑)Git
- Elasticsearch——併發衝突以及解決方案Elasticsearch
- 情緒穩定!別再讓Git合併衝突影響你工作了Git
- 教你用android玩衝頂大會Android
- Git 教程:解密 .gitignore 檔案、合併分支、解決衝突、及 Git 幫助Git解密
- 衝突處理的方法(轉載)
- svn檔案衝突,樹衝突詳解
- mapstruct結合lombok使用的衝突問題StructLombok
- [Git] 在合併分支遇到檔案衝突時,--ours(--theirs) 的具體指向是什麼?Git
- windows10玩遊戲鍵盤衝突怎麼辦 win10遊戲與鍵盤衝突解決方法Windows遊戲Win10
- 團隊間衝突管理策略(轉載)
- 兩張圖教你玩轉VIM!!!
- 教你如何玩轉力扣力扣
- Sql Server 聯合查詢的排序規則衝突SQLServer排序
- commit 衝突MIT
- 雜湊衝突
- 簡談專案的衝突的管理(轉)
- Unity網格合併_材質合併[轉]Unity
- 手把手教你玩轉GitGit
- 教你玩轉HTTP—請求方法HTTP
- 教你玩轉Linux—yum 命令Linux
- 教你玩轉CSS border(邊框)CSS
- 手把手教你如何組合線上學習:實時反饋玩轉組合優化優化