我想寫一個基於git的工具,但做了一些相當不尋常的事情,我需要知道:是否安全地同時運行git merge --ff-only [remote-branch]
的多個實例以獲取其中任何一個的最新提交?所有的遙控器將在同一行提交。我希望能夠讓我的工具產生所有的東西,讓git把它整理出來,但是我需要知道這是否會導致問題。有沒有人對git內部知道足夠的知識來說一種方式或另一種方式?可以同時運行'git merge'的多個調用嗎?
回答
如果你正在做--ff只合並,你爲什麼不只是檢查參考git branch --contains
或其他方式來查看舊的提交是否可達,然後執行重置或update-ref?
這應該是非常快的,並且可能會避免更新工作目錄。
謝謝,這實際上聽起來非常有用! –
在這種情況下,爲什麼不按照合併每個遠程分支而不是同時產生它們呢?
#!/bin/sh
set -e
for rtb in origin/master github/master gitorious/master
do
git merge --ff-only $rtb
done
如果HEAD
已經包含了遠程跟蹤分支之一,合併仍成功返回,說Already up-to-date.
我正在這樣做,但事實證明,如果IO不能很好地工作,'git merge'可以隨機抽取一分鐘以上,所以我希望能夠讓負責此操作的線程執行其他操作。我可能只是把所有的合併放在它自己的線程中,序列化並完成它。 –
對。遍歷提交圖應該只涉及很少的IO,以確定是否需要合併。在大多數情況下,我懷疑大多數IO在發現需要進行快速合併之後才真正檢查新的提交,在這種情況下,您最大的收穫是找到最近的提交,並且只合並那個提交。 –
- 1. 我可以同時使用selenium-webdriver運行多個實例嗎?
- 2. 我可以同時運行兩個或多個WebMatrix網站嗎?
- 3. 我可以同時運行Android Monitor的多個實例嗎?
- 4. 我可以在xcode中同時運行多個目標嗎?
- 5. grunt.js:可以同時運行多個npm任務嗎?
- 6. `git merge origin master`和`git merge origin/master`有什麼不同嗎?
- 7. 同一個js函數可以同時進行AJAX調用嗎?
- 8. 可以同時運行JUnit理論嗎?
- 9. CMS和ParNew可以同時運行嗎?
- 10. 同一個Adobe AIR應用程序可以運行多次嗎?
- 11. 我可以在PHP中同時調用多個get_headers()嗎?
- 12. 從iPhone可以同時調用多個Web服務嗎?
- 13. 我可以運行多個javascript onload嗎?
- 14. 1 TaskTracker可以運行多個JVM嗎?
- 15. TestNG可以運行多個套件嗎?
- 16. 可以運行多個php文件嗎?
- 17. C回調函數可以同時運行嗎?
- 18. 可以同時運行多少個由java Runtime.exec()調用的進程?
- 19. 我可以在同一活動中同時運行多個裝載機嗎?
- 20. 我可以同時使用命令行Git工具和TortoiseGit嗎?
- 21. 我們可以在DataStage中同時運行多個並行作業嗎?
- 22. 我可以同時在iPhone上運行多個應用程序
- 23. 同一個測功機可以運行多個不同的進程嗎?
- 24. PowerShell腳本可以在仍顯示輸出的同時運行多個長時間運行的命令嗎?
- 25. Perl可以在多行上運行嗎?
- 26. 可以同時運行兩個無限循環嗎?
- 27. 兩個事務可以在Oracle中同時運行嗎?
- 28. 在網絡上同時運行python腳本。這個可以嗎?
- 29. Java Processing可以讓兩個draw()方法同時運行嗎?
- 30. Windows操作系統可以同時運行2個CLR嗎?
你能詳細介紹一下用例嗎?不同的遙控器可以有相互衝突的變化嗎?難道你不能得到一個基準做'git fetch'並且使用'git log'來選擇最新的一個典型? – Romain
我使用git在一堆機器上分發一些數據。由於只有一個新提交的最終來源,所以不會發生衝突。在這種情況下,「合併」實際上是一個誤用,因爲我想要做的就是查看遠程跟蹤分支是否更新,如果是,則更新主分支和工作副本。大多數合併將是空操作,但有時更新將會傳播,並且在極少數情況下,可能會有兩三個遠程控制檯,每個遠程控制檯或多或少地在同一時間具有相同的更新提交。 –
然後,從所有遙控器中「git fetch」,然後將「git merge --rebase」轉換爲您剛纔提取的最前面的遙控器頭正在做你想做的。 – Romain