问题标签 [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 投票
1 回答
5009 浏览

git - 重做“Git Reset --hard HEAD^”命令

可能重复:
撤消 git reset --hard HEAD~1

我使用了命令行:

git reset --hard HEAD^

我怎样才能重做呢?

0 投票
4 回答
1088 浏览

git - Git Revert、Checkout 和 Reset for Dummies

抱歉,但这三个 git 命令正在消耗我的智慧。

是否可以为所有新手建立一个群组 wiki 来涵盖这三个 git 命令?我想学习的是如何将文件和项目恢复或回滚到以前的状态。

由于我没有使用 subversion 或其他集中式版本控制软件的经验,因此没有必要参考他们如何以不同的方式做事,而且常常令人困惑。

谢谢。

0 投票
7 回答
145643 浏览

git - Git Revert、Checkout 和 Reset 有什么区别?

我正在尝试学习如何将文件和项目恢复或回滚到以前的状态,但不了解git revertcheckoutreset. 为什么看似相同的目的有 3 个不同的命令,什么时候应该选择一个而不是另一个?

0 投票
1 回答
483 浏览

git - 'git reset --soft' 是无操作命令吗?

文档指出,利用--soft选项“ ......根本不触及索引文件或工作树,但要求它们处于良好的顺序。这会使您所有更改的文件都“提交更改”,如 git status会放”

它还解释了目标<commit>默认为 HEAD,如果没有给出。

考虑到这些,以下命令是否会修改任何内容?

$ git reset --soft

0 投票
2 回答
3093 浏览

git - 'git reset --hard' 多个变基分支

我有一个本地 ref,其中包含我最近执行的一些分支git rebase

这变成了:

通过使用以下命令集:

问题?

git rebase --no-ff为了跟踪我以前合并的所有分支,我不小心忘记了做。现在,我无法轻松地告诉(通过使用gitk --all)我的合并发生在哪里。我知道它们发生在HEAD@{E}和之间的某个地方HEAD@{J},但是没有单独完成每个提交,我就迷路了。

我决定做什么:

所以,我想我会按照这里git reflog的建议使用,并在两个变基发生之前恢复到原始状态,然后按照我的建议尝试。 git reset --hard HEAD@{#}git rebase branchname --no-ff

我的最终问题是这个(还有一些额外的):

我可以简单地回到第一次提交之前的最后一次提交,rebase还是需要单独回滚每个变基?每个顶部分支是否都与我以前拥有的完全一样(显示我正在寻找的非快速转发合并)?我是否让这太难了/有没有更简单的方法来做到这一点?有什么是我忽略的吗?

谢谢。

0 投票
1 回答
159 浏览

git - git reset 提交和推送问题

最近在我的团队中发生了一个新人试图做一个 git pull。系统上出现了一些冲突,之后开发人员只需执行 git reset (将索引带到最后一个 HEAD)。然后开发人员“提交”了一个文件更改并将其推送到远程。自然丢失了很多变化。

然而,我们花了相当长的时间来弄清楚谁做了错误的更改(以及哪个提交是错误的提交),并且恢复它是一大堆不同的努力。现在在 git 历史记录中(使用 gitk 或 git log)git 只显示已提交的文件,但这是覆盖先前文件的情况(我知道这个概念更多的是 CVS 而不是 git,在这种情况下文件已被移至先前的提交)。在这种情况下调试的最佳策略是什么?

一旦我们知道哪个分支有问题,一旦我在好提交和坏提交之间进行 git diff,我可以看到文件列表,但只查看特定提交,我们可以找出哪些文件已移至上一个提交。

如果问题没有完全澄清,我们深表歉意。

0 投票
1 回答
1210 浏览

git - 如何在不覆盖当前更改的情况下将文件恢复到以前的版本?

我在尝试将文件还原到以前的提交时遇到问题,我知道我可以git checkout用来还原单个文件,但问题是我想保留该文件中的更改,所以我想知道如何做一些单个文件的先前提交和当前 HEAD 之间的“合并”?我尝试使用git reset sha-of-my-commit path/to/my/file,但它将以前的版本放在暂存区域,同时将最新版本保留在我的工作目录中,不确定如何在它之后合并两个文件。

我现在所做的git diff ..sha-of-my-commit path/to/my/file只是复制/粘贴缺失的行,但我相信必须有更好的方法来做到这一点?

0 投票
1 回答
203 浏览

git - 为什么“git重置" 返回 1?

假设它foo.txt在索引中。

为什么这样做:

返回 1:

?

0 投票
1 回答
4040 浏览

git - 在检查合并更改之前 git reset HEAD

如果我从另一个分支进行 git 合并会发生什么,发生一些冲突,合并没有被提交,然后我做

我可以再次合并吗?还是 git 会相信合并已经完成?

0 投票
2 回答
3675927 浏览

git - 如何使用 'git reset --hard HEAD' 恢复到以前的提交?

我知道 Git 会跟踪我对应用程序所做的更改,它会一直保存到我提交更改之前,但这是我挂断的地方:

当我想恢复到以前的提交时,我使用:

Git 返回:

然后,我如何将硬盘驱动器上的文件恢复到之前的提交?

我接下来的步骤是:

但是我硬盘上的文件都没有改变...

我在做什么对/错?