git - 如何用上游版本覆盖未 merge 的 git checkout

标签 git merge git-checkout

我正在尝试将本地修改的文件恢复到上游的最新版本,从而有效地撤消我的更改。

$ git checkout --  Jovie/Jovie-Info.plist
error: path ‘Jovie/Jovie-Info.plist' is unmerged

使用-f改变错误警告,但仍然不会改变(???)

$ git checkout  -f -- Jovie/Jovie-Info.plist
warning: path ‘Jovie/Jovie-Info.plist' is unmerged

文件本身看起来像这样:

$ git diff Jovie/Jovie-Info.plist
diff --cc Jovie/Jovie-Info.plist
index 6c576d9,0209baa..0000000
--- a/Jovie/Jovie-Info.plist
+++ b/Jovie/Jovie-Info.plist
@@@ -50,7 -50,7 +50,11 @@@
                </dict>
        </array>
        <key>CFBundleVersion</key>
++<<<<<<< Updated upstream
 +      <string>5922</string>
++=======
+       <string>5918</string>
++>>>>>>> Stashed changes
        <key>Fabric</key>
        <dict>
                <key>APIKey</key>

如何覆盖本地文件并应用上游更改?

最佳答案

您可能需要先重置文件,然后再进行 checkout :

git reset -- Jovie/Jovie-Info.plist
git checkout -- Jovie/Jovie-Info.plist

重置取消暂存正在进行的更改(这里是 merge ,文件中有冲突标记)。
然后 check out 可以用最后一次提交的内容恢复索引。

关于git - 如何用上游版本覆盖未 merge 的 git checkout,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27089095/

相关文章:

git - 如何使用 git hook pre-commit 来停止对 master 的提交

GIT 多个本地 checkout

git - 如何在vs code中注销github账号

git - 拆分 git 存储库并稍后 merge 它

javascript - jQuery - 通过改变合并两个数组

arrays - 使用优先队列合并 K 排序列表

mysql - 合并和更新主键

git - 为什么分支名称不能在开头包含 'hash' (#) 字符?

git-checkout - git checkout 会更新所有文件吗?

git pull --rebase 用于特定文件夹/文件