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

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


当前回答

在窗口上执行此单命令 :

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

其他回答

奖金 :

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

git Pull -- rebase

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

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

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

所需经费:

跟踪本地更改, 这样这里没有人会失去它们。 使本地存储库与远程源存储库匹配 。

解决方案 :

隐藏本地更改。 获取一个不看. gitignore 的文件和目录, 并硬重置到源头 。 git 隐藏 - 包含未跟踪的 git 抓取 - all git clean - fdx git 重置 - 硬源/ master

最顶尖的答案会给有类似问题的人带来问题, 但不想失去本地文件。 例如,

以下版本将您本地的更改引入临时分支( tmp) , 检查原始分支( 我假设是母分支) 并合并更新 。 您可以用隐藏来做到这一点, 但我发现通常更容易使用分支/ 合并方法 。

git checkout -b tmp
git add *; git commit -am "my temporary files"
git checkout master

git fetch origin master
git merge -s recursive -X theirs origin master

假设另一个仓库是源主

我有一个类似的问题。 我必须这样做:

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

警告: 任何未承诺的本地文件更改将会丢失。 任何本地文件若未使用 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