问题标签 [git-reset]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
15 回答
932496 浏览

git - git 撤消所有未提交或未保存的更改

我正在尝试撤消自上次提交以来的所有更改。我试过了git reset --hardgit reset --hard HEAD看了这篇文章后。我的回应是 head 现在是 18c3773... 但是当我查看我的本地源时,所有文件仍然存在。我错过了什么?

0 投票
2 回答
1398 浏览

git - git reset 上的双破折号 [--] 选项有什么作用?

我见过这样的命令:

我了解此命令将来自提交 e542 的文件 readme.txt 的内容放入索引中。但是--那里有什么选择呢?

git reset 手册页将它列为前两种形式的可选,但我找不到它的含义。

0 投票
3 回答
338 浏览

git - 这是撤消 git 东西的好策略吗?

到现在为止,如果我曾经提交并将错误推送到主分支,我的解决方法是,假设 git 日志看起来像

我过去“解决”这种情况的方式是:

是的,这会起作用......但看起来不是很优雅,因为它有效地删除了提交历史。

因此,在破坏了我的自我的情况之后,我检查了更好的方法,并提出了 git revert 方法,基本上我现在使用

git revert 将创建三个提交(每个恢复的哈希一个),之后,需要推送来更新远程。

现在,问题是,这种策略是否正确?对我来说看起来比重置要好得多——硬,因为回购的历史没有被中继,如果最终有人想检查为什么会出现问题,他们总是可以做一个

这个推理是正确的还是我仍然缺少基本概念。

谢谢

0 投票
3 回答
1591 浏览

git - 如何在“git-pull”自动合并后更改提交消息?

有时,当作为结果 a 生成自动合并时,我的合作者会“惊慌” git-pull,并且只接受默认的提交消息。在推送此提交之前,我想确保消息得到修复,但--amend似乎不起作用。修复在这种情况下生成的消息的最佳方法是什么。我能为他们想出的最好的指示是

但这似乎有点吓人(reset)并且容易出错(必须明确输入远程跟踪的分支)。

有没有一种简单的方法来更改刚刚通过与远程跟踪 repo 合并生成的提交消息?为什么不起作用--amend

0 投票
1 回答
45 浏览

git - 撤消我的工作目录保留我的提交

这可能是一个非常简单的问题。我提交了我的工作,然后我启动了一个查找和替换脚本,但我想撤消它,以便让我的工作进入实际提交。什么是正确的命令:我知道 git reset soft/hard 或 git amend 但它不合适

0 投票
9 回答
193300 浏览

git - 如何 git reset --hard 一个子目录?

更新²:使用 Git 2.23(2019 年 8 月),有一个新命令git restore可以执行此操作,请参阅接受的答案

更新:从 Git 1.8.3 开始,这将更直观地工作,请参阅我自己的答案

想象以下用例:我想删除 Git 工作树的特定子目录中的所有更改,而保留所有其他子目录不变。

此操作的正确 Git 命令是什么?

下面的脚本说明了这个问题。在注释下方插入正确的命令How to make files——当前命令将恢复a/c/ac应该被稀疏检出排除的文件。请注意,我不想显式恢复a/aand a/b,我只“知道”a并想恢复下面的所有内容。编辑:而且我也不“知道” b,或者哪些其他目录与a.

0 投票
2 回答
440139 浏览

git - git reset --hard origin/master 是什么意思?

我做了一个git pull并得到了一个错误:

以下工作树文件将被合并覆盖... 请在合并之前移动或删除它们。

为了解决这个问题,我做了以下事情:

现在,当我这样做时git pull,它会说一切都是最新的。我想知道当我运行这些命令时到底发生了什么。我知道git fetch从远程存储库中获取更改而不将它们合并到我的本地存储库中。

是什么意思git reset --hard origin/master?它是如何工作的?

0 投票
1 回答
6424 浏览

netbeans - 如何在 netbeans 中使用 git reset?

我想撤消我在 NetBeans 中的最后一次提交。

我发现命令是“$ git reset --soft HEAD~”,但我怎样才能在 NetBeans7 IDE 中做到这一点?

0 投票
1 回答
2949 浏览

git - 重置后 Git 提交丢失 --hard。fsck 未找到,不在 reflog 中

我想清除一些未提交文件的工作目录,但不小心运行了git reset --hard.

我意识到我丢失了之前的(未推送的)提交,所以我运行了git reset --hard ORIG_HEAD. 这并没有让我失去承诺。

我跑了git reflog,但那里没有列出提交。我也跑了git fsck --lost-found,但列表中没有提交,只有一些不相关的 blob 和树。

由于我找不到丢失提交的任何参考(除了.git/COMMIT_EDITMSG仍然有相关的提交消息和更改列表),我不确定如何恢复提交。

有什么办法可以找回丢失的提交,还是我应该为通宵做准备?

0 投票
4 回答
11899 浏览

git - Git重置不起作用

我进行了一次提交,提取并合并了一些更改,然后进行了第二次提交。当我想回到第一个提交时,我运行了命令

虽然响应是“HEAD 现在位于 <sha hash>”,但我的代码看起来与运行该命令之前一样。通常,它会更改为我以前的内容,但看起来有些东西无法正常工作。在重置头部之前,我是否需要运行不同的命令来取消合并?


额外信息

当我运行git status它说:

app/assets/images/.DS_Store.orig 未追踪

我可以添加它。

根据git reflog,我在提交 hash1 之前拉了(我认为是“在合并之前”)。拉动有一个 sha hash2(git log未显示)。当我挖掘 hash1 和 hash2 时,我看到了我所做的更改,并且可以从中重建我的原始代码。不过,这似乎很奇怪。如果我尝试git reset使用其中任何一个,我将无法从合并之前获取我的代码。