相关疑难解决方法(0)

gitcherry-pick {commit-hash} 是做什么的?

鉴于我有 3 个提交

c1
+ print("A")

c2
+ print("B")

c3
+ print("C")
Run Code Online (Sandbox Code Playgroud)

然后我在 c1 结帐了一个新分支。

git checkout -b br c1
Run Code Online (Sandbox Code Playgroud)

然后我挑选c3。

git cherry-pick c3.
Run Code Online (Sandbox Code Playgroud)

我想要的是文件有

print("A")
print("C") 
Run Code Online (Sandbox Code Playgroud)

-- 我只选择 c3,c3 只需添加一行 print("C")

但事实是我遇到了冲突,结果是

print("A")
++<<<<<<< HEAD
++=======
+ print("B")
+ print("C")
++>>>>>>> f1383aa... C
Run Code Online (Sandbox Code Playgroud)

我的问题是: 1.为什么会发生冲突?2.如果我想要print("A")和print("C")怎么办?

我也尝试过即使我

git diff C^1 .. C > 1.patch
git apply 1.patch
Run Code Online (Sandbox Code Playgroud)

我有

zhifan@zhifandeMacBook-Pro ~/g/demo> git apply 1.patch
error: patch failed: 1.py:1
error: 1.py: patch does not apply
Run Code Online (Sandbox Code Playgroud)

git git-cherry-pick

6
推荐指数
1
解决办法
4050
查看次数

为什么这个补丁应用了1的模糊,并且模糊失败为0?

$ vim patch
Index: toPatch
===================================================================
--- toPatch
+++ toPatch
@@ -2,4 +2,4 @@
  */
-final public class XMLWriter {
+public class XMLWriter {

$ vim toPatch
 */
final public class XMLWriter {

  public static float CURRENT_VERSION=2.2f;
    $ patch -p0 -ui patch
patching file toPatch
Hunk #1 succeeded at 1 with fuzz 2 (offset -1 lines).
Run Code Online (Sandbox Code Playgroud)

为什么模糊和线偏移?这是一个尝试理解差异和补丁的演示案例,因为工具有时/通常看起来不像预期的那样工作.

diff patch

4
推荐指数
2
解决办法
1万
查看次数

标签 统计

diff ×1

git ×1

git-cherry-pick ×1

patch ×1