将更改从git分支还原到master分支

时间:2019-10-30 12:53:22

标签: git github

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

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

这样做是否足够:

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

还是那只会删除分支但不会还原更改?

我尚未提交,因此所有更改都在IDE上本地进行。 (即使用AWS Cloud9 IDE)

2 个答案:

答案 0 :(得分:1)

由于您没有执行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

答案 1 :(得分:0)

由于您尚未提交更改,因此您可以检出master分支并按照建议删除新分支。 las,您尚未提交的更改仍然存在!由于它们不是首先提交的,因此它们只会停留在您的工作目录中。要摆脱它们,您必须使用git reset --hard HEAD之类的命令来重置整个工作目录。这将放弃所有更改并重置为当前分支的HEAD(将为master)。