簡體   English   中英

如何從 git 簽出特定的提交

[英]how to checkout a specific commit from git

我的代碼不起作用,似乎我在我的master分支中合並了一段錯誤的代碼。 我無法確定問題所在,因此我想一一提取特定的提交,以找出在錯誤提交之前哪個版本正在工作。

我怎么能拉一個特定的提交? 例如,在 Bitbucket 上,我在分支test中看到一個 id 9ce920d的合並,但我不知道如何拉這個合並。

這個問題有錯誤的術語。 你不能拉一個提交,你只能簽出一個提交。 拉取提交將無視整個分支/提交結構以節省內存。 您拉取分支或存儲庫中的所有提交,如果您想簽出特定的提交,那么,請檢查一下:

git checkout 9ce920d

您將處於無頭模式(沒有指向提交的指針,即使您有指向它們的分支 - 您必須明確檢查它們!),因此如果您想搞砸,您可能需要創建一個分支:

git checkout -B mess_around_branch

對於后代,OP 實際上想要丟棄從其分支上的最新提交到之前的特定提交的所有提交。 要從您的分支中執行此操作:

git reset 9ce920d

這將丟棄所有提交,但保留文件原樣,讓您決定是否希望保留一些更改。 如果你真的想失去一切:

git reset --hard 9ce920d
git checkout <id>

應該做的伎倆。 其中 'id' 是您想要獲得的特定提交。

暫無
暫無

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

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