【发布时间】:2018-11-04 01:51:28
【问题描述】:
我正在处理一个 Ruby 项目,但刚刚在迁移和实体方面做出了一些错误的决定。
好的,我将获取我的主分支的内容并覆盖我所做的糟糕工作。
我使用:
git fetch --all
git reset --hard origin/master
但是我在本地添加的文件还在。我做错了什么?
【问题讨论】:
标签: ruby-on-rails git github
我正在处理一个 Ruby 项目,但刚刚在迁移和实体方面做出了一些错误的决定。
好的,我将获取我的主分支的内容并覆盖我所做的糟糕工作。
我使用:
git fetch --all
git reset --hard origin/master
但是我在本地添加的文件还在。我做错了什么?
【问题讨论】:
标签: ruby-on-rails git github
当你没有提交任何东西时,你不需要重置(我相信这里就是这种情况)。
只需致电git checkout . 即可删除任何未提交的更改。
说来话长:
Git 在几个“阶段”中存储更改。
git checkout <changed_file> 或 git checkout . 为每个文件还原它git add <filename> 或文件的一部分甚至git add -p 时,它被称为暂存,准备提交。你仍然可以返回git reset HEAD <file>
git reset origin/master 摆脱提交,但保留更改(回到第一点)git reset --hard origin/master同上,但清除所有改动因此,对于您的情况,要摆脱本地未提交的更改:git checkout . 并且,如果您有一些不想要的提交 git reset --hard origin/master
【讨论】:
这里的秘诀是使用 git clean -f 删除所有非暂存文件。
【讨论】: