HEAD 和 HEAD~1 有什么区别?

艾伦2

有人建议我使用以下命令将我的代码恢复到原始存储库中的状态:

git reset --soft HEAD~1

我寻找了这方面的信息,但没有找到任何可以解释的信息

HEAD~1

命令的 ~1 部分有什么作用?

扬·克鲁格

此语法的官方文档位于gitrevisions联机帮助页中。

HEAD~1意味着:HEAD使用第一个父级从 返回 1 个提交(大多数提交只有一个父级,因此此语法涵盖了您想要进一步返回的大多数情况)。

HEAD~1很常见,它也可以缩写为HEAD~.

但是,重要的是要了解,HEAD这与源存储库的状态无关!HEAD~1在这些情况下,将碰巧与原点的当前状态匹配:

  • 您刚刚从源中提取(合并),它创建了一个合并提交(提示输入合并提交消息)。
  • 您是最新的源,然后在顶部进行了一个新的提交。

在其他情况下,您可能会使用@{upstream}which 引用当前分支的上游(也记录在gitrevisions联机帮助页中)。

最后,--soft通常也不是正确的选择。这意味着您的所有更改都将保留在工作树和索引中。您的文件根本不会更改,并将git status所有更改显示为“待提交”。

如果您想基本上点击重置按钮并不可撤销地销毁本地与上游相比的所有已提交和未提交的更改,我建议这样做:

git reset --hard @{upstream}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Go中[0]和[:1]有什么区别?

1L和1之间有什么区别?

如果将css文件放在<head>或<body>中有什么区别?

在Git中,HEAD,工作树和索引之间有什么区别?

Git中的HEAD ^和HEAD〜有什么区别?

git push origin HEAD和git push origin [current-branch-name]有什么区别?

onLoad,onDomready,<head>中没有换行和<body>中没有换行之间有什么区别?

groupby.first()和groupby.head(1)有什么区别?

Git结帐HEAD + 1和HEAD-1

“ head”和“ header”标签之间的真正区别是什么?

abolish / 1和retractall / 1有什么区别?

提交时.git / CHERRY_PICK_HEAD有什么区别?

* = 1和a = + a有什么区别?

`int * [1]`和`int(*)[1]`有什么区别?

git diff和git diff HEAD有什么区别?

git reset --hard HEAD〜1和git reset HEAD〜1 --hard之间的区别?

git checkout HEAD-之间有区别吗?和git reset --hard HEAD吗?

a + = 1和a = + 1 ..有什么区别?

AWS Codebuild git webhook中的HEAD_REF与BASE_REF有什么区别?

read,head -1和sed 1q之间有区别吗?

git reset file和git reset HEAD file有什么区别?

head.ready()和head.load()有什么区别?

> 0和> = 1有什么区别?

Git Push:HEAD:refs / heads / <branch>和<branch>有什么区别?

bash 脚本中的 $1 和“$1”有什么区别?

list(LinkedList).head 和 Node head 的区别?

git push origin HEAD : remote_branch 和 git push origin local_branch:remote_branch 有什么区别?

b/w 'git diff HEAD' 与 'git diff HEAD HEAD~1' 有什么区别?

`git rebase -i HEAD~N` 和 `git reset --soft HEAD~N` 有什么区别?