如何恢复到原始主分支版本的文件

时间:2009-11-30 03:53:25

标签: git

我在本地计算机的远程服务器回购克隆主分支的主分支中。

我更新了一个文件,我想从远程主分支恢复到原始版本。

我该怎么做?

4 个答案:

答案 0 :(得分:725)

假设您没有提交文件,或将其添加到索引中,那么:

git checkout -- filename

假设您已将其添加到索引中,但未提交,则:​​

git reset HEAD filename
git checkout -- filename

假设你确实提交了它,那么:

git checkout origin/master filename

假设你想要从你的分支机构中删除所有提交(非常具有破坏性):

git reset --hard origin/master

答案 1 :(得分:33)

I've faced same problem and came across to this thread but my problem was with upstream. Below git command worked for me.

Syntax

git checkout {remote-name}/{branch} -- {file/path.js}

Example

git checkout upstream/develop -- public/js/index.js

答案 2 :(得分:1)

为了添加替代方案(当然不一定是更好的替代方案),如果您之前已经提交了文件,但现在您需要撤消更改,您可以执行以下操作:

git diff HEAD..master -- path/to/file.ext | git apply -

这会生成一个差异以将文件恢复到 master 分支中的版本,然后应用它。 git apply 后面的减号告诉 git 从标准输入读取补丁。

然后您可以照常提交文件。

答案 3 :(得分:0)

如果您尚未将其提交到master分支,则很简单:

  • 离开master分支(例如git checkout -b oops/fluke/dang
  • 在此处提交您的更改(例如git add -u; git commit;
  • 返回master分支(例如git checkout master

您的更改将保存在分支oop / fluke / dang中;主人会保持原状。

相关问题