我的代码无法运行,看起来我把一个错误的代码合并到了我的master
分支。我无法确定问题出在哪里,因此我想逐个拉取特定的提交记录,查找在错误的提交前最后一次正常工作的版本。
如何拉取特定的提交记录呢?例如,在Bitbucket上,我看到分支test
上有一个合并标识为9ce920d
的提交,但我不知道如何拉取这个合并记录。
这个问题使用了错误的术语。您无法“pull”(拉取)一个提交,只能“checkout”(检出)一个提交。如果拉取一个提交,将违反整个分支/提交结构并节省内存。您可以拉取一个分支或存储库中的所有提交,如果想要检出特定的提交,则可以进行检出操作:
git checkout 9ce920d
如果您在无头模式下(即使您有分支指向它们-您必须显式检出它们),您将不会有指向提交的指针,因此如果您想混淆一下,您可能需要创建一个分支:
git checkout -B mess_around_branch
为了保存记录,实际上 OP 想要丢弃从他们分支的最新提交到特定提交之前的所有提交。要在你的分支中执行此操作,请使用以下命令:
git reset 9ce920d
这将丢弃所有提交,但保留文件,让您决定是否希望保留某些更改。如果您真的想彻底删除所有更改:
git reset --hard 9ce920d
git checkout <id>
应该可以解决问题。其中'id'是你想要获取的具体提交。
git reset --hard 9ce920d~1
命令将该分支移动到它下面的一个提交(你也可以指定提交)。但这是很危险的 - 你将会丢弃所有在它上面的提交。 - kabanus