undo git 将错误的分支拉到 master 上

undo git pull of wrong branch onto master

远程的不同分支中拉取。这 2 个分支不同,但合并在我当前的分支上悄无声息地发生。我目前在本地的"master"分支上工作,已经更新了远程分支的变化——"FE_Changes"。

如何从我的 master 分支中删除 "FE_Changes" 分支的影响?

git reset --hard HEAD~1

这将核对您本地分支上的最新提交。假设你的拉取策略是合并,那么你的本地主分支上应该只有一个流氓提交。你提到 "the merge happened silently," 所以这应该适用于你的情况。一旦你修复了 master 分支,你可以再次拉取,这次确保你从正确的远程分支中拉取。

除了蒂姆的回答: 如果你想重置为特定的提交:

git reflog

将显示所有最近提交的 ID

然后你可以执行:

git reset --hard <specific id>

重置为该特定提交。

您可以简单地使用以下命令

git fetch origin
git reset --hard origin/master

扩展已接受的答案;

git reset --hard HEAD~1

  1. git 重置

Git reset 是一个功能强大的命令,用于撤消对 Git 存储库状态的本地更改。 Git reset 对“Git 的三棵树”进行操作。这些树是提交历史记录 ( HEAD )、暂存索引和工作目录。

  1. --难

这是最直接、最危险、最常用的选项。传递后,此命令会导致提交历史 ref 指针更新为指定的提交。然后,暂存索引和工作目录被重置以匹配指定提交的索引和工作目录。之前对暂存索引和工作目录的任何未决更改都会重置以匹配提交树的状态。这意味着在暂存索引和工作目录中挂起的任何待处理工作都将丢失。

  1. HEAD~1 或 HEAD~2 或 HEAD~3 等...

使用“~”返回多个提交。 HEAD~1 将当前分支向后移动一次提交,有效地从项目历史记录中删除刚刚创建的 1 个快照。请记住,这种重置只能用于未发布的提交。如果您已经将提交推送到共享存储库,请不要执行上述操作。