繁体   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