我正在尝试将本地修改的文件还原为最近上游的版本,从而有效撤消我的更改。
$ 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>
如何覆盖本地文件并应用上游更改?
答案 0 :(得分:16)
在结帐之前,您可能需要先重置文件:
git reset -- Jovie/Jovie-Info.plist
git checkout -- Jovie/Jovie-Info.plist
重置会取消正在进行的更改(此处为合并,文件中包含冲突标记) 然后结帐可以使用最后一次提交内容恢复索引。
答案 1 :(得分:4)
如果您需要对所有 修改后的 未合并文件执行操作,有一种简单的方法可以执行此操作,而不是为每个文件执行操作:
git reset $( git status | grep both | awk '{print $4}')
git checkout $( git status | grep modified | awk '{print $3}')
如果您需要为我们的所有 [添加/删除] 未合并的文件执行操作,有一种简单的方法可以执行此操作而不是为每个文件执行操作:< / p>
git reset $( git status | grep us | awk '{print $5}')
git checkout $( git status | grep modified | awk '{print $3}')
如果您需要为所有 [添加/删除] 未合并文件执行操作,有一种简单的方法可以执行此操作而不是为每个文件执行操作:< / p>
git reset $( git status | grep them | awk '{print $5}')
git checkout $( git status | grep modified | awk '{print $3}')