331得票6回答
如何在Git中丢弃本地提交?

我一直在做某件事情,但后来发现它完全搞砸了......在提交了其中一部分之后。因此,我尝试了以下步骤:git reset --hard git rebase origin git fetch git pull git checkout 在哪个时刻我收到了这条消息Your branch is a...

319得票8回答
如何将HEAD移回先前的位置?(分离头)和撤销提交

在Git中,我试图通过合并另一个分支并通过以下方式将HEAD重置到先前的位置来执行“压缩提交”:squash commit。git reset origin/master 但我需要退出这个状态。如何将 HEAD 移回先前的位置? 我有需要移动到它的提交的 SHA-1 片段 (23b6772)...

297得票10回答
如何使用git reset --hard重置子目录。

UPDATE²: 2019年8月,随着Git 2.23的发布,新增了一个名为git restore的命令,可以实现此功能,请参见被认可的答案。 UPDATE: 自Git 1.8.3起,此功能将更加直观易用,请参见我的回答。 假设以下使用场景:我想摆脱Git工作树中特定子目录中的所有更改,同...

268得票2回答
如何在Git中撤销最后一次提交

由于疏忽,在“develop”分支中我执行了git add .和git commit,但幸运的是我没有执行git push。 因此,我想将其恢复到原始状态。 我尝试了git reset --soft和git reset HEAD --hard,但似乎搞砸了。 该怎么办? 我想回到原始状态...

238得票5回答
撤销“git add <dir>”命令?

我错误地使用命令"git add dir"添加了文件。 我还没有运行"git commit"。 有没有办法从提交中删除这个目录及其中包含的所有内容? 我尝试过git reset dir,但它没有起作用。 显然git reset file是撤消操作的正确方式。 但是我有很多文件,时间很少。

229得票5回答
什么是 `git restore` 命令?`git restore` 和 `git reset` 有什么区别?

当我想要取消暂存一个已暂存的文件时,我的所有Git教程都会显示类似以下内容: $ git add * $ git status On branch master Changes to be committed: (use &quot;git reset HEAD &lt;file&gt;...

191得票8回答
为什么git不能通过路径进行硬重置/软重置?

$ git reset -- &lt;file_path&gt;可以按路径重置。 然而,$ git reset (--hard|--soft) &lt;file_path&gt;会报告以下错误:Cannot do hard|soft reset with paths.

181得票3回答
"git rm --cached x" vs "git reset head --​ x"?

GitRef.org - 基础: git rm 会从暂存区删除条目。这与将文件“取消暂存”的 git reset HEAD 不同。所谓 “取消暂存” 是指将暂存区恢复到我们开始修改之前的状态。而 git rm 完全将文件从暂存区中移除,因此该文件不会包含在下一次提交快照中,并因此被有效地删...

157得票5回答
Git: 如何在 'git reset' 后重用/保留提交信息?

作为Git用户,我经常遇到这种情况:需要重新处理一个或多个提交,但不适用于使用修正提交的--amend或rebase -i。通常我会这样做:git reset HEAD~1 # hack, fix, hack git commit -a # argh .. do I need to retyp...

147得票5回答
“git reset --hard HEAD~1”和“git reset --soft HEAD~1”的区别是什么?

我尝试在git中撤销我的提交。使用git reset --hard HEAD~1是否危险? git reset的不同选项有什么区别?