用git强行拉

时间:2014-04-18 11:44:16

标签: git

我已经尝试了所有这些,但似乎都没有效果:How do I force "git pull" to overwrite local files?

这里有2个场景:

A)删除本地文件

1) git clone my_repo
2) cd my_repo
3) delete some file
4) git pull
  > Already up to date

不,我没有删除一些文件,为什么不删除丢失的文件?

B)更改文件

1) git clone my_repo
2) cd my_repo
3) echo "xxx" >> some file
4) git pull
  > Already up to date

它没有更新,我更改了文件!

如何强制git与远程主控重新同步?

修改

我最初应该提到这是用于部署的,因此需要有效地将本地与主服务器同步。

2 个答案:

答案 0 :(得分:2)

pull命令将您的本地仓库与远程仓库同步。如果您已经有最新版本,它会说"已经是最新的"。

但是,您可以再次签出最新版本以撤消更改。

在您的回购根:git checkout . (注意点)将检出所有文件,并将所有更改还原为当前版本。

git checkout path/to/a/file

将从当前版本中检出该文件。并还原当前文件,也可以使用文件夹。

请参阅:man git checkout 了解更多信息。

答案 1 :(得分:0)

Pull主要是一个很好的界面,包括提取和相关的赞誉,如同步和重置。要获得您想要的行为,我们必须降低到以下级别。因此,尝试这样来获取然后破坏你的工作副本:

git fetch origin master
git reset --hard FETCH_HEAD
git clean -df