回答
使用的git diff --name-only --diff-filter=U
的組合,其列出了未合併的衝突和cat
文件:
您應該結束了的東西,如:
git diff --name-only --diff-filter=U | xargs cat
而且有在文件中的一切,只是重定向輸出:
git diff --name-only --diff-filter=U | xargs cat > conflicts.diff
或者只是將zip文件ES
git diff --name-only --diff-filter=U | xargs zip -r9 conflicts.zip
你說的「出口...所有的衝突」的意思後,衝突中的所有文件的「貓」的文本文件?
您的意思是衝突文件列表嗎?
然後使用
git status --short
(簡潔)或只是git status
,並將其輸出到管道(git status >/tmp/conflicts.txt
)。你的意思是你的修補程序與你所做的工作來解決衝突?
然後記錄一個或多個修改衝突的提交(可能在臨時分支上),然後使用
git format-patch <base_commit>..<current_tip>
。你的意思是與嵌入衝突標記一樣的文件?
然後從
git status
中識別這些文件,並從工作樹中複製它們。
對,我需要得到第三種方法的結果。我想知道是否有更快的方法來做到這一點 – James
@詹姆斯,恐怕不是因爲,說實話,你的需求似乎很不尋常。但不要害怕 - Git是高度可編寫腳本的。你可以編寫一個相當簡單的程序來調用'git status --porcelain'(Git版本之間的輸出保證是穩定的),解析它以檢測衝突的路徑,並且將它們輸出到它的標準輸出流,以便你可以做一些像'./print-conflicting-paths | xargs zip -r9/tmp /衝突。zip' – kostix
@James,請查閱['git-status'](https://www.kernel.org/pub/software/scm/git/docs/git-status.html)手冊頁。實際上,它的'-z'命令行選項可能更適用於機器處理(但* *不包含POSIX shell,這對於'NUL'來說是非常糟糕的)。機器可讀的格式將被詳細解釋。 – kostix
你可以用這一個,以及:
git diff --name-only --diff-filter=U | xargs awk '/<<<<< HEAD/,/>>>>>>/'
這減少了衝突,從文件(提供衝突地區開始在>>>>>>
<<<<< HEAD
和結束),所以你可以把它們扔掉到一個新的文件 - 如果原始文件是巨大的,你只需要顯示衝突便利。
正是我所需要的 - 編輯你的文章 - 希望你不介意:) –
- 1. Git合併不標記衝突文本文件中的所有差異
- 2. 放棄源代碼樹或git中的所有衝突文件
- 3. 刪除git中的文件衝突
- 4. git rebase和文件衝突
- 5. 共享git文件衝突
- 6. git標記爲衝突的所有文件
- 7. 導入文件名衝突
- 8. 如何在git中合併分支中的衝突文件?
- 9. Git合併衝突的文件時拉
- 10. git合併與.class文件的衝突
- 11. 在git中有衝突的分支
- 12. git衝突 - 在HEAD中刪除文件並在版本中修改
- 13. 在GIT中解決文件衝突的一部分
- 14. JQuery文件版本衝突
- 15. 在Git中,有沒有辦法自動將合併衝突中的所有新文件標記爲正確?
- 16. Git pull只覆蓋衝突文件
- 17. Git合併與Yaml文件衝突
- 18. 二進制文件衝突 - git
- 19. Git與程序集DLL文件衝突
- 20. git忽略導致合併衝突的文件
- 21. 如何在git合併提交中列出衝突的文件(父母雙方都有更改的文件)?
- 22. git簽出某些文件儘管存在衝突
- 23. Git合併除一個文件以外的所有文件,並且該文件成爲(完整)衝突文件
- 24. 如何在Git中列出文件中的所有更改
- 25. 告訴git在出現衝突時始終拉取文件的遠程版本
- 26. 衝突文件
- 27. 的Javascript衝突在兩個文件中
- 28. Git svn rebase導致衝突
- 29. Git自動合併失敗(給出衝突)幾乎所有文件只在一個分支中改變
- 30. 如何GIT-DIFF對「他們」的文件版本解決衝突
你有沒有考慮過使用補丁文件? –
確實補丁文件會顯示更改,但不會顯示衝突合併的結果?我的意思是我會看到原始文件(合併之前)和最終版本:我不會看到我修復的衝突。 – James