我如何强制在 git pull 上覆盖本地文件 ? 我的本地仓库包含一个与服务器相同的文件名文件 。

错误: 未跟踪的工作树文件“ example. txt ” 会被合并覆盖


当前回答

我有一个奇怪的状况, 无论是git clean or git reset works. 我必须在每一个未跟踪的文件上使用以下脚本, 从 git 索引中删除冲突文件 :

git rm [file]

那样我就能好好拉了

其他回答

"我的地方变化很小,或者我的地方变化不起作用。 我只是想重置一切 回到原创。 我知道所有的地方变化都会丢失。"

如果情况是这样的话:

git reset --hard
git pull

警告: git clean 删除所有未跟踪的文件/目录, 无法撤销 。


有时只是干净 - f 帮不上忙。 如果您有未跟踪的目录, - d 选项也需要 :

# WARNING: this can't be undone!

git reset --hard HEAD
git clean -f -d
git pull

警告: git clean 删除所有未跟踪的文件/目录, 无法撤销 。

先考虑使用 -n (-- dry-run) 的标记。 这将显示要删除的内容, 但不实际删除任何内容 :

git clean -n -f -d

示例输出 :

Would remove untracked-file-1.txt
Would remove untracked-file-2.txt
Would remove untracked/folder
...

i 总结了其他答案。 您可以执行 Git 调用, 且不出错 :

git fetch --all
git reset --hard origin/master
git reset --hard HEAD
git clean -f -d
git pull

警告: 此脚本非常强大, 这样您就可以丢失更改 。

奖金 :

说到先前的回答中的拉/拉/拉/加,我想分享一个有趣的和有成果的把戏,

git Pull -- rebase

以上命令是我生命中最有用的命令 节省了很多时间

在将您新承诺推进到服务器之前, 请尝试此命令, 它会自动同步最新的服务器更改( 加上一个抓取+合并) , 并将您的承诺放在 git 日志的顶部 。 无需担心手动拉动/ 合并 。

查找“ 直接拉动 - rebase ” 的操作细节 ? @ info: whatsthis

您可以在您的工程基准文件夹中以文件忽略该文件 :

. jutignore( )

public/images/*

然后拉动修改,然后从您的 gitignore 文件中删除该行 。