繁体   English   中英

将 git 分支的更改恢复到主分支

[英]Revert changes from a git branch to the master branch

我在轨道上使用 Ruby 语言工作,我创建了一个名为 user-micropost 的分支。 在这个分支中,我创建了文件、修改了文件并完成了数据库迁移。

我在某个地方搞砸了,所以我想恢复它当前在 GitHub 上的代码,或者在创建这个新分支之前将代码返回到 state。

这样做是否足够:

git checkout master然后git branch -d branch-name ?

或者这只会删除分支但不会恢复更改?

我还没有提交,所以所有更改都是 IDE 上的本地更改。 (我使用 AWS Cloud9 IDE)

由于您没有执行git add <file> (您的所有更改都在 IDE 上是本地的),因此您的更改应该在未声明/未跟踪的文件下。 如果您运行git status命令,您可以确认。

有 3 个选项可以撤消 IDE 上的本地更改。

  1. 丢弃所有本地更改,但保存它们以供以后重复使用: git stash
  2. 将所有本地更改(永久)丢弃到文件: git checkout -- <file>
  3. 永久放弃对所有文件的所有本地更改: git reset --hard

最后一个选项是一个危险的命令,如果您不确定自己在做什么,则应避免使用它,因为它会删除所有未提交的更改。 但是,就您而言,这就是您似乎想要做的事情。

更多信息: https://docs.gitlab.com/ee/topics/git/numerous_undo_possibilities_in_git/#undo-local-changes

由于您没有提交更改,因此您可以签出 master 分支并按照您的建议删除新分支。 唉,你未提交的更改仍然存在,因为它们一开始就没有提交。 它们只是停留在您的工作目录中,要摆脱它们,您必须使用git reset --hard HEAD类的命令重置整个工作目录。 这将丢弃所有更改并重置为当前分支的 HEAD(即master )。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM