猿问

如何强制“git拉”覆盖本地文件?

如何强制“git拉”覆盖本地文件?

如何强制将本地文件覆盖到git pull?

设想如下:

  • 一个团队成员正在修改我们正在开发的网站的模板。
  • 他们正在将一些图像添加到图像目录中(但忘记了在源代码管理下添加它们)
  • 他们将把这些图像邮寄给我,稍后再寄给我。
  • 我在源代码管理下添加图像,并将它们与其他更改一起推送到GitHub
  • 他们不能从GitHub中提取更新,因为Git不想覆盖他们的文件。

这就是我遇到的错误:

错误:未跟踪的工作树文件‘public/imag.gif’将被Merge覆盖

我怎么才能强迫Git覆盖它们呢?这个人是一个设计师-通常我用手解决所有的冲突,所以服务器有最新的版本,他们只需要在他们的电脑上更新。


白衣非少年
浏览 2088回答 3
3回答

DIEA

重要:如果您有任何本地更改,它们将丢失。有或没有--hard选项,任何未被推送的本地提交都将丢失。[*]如果您有任何文件不通过Git跟踪(例如上传用户内容),这些文件不会受到影响。我认为这是正确的方法:git&nbsp;fetch&nbsp;--all然后,你有两个选择:git&nbsp;reset&nbsp;--hard&nbsp;origin/master或者如果你在其他分支机构:git&nbsp;reset&nbsp;--hard&nbsp;origin/<branch_name>说明:git fetch从远程下载最新版本,而不尝试合并或重基任何内容。然后git reset将主分支重置为您刚刚获取的内容。这个--hard选项将工作树中的所有文件更改为与origin/master维护当前本地提交[*]值得注意的是,可以通过创建一个分支来维护当前的本地提交master重置前:git&nbsp;checkout&nbsp;master git&nbsp;branch&nbsp;new-branch-to-save-current-commits git&nbsp;fetch&nbsp;--all git&nbsp;reset&nbsp;--hard&nbsp;origin/master在此之后,所有旧的提交都将保存在new-branch-to-save-current-commits.未提交的更改然而,未提交的更改(甚至是阶段性的)将丢失。一定要藏起来,做任何你需要的事。为此,可以运行以下操作:git&nbsp;stash然后重新应用这些未提交的更改:git&nbsp;stash&nbsp;pop

Qyouu

试试这个:git&nbsp;reset&nbsp;--hard&nbsp;HEAD git&nbsp;pull它应该能做你想做的事。

翻阅古今

警告:git clean删除所有未跟踪的文件/目录,但无法撤消。有时只是clean -f帮不上忙。如果您有未跟踪的目录,还需要-d选项:#&nbsp;WARNING:&nbsp;this&nbsp;can't&nbsp;be&nbsp;undone! git&nbsp;reset&nbsp;--hard&nbsp;HEAD git&nbsp;clean&nbsp;-f&nbsp;-d git&nbsp;pull警告:git clean删除所有未跟踪的文件/目录,但无法撤消。考虑使用-n&nbsp;(--dry-run)旗子第一。这将向您展示哪些内容将被删除,而不实际删除任何内容:git&nbsp;clean&nbsp;-n&nbsp;-f&nbsp;-d示例输出:Would&nbsp;remove&nbsp;untracked-file-1.txt Would&nbsp;remove&nbsp;untracked-file-2.txt Would&nbsp;remove&nbsp;untracked/folder ...
随时随地看视频慕课网APP
我要回答