[英]Determine parent branch/commit from git history
我在 git 中有以下歷史記錄:
* 02e085a (master) readme update
| * 1d940da (HEAD -> b1) search.py
| | * 7aaa12d (b2) file2
| |/
| * 7be9db9 file1
|/
* 22601c0 initial commit
現在我在 b2 上,我想明白 b2 分支的地方(7be9db9)。 算法如下:
但是,如果我想對 b1 做同樣的事情,我最終會得到相同的 position - 7be9db9。 但我預計最終會在 22601c0,因為這是 b1 分支的點。 歷史就是這樣創造的。
來自 master (b1) 的初始提交分支和提交來自 b1 (b2) 的 file1 分支和提交 file2 checkout b1 並提交 search.py
恐怕git的設計方式,無法區分commit 7be9db9(file1)是b1還是b2創建的,對嗎? 所以不能說b1的父母是master還是b2?
感謝您的確認。
恐怕git的設計方式,無法區分commit 7be9db9(file1)是b1還是b2創建的,對嗎? 所以不能說b1的父母是master還是b2?
正確,不可能知道 b1 是從 b2 分支出來的,還是 b2 從 b1 分支出來的。 當 b2 從 b1 分支時,它們指向同一個提交並且在拓撲上是相同的。 不存儲參考歷史。
如果您的流程需要知道這一點,而我正在努力思考為什么,請選擇另一個流程。
您可以知道的是兩個分支之間的通用合並基礎git-merge-base
。 通常這是您想要的信息。 例如,一個 Github 拉取請求知道您要合並到哪個分支,並且它可以獲得所有要與base..branch
合並的提交。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.