본문 바로가기
SW Developer

[Git] merge error: you need to resolve your current index first 해결

by ashespia 2021. 8. 24.
SMALL

Git merge error: you need to

 

 

소스를 특정 시점으로 돌리기 위해 git 명령어를 사용 하던 중 conflict가 발생했다.

 

git log를 보고 commit id를 가지고 cherry-pick을 했다.

 

git cherry-pick c0615b0a47cf72488be73b3ae63e30c88a2e1609

 

그러면서 1차 문제가 발생했다.

 

 

error: you need to resolve your current index first

 

git pull 명령어로 복구하려고 해보았지만 Pull is not possible 하며 unmerged files 들이 있다고 뜬다.

문제를 해결하고 다시 실행하라고 나온다.

 

git pull .
U       AndroidStudio_SRC/redbend/libs/arm64-v8a/libsmm.so
U       AndroidStudio_SRC/redbend/src/main/java/com/redbend/client/amtel/FotaServiceManager.java
U       AndroidStudio_SRC/redbend/src/main/java/com/redbend/client/ui/ScomoInstallConfirm.java
U       Redbend.apk
U       Redbend_userdebug.apk
Pull is not possible because you have unmerged files.
Please, fix them up in the work tree, and then use 'git add/rm <file>'
as appropriate to mark resolution, or use 'git commit -a'.

 

git status 명령어로 뭐가 문제 인지 확인해 보자

여기서 답을 찾을 수 있다. 

 

git status
HEAD detached from refs/heads/dev_la.um.7.2.r1-05800
You are currently cherry-picking commit c0615b0.
  (fix conflicts and run "git cherry-pick --continue")
  (use "git cherry-pick --abort" to cancel the cherry-pick operation)

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

        both modified:      AndroidStudio_SRC/redbend/libs/arm64-v8a/libsmm.so
        both modified:      AndroidStudio_SRC/redbend/src/main/java/com/redbend/client/amtel/FotaServiceManager.java
        both modified:      AndroidStudio_SRC/redbend/src/main/java/com/redbend/client/ui/ScomoInstallConfirm.java
        both modified:      Redbend.apk
        both modified:      Redbend_userdebug.apk

no changes added to commit (use "git add" and/or "git commit -a")

 

1. conflicts 난 것을 고치고 git cherry-pick --continue

2. cherry-pick 했던 것을 원복하기 위해서 git cherry-pick --abort 명령어 실행

 

이 중 2번을 선택 하여 복구를 진행해보자. 

 

packages/apps/PreloadApps2/Redbend$ git cherry-pick --abort
packages/apps/PreloadApps2/Redbend$ git diff .
packages/apps/PreloadApps2/Redbend$ git reset HEAD~2
Unstaged changes after reset:
M       AndroidStudio_SRC/TokenProvider/build.gradle
M       AndroidStudio_SRC/TokenProvider/settings.gradle
M       AndroidStudio_SRC/TokenProvider/tokenProvider/build.gradle
M       AndroidStudio_SRC/TokenProvider/tokenProvider/build/generated/source/buildConfig/debug/com/redbend/tokenProvider/BuildConfig.java
M       AndroidStudio_SRC/TokenProvider/tokenProvider/build/intermediates/aapt_friendly_merged_manifests/debug/aapt/AndroidManifest.xml
M       AndroidStudio_SRC/TokenProvider/tokenProvider/build/intermediates/aapt_friendly_merged_manifests/debug/aapt/output.json

 

git cherry-pick --abort 명령으로 복구된 것을 git diff . 명령어로 잘 정리되었는지 확인할 수 있다.

 

원래 하려고 했던 현재 소스에서 2번 이전의 commit 으로 가기위해 git reset HEAD~2 명령어를 실행했다.

 

error 없이 you need to resolve your current index first 명령어를 다시 만나지 않았다.

LIST

댓글