[英]GIT Preview Checkout or Merge
我想做一個腳本,通過簽出GIT中的一個倉庫來幫助我釋放系統。
我的追求是,我可以通過某種方式測試簽出分支以識別是否出錯,而不依賴於文件系統。
同樣,我可以通過簡單的方法預覽GIT合並以識別沖突而無需修改文件系統嗎?
(如果有幫助,完整的系統可以在Linux系統上運行)
使用git merge --ff-only
僅在可以快速轉發時才合並分支。 這意味着沖突是不可能的,它將始終有效(當然,系統故障除外,例如磁盤空間不足)。 顯然,這意味着分支不應分開,但是在大多數情況下,分支應該分開,否則,您應該與另一個倉庫中的潛在沖突合並,從而保持“發布倉庫”不變。
這里的另一種方法是使用符號鏈接(Linux或ntfs)。 你應該有兩個倉庫repo1
和repo2
和符號鏈接releaserepo
這將指向其中之一。 我說,你有releaserepo
- > repo1
。 現在,您可以更新repo2
,檢查是否所有工作正常,然后只需更改它的符號鏈接,下一次您將更新repo1
並將其反向翻轉。 如果也將避免所有系統故障,因為創建符號鏈接操作是原子的。
如果簽出分支,將永遠不會出錯。 檢出僅恢復分支的先前狀態。
如果您要檢查合並,情況會有所不同。
如果你有一個分支mybranch
並要合並otherbranch
進去,記住的狀態mybranch
在合並之前:
git log -1 --oneline
這將返回上一次提交的哈希值。 注意該哈希(例如CAFEBABE
)。
現在,嘗試進行合並:
git merge otherbranch
如果一切正常。 精細。 如果您遇到任何錯誤並且不願意解決它們:
git reset --hard CAFEBABE
這會將mybranch
重置為git merge
完成之前的狀態。
除了記住哈希CAFEBABE
,還可以使用ORIG_HEAD
如下所述: Git中的HEAD和ORIG_HEAD
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.