因此,給定LibGit2Sharp的一個實例Branch
如何確定它最初創建的是哪個提交?如何檢測在LibGit2Sharp中創建的分支是什麼
2
A
回答
3
A Branch
僅僅是描繪git head
參考的對象。 A head
是一個文本文件,主要生活在.git/refs/heads
層次結構下。此文本文件包含當前指向的commit
的散列值head
。同樣,Branch
承載Tip
屬性,該屬性指向Commit
。
當使用git存儲庫並執行諸如提交,重置,重新綁定等操作... head
文件使用不同的散列更新,指向不同的提交。
A head
不跟蹤以前指出的提交。 Branch
也沒有。
使用git,創建新分支時,會創建一個新的reflog。 Git負責添加第一個條目,並在其中標識已創建分支的對象。
鑑於現有的分支backup
$ cat .git/refs/heads/backup
7dec18258252769d99a4ec9c82225e47d58f958c
創建一個新的分支將創建並養活其引用日誌
$ git branch new_branch_from_branch backup
$ git reflog new_branch_from_branch
7dec182 [email protected]{0}: branch: Created from backup
當然,當直接創建從一個分支,也適用承諾
$ git branch new_branch_from_sha 191adce
$ git reflog new_branch_from_sha
191adce [email protected]{0}: branch: Created from 191adce
LibGit2Sharp也公開了reflog。例如,以下代碼將枚舉特定Branch
的日誌條目。
var branch = repository.Head; // or repository.Branches["my_branch"]...
foreach (ReflogEntry e in repository.Refs.Log(branch.CanonicalName))
{
Console.WriteLine("{0} - {1} : {2}",
e.From.ToString(7), e.To.ToString(7), e.Message);
}
所以 「好消息」,引用日誌中可能包含你以後;-)
但是......
- 你必須找出通過在每條消息中搜索「分支:創建自」模式
- 如果您的分支太舊,則refl中的較舊條目OG可能已被刪除內置git gc管理過程(默認情況下引用日誌條目保留90天)進入現在可以丟失「從創建」,初始
注:截至今天,在創建或刪除分支時,LibGit2Sharp不會創建創建條目。然而,這是目前由驚人@dahlbyk解決爲Pull Request #499
相關問題
- 1. libgit2sharp中的孤兒分支
- 2. Git Hook檢測分支的創建
- 3. LibGit2Sharp - 合併分支
- 4. 如何從終端創建git分支的步驟是什麼?
- 5. 使用libgit2sharp檢出遠程分支
- 6. 如何在不檢查分支的情況下創建分支?
- 7. 如何使用LibGit2Sharp獲取分支?
- 8. 如何在git中檢測分支點?
- 9. 如何使用libgit2sharp從本地創建新的分支到遠程?
- 10. 使用libgit2sharp創建一個本地分支來跟蹤遠程分支
- 11. Libgit2sharp獲取遠程分支
- 12. 在git中創建分支的分支?
- 13. 如何在git中退出分支的頂部創建分支?
- 14. 如何在SVN中創建分支?
- 15. 當我在Git中創建分支時,我的分支是否始終在Git的主分支中創建?
- 16. 什麼是在分支
- 17. 爲什麼我無法創建/檢出這個分支?
- 18. 如何在CVS中爲現有分支創建子分支?
- 19. 如何在git中爲分支創建分支?
- 20. 在git中,爲什麼本地分支需要創建一個遠程分支?
- 21. 如何創建SVN分支
- 22. 如何創建分支
- 23. TFS - 如何創建分支
- 24. 從TFS中的分支創建分支
- 25. 爲什麼要在git倉庫中創建新分支?
- 26. 在git中創建新分支時,「跟蹤」意味着什麼?
- 27. 在svn中創建分支
- 28. 如何從cvs中的現有分支創建分支
- 29. 如何將未創建主分支到GIT中的主分支
- 30. 如何在git的另一個分支下創建分支?
部分我有同樣的問題,因爲OP,跟着你的指引,但我注意到,在我的回購,點在哪裏引用日誌停止分支該分支是創建的(例如,它沒有顯示歷史),它的'From'值爲0.我在這裏丟失了什麼?這似乎是一種更簡潔的方式來檢測分支生命的開始,而不是搜索單個提交文本。 –