在Git中,我在模塊A中有子模塊B.我想要在B中進行特定提交,然後使用該特定提交的B在A中找到相應的提交(如果有)。例如,使用該特定B版本的A的最新提交將是確定的。這個怎麼做 ?查找包含與給定子模塊提交對應的模塊提交
0
A
回答
-1
不能保證存在這樣的提交。如果確實存在,它可能不是唯一的(可能不止一個)。
當然,不能保證任何東西都能正常工作,但這不是我在這裏所說的。子模塊背後的設計原則是另一種方式:超級項目,即您的案例中的「模塊A」,被認爲是控制項目。您可以查看某個給定的超級項目提交分支名稱,標記名稱或原始哈希ID或其他內容,並且在該提取的提交中,超級項目包含子模塊中特定提交的哈希ID。因此,對於模塊A中的每個提交(或者每個使用B的提交),有一些B的特定哈希ID。讓我們假設A中只有三個提交,編號爲A1,A2,和A3,三個提交B,編號爲B1,B2和B3。如果我們檢查A1,我們得到一個B號碼。假設那是B2。如果我們檢查A2,我們會得到另一個B號碼。再說,這是B2。最後,如果我們檢查出A3,我們會得到另一個B編號......這可能是B2再次。
在這種情況下,對應於提交B1和B3的「A」提交的集合都是空的,並且對應於B2的「A」提交的集合具有基數3.對於某些B提交,是否提交,對於其他B提交,沒有唯一提交。
這是典型的子模塊的使用也是如此,所以給出了一些乙提交哈希,這是不可能找到的相應一個提交。但是,您可以查看任意數量的A提交併找到其對應的哈希值。這些是gitlink提交樹中的條目請參閱How can I get a git submodule's associated commit ID from a past commit in the parent clone?(注意基於git rev-parse
的答案,如果您知道子模塊的gitlink的特定路徑,那麼該方法就行)。如果您創建了所有映射的完整表格,則可以很容易地反演該表格並找到給定值的所有值,從而確定該集合是否爲空。
相關問題
- 1. 獲取提交給定的SHA1的日期(子模塊)提交
- 2. 包含/插入子模塊的Git歷史記錄提交
- 3. JGit:從子模塊讀取提交
- 4. 本地提交到git子模塊
- 5. Git子模塊和孤兒提交
- 6. 提交表單自定義模塊
- 7. Python包提交模板(PyPi)提交
- 8. Git命令強制子模塊中的特定提交
- 9. Xcode中的Git提交總是會導致子模塊更改被提交
- 10. 提交多模塊Maven項目到SVN
- 11. Drupal 7模塊遞歸提交
- 12. 模糊事件塊提交按鈕
- 13. 表單提交卸載GWT模塊
- 14. 爲什麼git子模塊在父提交後顯示提交日期?
- 15. 提交更改到一個子模塊,而無需提交母公司回購
- 16. 如何設置子模塊以指向特定的提交而不提取?
- 17. 檢查子模塊提交是否與回購指向的內容相同
- 18. 設置git的子模塊,而無需創建提交
- 19. Git子模塊更新--init顯示需要提交的更改
- 20. 用git標記一個子模塊的舊提交
- 21. 暫時跳過子模塊中的提交
- 22. Git在哪裏存儲子模塊提交的SHA1?
- 23. 簽出過去的Git子模塊提交
- 24. 提交時忽略子模塊的髒狀態
- 25. AngularJS - 包含查看模塊
- 26. 將塊傳遞給包含模塊的鉤子
- 27. 導入給定模塊對象的子模塊
- 28. 在git子模塊中提交後觸發Jenkins測試
- 29. Git/Android - 無法在資產文件夾中提交子模塊
- 30. 使用所有子模塊執行提交
不是我的問題的答案,對不起。前四段我知道,解決了我的問題的措辭,所以人們不會關注這個問題。最後一段解決了相反的問題:給定了A的提交,哪個提交了B?但是,我知道該怎麼做。只有末尾暗示了我所需要的東西,卻沒有提出實際建議的方法。 – Charles
這是因爲*不是*的方法! – torek
真的嗎?在整個git及其所有克隆,擴展和附加組件中?好。那麼我們不能設計一個自制的東西,我們循環遍歷A的所有提交併篩選出我想要的B的相應提交,然後輸出A提交,這些提交有一個命中?即使沒有,也沒關係。我自己沒有足夠的git bash知識。 – Charles