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

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


当前回答

尽管这个问题已经有许多答案,但最初的问题是解决这个问题。

错误: 未跟踪的工作树文件“ public/images/icon. gif” 会被合并覆盖

作为二进制文件无法合并, 简单的答案是

git checkout public/images/icon.gif

同时,文件将恢复它在这个分支的先前状态。

如果我不想失去我的更改或 Git 检出之类的东西, 我通常会做 Git 隐藏。 如果我不关心本地修改过的文件。 比重置( 硬的、干净的) 更简单得多... 和所有这些东西 更适合离开分行的远程, 包括承诺的、 未追踪的文件, 而不是仅仅解决本地修改过的文件 。

其他回答

警告: 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
...

奖金 :

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

git Pull -- rebase

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

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

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

警告: 任何未承诺的本地文件更改将会丢失。 任何本地文件若未使用 Git 进行追踪, 将不会受到影响 。 @ info: whatsthis


首先, 更新所有来源/ & lt; branch> refs 到最近的 :

git fetch --all

备份当前分支( 如母版) :

git branch backup-master

跳转到来源/ 管理员的最新承诺, 并检查这些文件 :

git reset --hard origin/master

解释:

git 从远程获取最新下载, 但不试图合并或重标任何内容 。

git 重置主控分支重置为您刚获取的文件。 -- hard 选项更改您工作树中的所有文件, 以匹配源/ 主机中的文件 。


维持当前当地承付额

[*]:值得指出的是,通过在重塑之前从主人那里设立一个分支,可以保持目前的当地承诺:

git checkout master
git branch new-branch-to-save-current-commits
git fetch --all
git reset --hard origin/master

在此之后,所有旧承诺都将保留在新的部门到储蓄的当前承诺中。

未承诺的更改

将丢失未承诺的更改, 但是( 即使是阶段的) 。 请确保隐藏并承诺您需要的一切 。 因为您可以运行以下操作 :

git stash

然后重新应用这些未承诺的修改:

git stash pop

而不是做:

git fetch --all
git reset --hard origin/master

我建议采取以下行动:

git fetch origin master
git reset --hard origin/master

如果您要重置到源/ 主管分支, 不需要获取所有远程和分支 ?

我试图在三角2网块启动器上使用材料2分支, 并且有一段很愉快的时间。 这是我唯一可以下载和使用该分支的方法。

git clone --depth 1 https://github.com/angularclass/angular2-webpack-starter.git

cd angular2-webpack-starter/

git checkout -b material2

打开工程文件夹, 删除所有非隐藏的文件和文件夹。 留下所有隐藏的文件和文件夹 。

git add .

git commit -m "pokemon go"

git reset --hard

git pull origin material2

(当编辑器弹出时, 点击 ': wq' , 然后按进)

现在你准备好了