2017-03-04 44 views
-1

提交[不含REF]我得到2個類似回購 & 的提交,其我嘗試訪問:SHA-1讀取/櫻桃挑選從不同回購

這是真的容易,如果我試圖訪問的提交將有一些REF指定,但它不,看起來像REF失去了某種程度。我只獲得了提交的SHA-1。

我會做到這一點,現在的辦法是:

在回購一個

git remote add repo_b path/to/repo_b.git 
git fetch repo_b 
git cherry-pick SHA-1 

反正對我來說,避免提取整個倉庫裁判,只有做一個獲取/ cherry-直接選擇提交?

編輯

我得到了訪問父以及

回答

0

做櫻桃挑選操作,您需要同時提交本身和它的父(與他們treeblob對象一起),所以您可以將提交轉換爲補丁。然後您可以嘗試應用該修補程序。

得到提交和它的父母與正常的Git傳輸操作,但是,您需要一個參考提交是可達的。 (正如你說:git fetch,或許與特定的參考名稱和/或--depth限制你帶入自己的資源庫對象的數量)

如果這是不可用的,你需要一些替代方法(除正常的Git傳輸)。這可能包括某種Web界面,在這種情況下,您需要知道哪些URL會調用服務器上的哪些方法。或者,您可以嘗試使用git archive

雖然git archive通常是在本地存儲庫上運行以捆綁自己的提交,但它有一個--remote選項,該選項在服務器上調用git upload-archive。有關安全性的說明,請參閱該文檔,包括是否允許使用「裸體」散列ID。請注意,您仍然需要承諾及其父母

如果您需要將服務器直接訪問,最簡單的方法(到目前爲止)是轉換的承諾使用git format-patch補丁。取出生成的補丁並使用git am來應用它,並根據結果進行提交,就像git cherry-pick一樣。

+0

好吧,我有訪問父,任何更多的提示,如果我得到這個? – Przmak

+0

一旦你有兩個承諾和家長,DIFF兩棵樹('混帳diff'如果你有他們作爲實際的提交對象,其他的一些差異,你*能*獲得的Git要做到這一點,它只是比較麻煩,如果你把它們當成檔案或其他)。然後使用'git apply'來應用這個補丁,'git commit'提供來自被挑選提交的消息。 – torek