File tree Expand file tree Collapse file tree 1 file changed +14
-4
lines changed Expand file tree Collapse file tree 1 file changed +14
-4
lines changed Original file line number Diff line number Diff line change @@ -11,23 +11,27 @@ git rebase -i <커밋hash값>
11
11
12
12
git Rebase를 통해서 이전의 커밋을 통해서 필요한 부분을 처리할 수 있는 방법이 존재한다.
13
13
14
- [ 사진 ]
14
+ < img width = " 809 " alt = " 스크린샷 2020-08-14 오후 1 23 55 " src = " https://user-images.githubusercontent.com/17822723/90216132-b5ed8b00-de38-11ea-8be3-529262446fc2.png " >
15
15
16
16
다음과 같은 방법으로 이 커밋을 살릴지 죽일지를 git CLI를 통해서 결정을 할 수 있고 실제로 이 커밋은 최신순이 아닌 역순으로 배열되어 한개씩 한개씩 체크하면서 넘어갈 수 있다.
17
17
18
-
19
-
20
18
지금 내가 처한 경우는 ** 기능 삭제 커밋을 지우게되면 삭제된 파일을 다시 되살리는 것이다.** 그래서 그 커밋만 빼고 나머지 커밋은 유지된 상태로 돌아오게 된다.
21
19
22
20
그러면 이대로 PUSH!하면 될줄 알았는데.... 또 문제가 발생한다. 이 Push 방향이 master branch로 Push가 되는 것이다. 분명 내가 쓰던 feature/000 브랜치로 push하고 싶은데 그게 안된다...
23
21
왜 이런 상황이 발생했는지를 알아보면 git branch를 보면 이런 문구가 적혀있다.
24
22
25
- ` detached Head `
23
+ ` Detached HEAD `
26
24
27
25
이런 상황에서는 github Desktop에서는 재대로 어떤 작업도 할 수 없기때문에 CLI를 이용해서 해결해야했다.
28
26
29
27
30
28
29
+ > ** 참고 사항!**
30
+ >
31
+ > 왜 ` Detached HEAD ` 상태가 되었는가에 대해서 생각해봤는데 실제로 내가 이 커밋을 돌릴때는 commit의 주소 즉 hash값을 통해서 돌렸다.
32
+ >
33
+ > 이 방식은 비슷하게도 checkout에서도 커밋의 해쉬로 실행하게되면 ` Detached HEAD ` 상태가 된다고 한다. 즉, commit의 주소를 통해서 rebase를 하거나 checkout을 하게된 경우는 발생할 수 있는 부분이다.
34
+
31
35
CLI를 통해서 ` detached Head ` 된 branch를 다시 원래 branch에 붙이고 싶다면 커밋한 후에
32
36
33
37
``` shell
@@ -38,6 +42,12 @@ git checkout -b <branch> ex)feature/0000 요롷게?
38
42
39
43
즉, 이 새롭게 생성된 branch를 바탕으로 원래 branch에 붙이는 방식을 택하거나 혹은 아예 Develop branch에 merge하는 방법을 택해도 된다. 이미 rebase된 상태라 이전 feature/000에서 수정되어진 값은 유지된 상태이기때문에 큰 걱정은 안해도된다.
40
44
45
+ 그렇게 두개의 branch가 생기면 이렇게 차이가 발생하는 것을 볼 수 있다.
46
+
47
+ ![ 캡처] ( https://user-images.githubusercontent.com/17822723/90216128-b25a0400-de38-11ea-82fd-eb6431c217f4.jpg )
48
+
49
+
50
+
41
51
42
52
43
53
출처:https://superuser.com/questions/35267/how-can-i-roll-back-1-commit
You can’t perform that action at this time.
0 commit comments