Git 代码冲突解决,提交错误分支解决

1、 创建一个新分支保存当前修改

git checkout -b vivian_local

2、切到master分支

git checkout master 

3、将master分支更新到最新

git reset --hard remotes/m/master

4、切换到刚刚新建的临时分支,找到最新修改的commit:b36ad512c7eb9c41b15973bc8900815887abd793

vivian@vivian-OptiPlex-9020:~/workspace/keeper2/code/frameworks/base$ git checkout vivian_local 
Switched to branch 'vivian_local'

vivian@vivian-OptiPlex-9020:~/workspace/keeper2/code/frameworks/base$ git log 
commit b36ad512c7eb9c41b15973bc8900815887abd793
Author: vivian.ma <vivian.ma@goertek.com>
Date:   Mon Jul 5 18:06:59 2021 +0800

    [Name]:[Keeper2][SensorManager] Commit ekg debug code
    [Problem]
    Commit ekg debug code.
    
    [Solution]
    Commit ekg debug code.
    
    [Test]
    Build a new version.
    
    Change-Id: Iffb51ab4fa07c39b70a27aee9b64a929a886ee98

commit 07c212b00a822d996781daed208e95f3ff142b33
Author: vivian.ma <vivian.ma@goertek.com>
Date:   Sat May 8 11:02:23 2021 +0800

    [Name]:[Keeper2][Lockscreen] Disable lockscreen
    

5、再切换到master分支

git checkout master 

6、将临时分支的修改(commit:b36ad512c7eb9c41b15973bc8900815887abd793)cherry-pick到master分支上

vivian@vivian-OptiPlex-9020:~/workspace/keeper2/code/frameworks/base$ git cherry-pick b36ad512c7eb9c41b15973bc8900815887abd793
error: could not apply b36ad51... [Name]:[Keeper2][SensorManager] Commit ekg debug code
hint: after resolving the conflicts, mark the corrected paths
hint: with 'git add <paths>' or 'git rm <paths>'
hint: and commit the result with 'git commit'

7、cherry-pick后可以看到有冲突,所以查看冲突文件,可以看到冲突文件是api/current.txt

vivian@vivian-OptiPlex-9020:~/workspace/keeper2/code/frameworks/base$ git status
On branch master
You are currently cherry-picking commit b36ad51.
  (fix conflicts and run "git cherry-pick --continue")
  (use "git cherry-pick --abort" to cancel the cherry-pick operation)

Changes to be committed:
    modified:   core/java/android/hardware/LegacySensorManager.java
    modified:   core/java/android/hardware/Sensor.java
    modified:   core/java/android/hardware/SensorManager.java
    modified:   core/java/android/hardware/SystemSensorManager.java
    modified:   core/jni/android_hardware_SensorManager.cpp

Unmerged paths:
  (use "git add <file>..." to mark resolution)

    both modified:   api/current.txt

8、查看冲突内容

vivian@vivian-OptiPlex-9020:~/workspace/keeper2/code/frameworks/base$ git diff
diff --cc api/current.txt
index a948977,de29486..0000000
--- a/api/current.txt
+++ b/api/current.txt
@@@ -47485,7 -47487,7 +47487,11 @@@ package android.view 
      field public static final int KEYCODE_MENU = 82; // 0x52
      field public static final int KEYCODE_META_LEFT = 117; // 0x75
      field public static final int KEYCODE_META_RIGHT = 118; // 0x76
++<<<<<<< HEAD
 +    field public static final int KEYCODE_MICMUTE = 284; //0x11c
++=======
+     field public static final int KEYCODE_MICMUTE = 284; // 0x11c
++>>>>>>> b36ad51... [Name]:[Keeper2][SensorManager] Commit ekg debug code
      field public static final int KEYCODE_MINUS = 69; // 0x45
      field public static final int KEYCODE_MOVE_END = 123; // 0x7b
      field public static final int KEYCODE_MOVE_HOME = 122; // 0x7a
@@@ -47547,7 -47549,7 +47553,11 @@@
      field public static final int KEYCODE_SETTINGS = 176; // 0xb0
      field public static final int KEYCODE_SHIFT_LEFT = 59; // 0x3b
      field public static final int KEYCODE_SHIFT_RIGHT = 60; // 0x3c
++<<<<<<< HEAD
 +    field public static final int KEYCODE_SHUTTER = 285; //0x11d
++=======
+     field public static final int KEYCODE_SHUTTER = 285; // 0x11d
++>>>>>>> b36ad51... [Name]:[Keeper2][SensorManager] Commit ekg debug code
      field public static final int KEYCODE_SLASH = 76; // 0x4c
      field public static final int KEYCODE_SLEEP = 223; // 0xdf
      field public static final int KEYCODE_SOFT_LEFT = 1; // 0x1

9、解决冲突

vi api/current.txt
vi中操作指南如下
查找:/>>>
删除当前行:dd
查找下个:f

10、查看冲突解决结果

vivian@vivian-OptiPlex-9020:~/workspace/keeper2/code/frameworks/base$ git diff
diff --cc api/current.txt
index a948977,de29486..0000000
--- a/api/current.txt
+++ b/api/current.txt

11、提交解决好的文件,并提交git

git add .
git commit
git push origin HEAD:refs/for/master
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容