2017-08-28 62 views
1

我有兩個人如何生成包含提交SHA的修補程序?

  • 鮑勃,繼續與其團隊對項目
  • 翹,也就是現在在度假與她的筆記本電腦遠離Bob的辦公室

Bob想送發展自Alice離開後,Alice的主分支diff

我最初以爲

bob $ git format-patch --stdout e6def65..master > history.patch 

alice $ git am history.patch 

將保持提交哈希值,但事實並非如此。

是否有解決方案可以通過電子郵件輕鬆地交換保存提交SHA的差異?

+0

使用樹的散列,提交主題,作者電子郵件和日期以及提交者電子郵件和日期來計算提交哈希。提交者的電子郵件和日期在您的方案中與Bob和Alice不同。 – axiac

+0

'git am' *可以*保留提交哈希,但前提是沒有合併(默認情況下它實際上並不嘗試保留哈希,因爲@axiac注意到您必須使提交者信息匹配)。如果您是原作者和提交者,並且您使時間戳匹配('--committer-date-is-author-date'),則您將得到相同的散列,前提是沒有合併。 – torek

回答

2

請問git bundle做你想做的?

一些工作流程需要一臺機器上顯影的一個或多個分支另一臺機器上被複制,但兩個機不能直接連接,因此,交互GIT中的協議(GIT,SSH,HTTP)不能用。這個命令提供了對git fetch和git pull的支持,方法是在源機器的存檔中打包對象和引用,然後通過某種方式(例如,通過sneakernet)移動歸檔文件後,使用git fetch和git pull將這些文件導入到另一個存儲庫中, 。由於存儲庫之間不存在直接連接,因此用戶必須爲目標存儲庫持有的數據包指定基礎:數據包假定該基礎中的所有對象都已存在於目標存儲庫中。

另請參閱this previous question關於Git通過電子郵件。

相關問題