我正在做一個例程,在每次合併之前執行。它將運行單元測試並檢查其他配置文件。僅供參考,它在節點中編碼。如何在合併之前獲取衝突文件列表?
最後,如果一切正常,它會檢查是否與develop
有衝突,並且只輸出yes
或no
給用戶。 Pull請求應該在gitlab上管理,而不是在本地分支上。所以不應該在當地分公司進行「真正的」合併。
是否有像git -conflitcs-with-this-branch
這樣的git命令?還有一種從nodejs中檢索它的方法?
謝謝,
Stéphane。
我正在做一個例程,在每次合併之前執行。它將運行單元測試並檢查其他配置文件。僅供參考,它在節點中編碼。如何在合併之前獲取衝突文件列表?
最後,如果一切正常,它會檢查是否與develop
有衝突,並且只輸出yes
或no
給用戶。 Pull請求應該在gitlab上管理,而不是在本地分支上。所以不應該在當地分公司進行「真正的」合併。
是否有像git -conflitcs-with-this-branch
這樣的git命令?還有一種從nodejs中檢索它的方法?
謝謝,
Stéphane。
查找合併衝突的命令是git merge
。運行git merge
,可選地使用--no-commit
並且可選地在分離的HEAD上。
如果存在衝突,則git merge
以非零狀態退出。如果沒有衝突,則git merge
以零狀態退出。如果使用--no-commit
運行,Git在兩種情況下都不提交;如果沒有它,Git會在當前HEAD上進行合併提交。如果HEAD被分離,這個提交隻影響HEAD。
如果您使用了分離的HEAD,現在可以將HEAD重新附加到其原始分支或提交。
如果您使用--no-commit
,則無論合併是成功還是失敗,都可以簡單地運行git merge --abort
。
因此,最簡單的命令序列是運行git merge --no-commit
,保存退出狀態,然後運行git merge --abort
。
請注意,在所有情況下,Git都會在合併過程中使用索引和工作樹,因此您必須確保Git在整個期間內都是安全的。 (特別是索引和工作樹必須在過程開始時是「乾淨的」,如果沒有合併驅動程序,就會在最後清理乾淨。)
(How to從node.js獲得git merge
的退出狀態,我不知道。)