用原始回购中的内容强制覆盖本地文件?


224

我想获取存储库中的最新文件,然后覆盖本地的文件。如何使用git客户端执行此操作?

Answers:


443

如果您只想覆盖一个文件:

git fetch
git checkout origin/master <filepath>

如果要覆盖所有更改的文件:

git fetch
git reset --hard origin/master

(这假设您正在master本地工作,并且想要对原点进行更改master-如果您在分支上,则用它代替。)


相反。它用我的本地文件错误地覆盖了存储库。
C_Rod '16

git fetch git reset --hard origin/master/<branch name>
adrian filipescu

太好了...正是我想要的。谢谢
Thiago Passos '18

不知道是什么@C_Rod做了,但是不可能影响到存储库
布拉德·梅斯

26

最简单的版本,假设您正在使用所需文件所在的同一分支:

git checkout path/to/file

我经常这样做,因此我将别名设置为gc='git checkout'


4
简单,优雅且能胜任。只要记得之前“ git fetch”即可。
阿米尔·坎波斯

6
git checkout path/to/file为我工作。另外,我发现该图对于从概念上了解git checkout正在做的事情非常有用。 链接
Cale Sweeney

9

这为我工作:

git reset HEAD <filename>

我看到了很多不同的解决方案,但这是最有效的解决方案,谢谢
Calvin Zhou

3

完全同步有几个任务:

  • 还原更改
  • 删除新文件
  • 从远程存储库获取最新信息

git reset HEAD-硬

git clean -f

git pull起源大师

否则,我更喜欢的是,我可以使用以下命令从远程创建一个新的分支:

git checkout origin/master -b <new branch name>

origin是我的远程存储库引用,而master是我考虑的分支名称。这些可能与您的有所不同。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.