用它的原始仓库强制覆盖本地文件?

时间:2010-10-16 16:50:06

标签: git

我想获取存储库中的最新文件,并覆盖我在本地拥有的文件。我怎么能用git客户端做到这一点?

6 个答案:

答案 0 :(得分:377)

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

git fetch
git checkout origin/master <filepath>

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

git fetch
git reset --hard origin/master

(这假设您在本地处理master,并且您希望对原始master进行更改 - 如果您在某个分支上,则将其替换为。)

答案 1 :(得分:18)

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

gc='git checkout'

我经常这样做,因为我将别名设置为Function()

答案 2 :(得分:3)

完全同步的任务很少:

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

git reset HEAD --hard

     

git clean -f

     

git pull origin master

或者,我更喜欢的是,我可以创建一个新的分支,使用最新的遥控器:

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

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

答案 3 :(得分:3)

这对我有用:

git reset HEAD <filename>

答案 4 :(得分:2)

如果您想使用特定分支覆盖所有本地更改,那么您可以这样做

git reset --hard origin/feature/branchname

feature/branchname -> 是我的分支名称,我用它替换了所有本地更改

我打算从功能/分支名称分支中获取所有更改并提交到我正在工作的分支,我的分支名称是“mybranch”。然后我首先替换了我已经推送到我的分支 mybranch 的本地更改,然后我必须将此命令推送到我的分支。强制推送命令是

git push --force

它会将我从 'feature/branchname' 分支获得的任何更改推送到我的 'mybranch'。

答案 5 :(得分:0)

我相信您正在寻找的是“ git restore”。

最简单的方法是在本地删除文件,然后对该文件执行git restore命令:

$ rm file.txt
$ git restore file.txt