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

git - 如何取消本地 git 提交?

我的问题是我已经更改了一个文件,例如:README,添加了一个新行' this for my testing line '并保存了文件,然后我发出了以下命令:

我没有将代码推送到 GitHub。现在我想取消这个提交。

为此,我使用了

但是我从 README 文件中丢失了新添加的行“ this for my testing line ”。这不应该发生。我需要内容在那里。有没有办法保留内容并取消我的本地提交?

0 投票
3 回答
43441 浏览

git - 我需要在我的主分支中弹出并丢弃一个“中间”提交。我该怎么做?

例如,在以下 master 分支中,我只需要删除提交 af5c7bf16e6f04321f966b4231371b21475bc4da,这是由于先前的 rebase 导致的第二个:

我需要维护

  • 第一次提交 60b413512e616997c8b929012cf9ca56bf5c9113,
  • 第三次提交 e6523efada4d75084e81971c4dc2aec621d45530 和
  • 最后一次提交 414ceffc40ea4ac36ca68e6dd0a9ee97e73dee22

“扔掉”只是第二次提交af5c7bf16e6f04321f966b4231371b21475bc4da

我怎样才能做到这一点?提前感谢卢卡

0 投票
3 回答
205795 浏览

git - “git rm --cached x”与“git reset head --​x”?

GitRef.org - 基本

git rm将从暂存区域中删除条目。git reset HEAD这与“取消暂存”文件有点不同。“取消暂存”是指它将暂存区域恢复到我们开始修改之前的状态。 git rm另一方面,只是将文件完全踢出舞台,因此它不会包含在下一个提交快照中,从而有效地删除它。

默认情况下,agit rm file将从暂存区域中完全删除该文件,并从您的磁盘 >(工作目录)中删除该文件。要将文件保留在工作目录中,您可以使用git rm --cached.

git rm --cached asd但是和之间到底有什么区别git reset head -- asd

0 投票
14 回答
886651 浏览

git - 如何恢复未提交的更改,包括文件和文件夹?

是否有 git 命令可以恢复工作树和索引中所有未提交的更改,并删除新创建的文件和文件夹?

0 投票
1 回答
43 浏览

git-rebase - 重新设置自分支以来重写的 git 分支

我有一个 git 存储库和两个分支masterst(从 分支master)。我想重新定位stmaster. 然而,master已经被其他人大规模重写,坦率地说我不知道​​为什么,但我们被提示到fetch新的masterreset --hard我们的私人分支。

如果我尝试git-rebase列出需要手动合并的非平凡冲突文件跨越两个屏幕页面。我知道实际的变化并没有那么大。一方面,该st分支只涉及少数文件(我猜不超过十个)。

除了变基,我尝试创建一个补丁并应用它,但也有一些冲突,我不知道如何解决。

0 投票
1 回答
1633 浏览

git - GIT Pull 删除了我的提交

在 git pull 之后,我已经完成了 git reset 以在合并之前撤消与提交 id 的合并。不知何故,我的整个提交都消失了,我也看不到历史中的提交。但是我有提交 id,在 git show 命令上我可以看到我的更改。

我如何取回我的更改以及如何跟踪我所做的错误

0 投票
2 回答
8432 浏览

git - Git:如何撤消提交*和*恢复到最后一个分支

呃哦......我错误地提交了一个非常复杂的更改(包括子目录和文件重命名),而我并不真正知道我在做什么(或者 Git 会做什么)。

我现在想撤消所有这些:

  1. 提交被完全逆转(好像它从未完成过,也许也将它从历史中删除)
  2. 将当前工作目录(在哪里.git)恢复到某个分支(现在最后一个)。

我找到了对git reset --softgit reset --hard的引用,但我已经向自己证明,在不完全理解命令的情况下过早使用命令会造成真正的损害。:)

我找到了git reset 手册页,但我仍然对以下内容感到困惑:

  1. 是什么HEAD
  2. HEAD和 和有什么不一样 * master
  3. 在我的情况下(见上文),我需要使用--soft,--hard还是其他(另外 3 个选项)?
  4. 我是否需要运行另一个命令(在执行之后git reset)来“完成”反转?

更新:阅读以下答案后:

  1. 我是否正确理解在我的情况下我需要做的就是发出一个命令git reset --hard HEAD^
  2. 如何验证是否正确执行了冲销?
0 投票
14 回答
1201786 浏览

git - 为什么有两种方法可以在 Git 中取消暂存文件?

有时 git 建议取消暂存git rm --cached文件,有时git reset HEAD file. 我什么时候应该使用哪个?

编辑:

0 投票
13 回答
67059 浏览

git - 使用暂存区域中未提交的文件撤消 git reset --hard

我正在努力恢复我的工作。我愚蠢地做了git reset --hard,但在那之前我只get add .做过,没有做过git commit。请帮忙!这是我的日志:

git reset --hard在这种情况下可以撤消吗?

0 投票
2 回答
13095 浏览

git - Git:撤消本地更改;混帐添加。+ git rm?

需要帮助找出几个常见的 Github 工作流程。我来自 VS TFS 背景,请原谅我。

撤消挂起的更改

假设我已将 git 存储库克隆到本地文件系统。此时,项目的本地文件与远程存储库中的内容完全匹配。

然后我决定对代码进行一些更改,并更改几个文件的本地版本。在做了一些测试之后,我发现我想放弃我的本地更改并将本地文件恢复到它们在远程存储库中的状态。

如何撤消这些本地更改,将它们恢复到存储库中的当前版本?

提交所有更改

每当我在我的存储库克隆中修改本地文件的内容,或添加新文件并想要推送更改时,我都会发出“git add .”、“git commit”和我的评论,然后“git push”给我的主人。

但是,当我在本地删除存储库中跟踪的文件时,“git add”。不捕获 rm 更改。相反,我必须在“git commit”之前“git rm [filename]”来更新存储库。不过,我总是忘记这样做。

是否有一个 git 命令会“git add”。和“git rm”我在本地删除的任何文件,一步?在修改了本地文件并删除了几个文件之后,我想在“git commit”之前发出一个命令来捕获我的所有更改。