我在本地计算机的远程服务器回购克隆主分支的主分支中。
我更新了一个文件,我想从远程主分支恢复到原始版本。
我该怎么做?
答案 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.
git checkout {remote-name}/{branch} -- {file/path.js}
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分支,则很简单:
git checkout -b oops/fluke/dang
)git add -u; git commit;
)git checkout master
)您的更改将保存在分支oop / fluke / dang中;主人会保持原状。