2016-10-07 10 views
0

我有兩個系統,一個用於測試,一個用於生產。他們斷開連接,並沒有連接到互聯網。將更改傳輸到斷開連接的系統 - git包?

我對我的軟件庫進行了重大更改,生產環境需要更新。這兩個系統都有一個git repo的副本。 TEST上的代碼在上次運送到PROD時被標記(1.4.0),但我們必須對PROD系統進行緊急更改。然後這些回到測試。

我打算執行以下操作:

在TEST:

git bundle create import.bundle 1.4.0..master 

然後手動束轉移到PROD。

在PROD:

git bundle verify import.bundle 
# assuming all is well 
git remote add import /path/to/import.bundle 
git pull import master 
# ...fix any merge conflicts 

我相信哪個,都會給我一個PROD系統是最新的最新的,再加上我可以日後再使用增量組更改重複bundle create一步。

這項工作?那些更多git-fu可以看到的問題是?

編輯:

我可以用一個git fetch importgit merge -X theirs import/master更換git pull import master。可能會更好。

回答

0

git bundle每次都會爲您提供整個存儲庫。你不需要把它作爲一個遙控器來添加,你可以直接從它上拉(如果我沒有記錯的話)。

您也可以在USB磁盤上只有一個裸回購。這個包只是一個單獨的文件,在git之外更容易處理。

+0

我的理解是'git bundle'可以提供一個'rev-list'參數來阻止它成爲整個repo。 – shearn89

+0

這絕不暗示你的問題。考慮澄清。 –

+0

我只是澄清你似乎沒有意識到的命令的功能。如果你看第一個代碼塊,你會看到我通過'1.4....master' rev-list參數。 – shearn89