我目前正在從一個項目上運行兩臺不同的計算機 - 運行Linux的筆記本電腦和運行Win7的桌面。我正在使用帶有gitolite的ubuntu服務器來託管我的回購。發現git中的本地回購和遠程回購之間的區別
我試圖寫一個快速腳本,將做兩兩件事:如果說有什麼對當地回購改變,自上次推
檢查。如果是這樣,它應該提交更改,將提交按鈕推送到遠程回購站012。我不知道這是如何工作的,但我不希望這個提交覆蓋我沒有在本地更改過的文件中的更改(即:它們可能已在另一臺計算機上被更改並被推送)
之後,它應該檢查遠程倉庫是否有自上次抽取後發生更改的文件(請參閱1a。)。如果是這樣,將這些更改拉入本地回購。
該腳本的目的是保持兩臺計算機彼此同步,而不必每次都手動完成所有這些git工作。我希望定期進行這種運行(每半小時一次),所以如果可能的話,我不希望它佔用大量資源。
我不需要爲我編寫的整個腳本(除非它只是一對線) - 只需指向我將需要的命令即可。
因此,我可以使用git show-ref來檢查我的本地回購是否與遠程回購(步驟2)相匹配。第1步的任何想法?另外,有沒有辦法強制我的合併覆蓋那些非快進的東西?像git push -f? – jwegner 2011-05-05 02:49:27
如果您執行git push -f,您可能會失去(永久)由推入回購的其他人所做的更改。如果發生這種情況,另一個人也將無法撤銷覆蓋的回購,而沒有發生重大沖突。我想你想使用'-s ours'選項來拉(或合併),這個選項會將樹合併到原始狀態,但它不會把對方的資源庫搞砸了(如果你的話他們的提交仍然存在需要恢復它們)。 – kanaka 2011-05-05 14:41:22