我在git的常規一向很簡單,我沒有得到任何衝突,沒有我的許可,它強制更新我的本地副本。沿着這些線:'2個文件改變,2個插入(+),6個刪除( - )'。但就我而言,衝突不應該從簡單的合併中解決,而應該從我這邊要求手動解決衝突。爲什麼git不讓我去做手動衝突解決?提前致謝! 注意:我的git命令都沒有強制選項-fGit是沒有顯示任何衝突,並覆蓋我的本地副本
2
A
回答
5
git pull
沒有參數或多或少相當於git fetch && git merge origin/<upstream_branch>
。通過使用pull
而不是fetch
和merge
,您允許git嘗試合併到您的本地分支。如果合併發生時沒有衝突,那麼您的本地將顯示「強制更新」,因爲它能夠在您的干預下理清遠程文件版本與您自己的文件之間的差異。
調試發生了什麼是那種很難沒有看到你的代碼,但試試這個:
git fetch ;# fetch the remote changes
git diff HEAD origin/<branch> ;# diff your local branch with the remote's copy of <branch>
輸出從git diff
應該線索你到發生了什麼。如果您想更進一步,請嘗試git merge --no-commit origin/<branch>
,然後發出git diff --cached
。這會告訴你到底git自動合併了哪些更改,並且應該允許你確定什麼是什麼。
0
如果git
設法解決git pull
期間的所有衝突,那麼它將進行提交。這並不意味着它一定是正確的。正如你已經注意到的,根據你的變化,你可能需要做一些手動修復。
要做到這一點,請在拉出後在工作樹中進行更正,然後對其進行分級(例如,使用git add -u
),並使用git commit --amend
修改合併提交。
這將創建一個新的合併提交,它會替換git用包含更正的git所做的合併提交。
然後,您可以像往常一樣推送結果。
相關問題
- 1. SVN覆蓋XML文件的本地副本而不是顯示衝突
- 2. Git合併覆蓋而不是衝突
- 3. 當本地沒有更改時,git工作副本如何衝突?
- 4. 突出顯示cursorcolumn覆蓋任何現有突出顯示
- 5. 沒有覆蓋的Gradle副本
- 6. Git ID沒有顯示任何二進制文件衝突
- 7. GIT - 將現有本地副本與克隆副本合併
- 8. git:如何覆蓋合併的所有本地更改?
- 9. 覆蓋已顯示的本地通知
- 10. Git pull只覆蓋衝突文件
- 11. Git:如何覆蓋本地更改?
- 12. Android - 突出顯示文本和副本
- 13. SVN沒有本地副本
- 14. git:如何獲取衝突文件的副本?
- 15. Git rebase - 合併衝突時強行覆蓋
- 16. 用本地(Git)覆蓋主機
- 17. 意外的顛覆衝突行爲(衝突沒有衝突)
- 18. 衝突使用Ipaddress:顯示而不是本地主機
- 19. 衝突的jQuery腳本 - 工作本地化,但沒有生活
- 20. 使用最新版本覆蓋git中的特定衝突文件
- 21. 覆蓋屬性衝突
- 22. 用本地副本覆蓋遠程JavaScript文件?
- 23. IMobileServiceSyncHandler - 覆蓋本地版本
- 24. 有沒有辦法在本地存儲庫配置中覆蓋git作者的顯示名稱?
- 25. 如何移動我的本地副本git repo?
- 26. 合併衝突Git
- 27. Git合併衝突
- 28. Git合併(衝突)
- 29. TFS:如何合併僅在我的貨架上的更改,而不會覆蓋本地副本enterwrite
- 30. Firebug沒有顯示任何腳本
'git'沒有這樣做(以我的經驗),所以你可能會忘記一些看似情況的信息。也許你有一個錯誤的石器時代版本的'git'? 'git --version'告訴你什麼? – bitmask 2012-07-06 19:56:41
嘗試'git fetch'然後'git merge'(查找命令行)。默認情況下'git pull'會自動嘗試「衝突」解決方案,並且根據我的經驗,如果算法放棄了衝突,則不會這樣做。 – Robert 2012-07-06 20:06:50
@Robert:但是這與'git pull'沒有什麼不同? – 2012-07-06 22:33:19