簡體   English   中英

Git的。 如何查看HEAD之后的修訂版本?

[英]Git. How to checkout revision, which goes after HEAD?

檢出修訂版的最快方法是什么(在稍后的時候)到HEAD(在處於分離的head狀態時)?

這應該是這樣的:

git checkout HEAD~-1

但是此命令不起作用。 也是git log ,它不顯示下一個修訂哈希。

我發現的唯一方法是:

git checkout master
git log
[find revision number]
git checkout <revnumber>

但是看起來很慢。 有一個命令嗎?

在git中,沒有真正有效的方法來獲取提交的子級。 任何提交都將具有指向其父對象的指針,而不是指向在創建提交時不存在的其子代的指針。

可能存在刪除了分支引用的子提交(因此,這些提交可以在下一次垃圾回收時被刪除),或者子提交是一個或多個現有分支的歷史的一部分。

但是git 1.6在rev-list命令中引入了--children 它可能必須掃描每個本地和遠程分支引用中“可從”(在git術語中表示“其祖先”)可以到達的提交。

git rev-list將列出所有沒有深度限制的后代,格式為commit_id parent_1_commit_id [parent_2_commit_id [...]] 因此,您將必須在第二列中grep以獲得開頭提交ID,以獲取其后代的提交ID。

從而:

git rev-list --children HEAD | grep " $(git show --format=format:%H HEAD)"

您可以制作一個bash函數來將其別名為git children

[alias]
    children = "!f(){ git rev-list --children \"$1\" | grep \" $(git show --format=format:\"%H\" \"$1\")\" | cut -f 1 -d ' '; }; f"

然后git children HEAD將為您提供HEAD所有后代的提交ID。

不,不會有單個git命令。 處於分離狀態時所在的修訂版可能有多個位置。 在該修訂版中,您可能創建了多個分支,每個分支具有單獨的提交。 那么在這種情況下,您想要的下一個修訂版本是什么?

您需要讓git知道要進行下一次提交的分支。 這樣Git知道在哪里尋找下一個提交。

您需要找到HEAD的孩子並簽出其中一個。 請參閱在Git中檢索特定提交的子提交列表,以及如何在git中找到下一個提交?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM