sac*_*024 5 git git-stash git-checkout merge-conflict-resolution
让我们从一种情况开始。
git stashgit commit -m "Commit message"git stash apply由于提交,我在2个文件中收到合并冲突。我不再需要这2个文件中的更改,因此我尝试还原这些更改。
我做了 git checkout -- background.js
它因错误而失败
错误:路径“ src / background / background.js”未合并
但是后来我读了这篇SO帖子并尝试
git checkout HEAD -- background.js
Run Code Online (Sandbox Code Playgroud)
它可以成功工作。这两个文件都发生在我身上。我想了解两者之间的区别
git checkout -- file 和 git checkout HEAD -- file
通常情况下没有太大区别。关键是你们有冲突需要解决。从手册页http://csurs.csr.uky.edu/cgi-bin/man/man2html?1+git-checkout
git checkout [--patch] [] [--] ...
...
由于先前的合并失败,索引可能包含未合并的条目。默认情况下,如果您尝试从索引中检出此类条目,则检出操作将失败并且不会检出任何内容。使用 -f 将忽略这些未合并的条目。可以使用 --ours 或 --theirs 从索引中检出合并特定端的内容。使用 -m,可以放弃对工作树文件所做的更改以重新创建原始的冲突合并结果。
checkout当它失败时,你正在使用这种方法。因此,根据设计,结帐将由于未合并的更改(未解决冲突)而失败。添加HEAD告诉 git 要使用哪个“分支”,因此实际上会签出该文件。
HEAD 指的是您在存储库中所处的特定 SHA。所以你告诉 git 从哪里提取文件,就像你在不同的分支上一样。
| 归档时间: |
|
| 查看次数: |
3385 次 |
| 最近记录: |