是否有类似于svn还原的git revert?我需要一个命令来擦除我本地的*所有*并将其设置为远程头

时间:2011-09-10 00:33:42

标签: git github

在svn或subclipse中,我可以简单地对根项目执行'revert',并且丢弃所有本地更改并将src更新为HEAD中的最新版本。我似乎没有在git中找到相同的内容,尽管有几个博客声称相同。

这就是我所做的:

  • 从我的家庭mac提交了10个文件。没推。
  • 从工作计算机和PUSHED提交了相同的10个文件和更多文件。
  • 回到家里,我想从远程起源/主人那里获取最新信息。

尝试了git pull,它带来了变化,但警告了冲突

尝试了git reset --hard HEAD,但什么都没发生。我仍然看到承诺的冲突变化

我必须尝试过其他一些我不记得的命令。我只需要回到远程头部而不用担心我的本地回购是什么状态。

帮助?

4 个答案:

答案 0 :(得分:30)

您需要重置为origin / master:

git reset --hard origin/master

答案 1 :(得分:7)

git reset --hard @{u}将丢弃所有本地更改并将当前分支重置为其上游分支。这仅适用于您设置该信息的情况(例如,通过克隆最新版本的git或使用git push -u)。如果您没有该信息但是您知道上游分支,则可以使用git reset --hard origin/master(假设此处origin/master是上游分支的名称)。

答案 2 :(得分:1)

你想要git reset,但是你可能希望早点返回一个提交,因为你已经将这些文件提交到了家用mac上的HEAD。

git reset --hard HEAD^

如果您担心破坏某些内容,可以随时执行git log,获取要返回的提交的哈希值(丢弃您的主页mac更改),然后git reset --hard哈希。

答案 3 :(得分:1)

对于简单的还原,您可以使用:git checkout

git checkout <master>