<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                >[info] git merge 功能:合并分支。 現在,我們把`dev`分支的工作成果合并到`master`分支上: ~~~ $ git merge dev Updating d17efd8..fec145a Fast-forward readme.txt | 1 + 1 file changed, 1 insertion(+) ~~~ `git merge`命令用于合并指定分支到當前分支。 ### 想合并,就要先把自己的工作能完成。 ~~~ Administrator@USER-20160512VQ MINGW64 ~/desktop/github-note (master) $ git merge dev error: Your local changes to the following files would be overwritten by merge: test Please commit your changes or stash them before you merge. Aborting ~~~ 如果當前分支有工作未完成(工作區不是干凈的:有未添加到暫存區的修改或者暫存區有內容),那么就會報錯: ~~~   錯誤:您的本地更改以下文件將會被合并覆蓋:   測試   請提交您的更改或隱藏他們之前合并。   流產 ~~~ 這也能解答我們另一個疑問: >[info] 疑問:“工作目錄會切換成解決沖突的模式。”什么意思,如果此時工作區還有工作(有未提交到暫存區的修改和暫存區內容)怎么辦?丟失嗎? > 答:不先完成工作,你壓根就不能進行合并操作哈。 * * * * * ### 如果兩個分支都對同一個文件進行了修改: ~~~ Administrator@USER-20160512VQ MINGW64 ~/desktop/github-note (master) $ git merge dev Auto-merging test CONFLICT (content): Merge conflict in test Automatic merge failed; fix conflicts and then commit the result. ~~~ 那么就會報錯: ~~~   編碼測試   在測試沖突(內容):合并沖突   自動合并失敗;解決沖突,然后提交結果。 ~~~ 此時看一下狀態: ~~~ Administrator@USER-20160512VQ MINGW64 ~/desktop/github-note (master|MERGING) $ git status On branch master Your branch is ahead of 'origin/master' by 7 commits. (use "git push" to publish your local commits) You have unmerged paths. (fix conflicts and run "git commit") (use "git merge --abort" to abort the merge) Unmerged paths: (use "git add <file>..." to mark resolution) both modified: test no changes added to commit (use "git add" and/or "git commit -a") ~~~ 打開沖突的文件看看(工作區進入解決沖突模式): ~~~ Administrator@USER-20160512VQ MINGW64 ~/desktop/github-note (master|MERGING) $ cat test 1 2 xa sd <<<<<<< HEAD master master2 master3 ======= up test 1 up test 2 >>>>>>> dev ~~~ 我們發現: ~~~ …… <<<<<<< HEAD master master2 master3 ======= up test 1 up test 2 >>>>>>> dev …… ~~~ <<<<<<< HEAD 內容 >>>>>>> dev 包裹的就是沖突的部分,=======用于分割兩部分上面HEAD表示當前分支,下面一部分表示dev部分的內容。(細心的你應該發現了命令提示符后面的`(master|MERGING)`了吧) 根據提示我們手動編輯文件解決沖突后在提交(`git add`,`git commit`)就可以完成合并了。 我們先試一下不`git add`,直接`git commit`看有什么效果: ~~~ Administrator@USER-20160512VQ MINGW64 ~/desktop/github-note (master|MERGING) $ git commit -m 'master merge dev' U test error: Committing is not possible because you have unmerged files. hint: Fix them up in the work tree, and then use 'git add/rm <file>' hint: as appropriate to mark resolution and make a commit. fatal: Exiting because of an unresolved conflict. ~~~ 好吧,被發現了: ~~~   錯誤:承諾是不可能的因為你有unmerged文件。   提示:解決他們在工作樹中,然后使用“git添加/ rm <文件>”   提示:適當的分辨率和做出承諾。   致命:退出,因為一個未解決的沖突。 ~~~ 我們猜想是不是這段沖突代碼還有什么作用,能監視到我們并沒有做更改操作嗎?ok,不管沖突,`git add`再直接提交,試一下猜想: ~~~ Administrator@USER-20160512VQ MINGW64 ~/desktop/github-note (master|MERGING) $ git add test Administrator@USER-20160512VQ MINGW64 ~/desktop/github-note (master|MERGING) $ git commit -m 'master merge dev' [master cb8e75d] master merge dev ~~~ 哈哈,我并沒有進行任何編輯呢,看來git并沒有監視我們是否解決沖突了,它只是將沖突給我們看下,讓我們自己決定,那么沖突代碼并沒有其他作用,只是方便我們對照解決沖突部分。(不過它也不能“監視”呢,不然要是我們代碼就是有這個用于標記沖突部分的關鍵字呢是吧) ### 來討論一個問題:合并時,什么情況會產生沖突?(B為A的分支,將B合并到A) 1. A,B兩個分支都同一個文件進行了修改 2. A,B修改了各自的文件,但不是你同一個文件 3. A修改了文件,B沒有任何修改 4. B修改了文件,A沒有任何修改 5. A新增了新的文件,B沒有新增文件 6. B新增了新的文件,A沒有新增文件 7. A,B都新增了文件,各自新增的文件名不同 8. A,B都新增了文件,各自新增的文件名有相同的 9. A刪除了某文件,B沒有刪除文件 10. B刪除了某文件,A沒有刪除文件 11. A,B都刪除了某文件,各自刪除的文件名不同 12. A,B都刪除了某文件,各自刪除的文件名有相同的 ……??? 到底什么時候沖突,什么時候不沖突,每種情況下是怎么解決沖突的。 1. 沖突:對沖突文件進行手動編輯解決(git將文件差異對比放在沖突文件中了),然后在提交,工作目錄會切換成解決沖突的模式。 疑問:“工作目錄會切換成解決沖突的模式。”什么意思,如果此時工作區還有工作(有未提交到暫存區的修改和暫存區內容)怎么辦?丟失嗎? 2. 不知道 3. 不知道 4. 不知道 5. 不知道 6. 不知道 7. 不知道 8. 不知道 9. 不知道 10. 不知道 11. 不知道 12. 不知道 合并竟然把工作區(工作目錄,未添加到暫存區的修改,暫存區)也合并過來了。 切換分支,并不會改變工作區哦,看來工作區不是屬于分支的哦。(這可能就解釋了上面那句荒誕的問題了) 不帶參數時什么效果 ---- ~~~ 什么時候會有修改沖突? A的f上一個版本,等于B的f當前版本,或者B的f上一個版本,等于A的f當前版本,此時沒有沖突,新版f直接覆蓋舊版。 除此之外,都需要解決沖突 而git能基于行的版本跟蹤! ~~~
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看