Skip to content

Commit 016b250

Browse files
committed
git 새로운 이슈 하나 추가
1 parent 0d98b73 commit 016b250

File tree

1 file changed

+14
-4
lines changed

1 file changed

+14
-4
lines changed

Git/Git_커밋하나만_되돌리는법.md

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,23 +11,27 @@ git rebase -i <커밋hash값>
1111

1212
git Rebase를 통해서 이전의 커밋을 통해서 필요한 부분을 처리할 수 있는 방법이 존재한다.
1313

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">
1515

1616
다음과 같은 방법으로 이 커밋을 살릴지 죽일지를 git CLI를 통해서 결정을 할 수 있고 실제로 이 커밋은 최신순이 아닌 역순으로 배열되어 한개씩 한개씩 체크하면서 넘어갈 수 있다.
1717

18-
19-
2018
지금 내가 처한 경우는 **기능 삭제 커밋을 지우게되면 삭제된 파일을 다시 되살리는 것이다.** 그래서 그 커밋만 빼고 나머지 커밋은 유지된 상태로 돌아오게 된다.
2119

2220
그러면 이대로 PUSH!하면 될줄 알았는데.... 또 문제가 발생한다. 이 Push 방향이 master branch로 Push가 되는 것이다. 분명 내가 쓰던 feature/000 브랜치로 push하고 싶은데 그게 안된다...
2321
왜 이런 상황이 발생했는지를 알아보면 git branch를 보면 이런 문구가 적혀있다.
2422

25-
`detached Head`
23+
`Detached HEAD`
2624

2725
이런 상황에서는 github Desktop에서는 재대로 어떤 작업도 할 수 없기때문에 CLI를 이용해서 해결해야했다.
2826

2927

3028

29+
> **참고 사항!**
30+
>
31+
> `Detached HEAD` 상태가 되었는가에 대해서 생각해봤는데 실제로 내가 이 커밋을 돌릴때는 commit의 주소 즉 hash값을 통해서 돌렸다.
32+
>
33+
> 이 방식은 비슷하게도 checkout에서도 커밋의 해쉬로 실행하게되면 `Detached HEAD` 상태가 된다고 한다. 즉, commit의 주소를 통해서 rebase를 하거나 checkout을 하게된 경우는 발생할 수 있는 부분이다.
34+
3135
CLI를 통해서 `detached Head` 된 branch를 다시 원래 branch에 붙이고 싶다면 커밋한 후에
3236

3337
```shell
@@ -38,6 +42,12 @@ git checkout -b <branch> ex)feature/0000 요롷게?
3842

3943
즉, 이 새롭게 생성된 branch를 바탕으로 원래 branch에 붙이는 방식을 택하거나 혹은 아예 Develop branch에 merge하는 방법을 택해도 된다. 이미 rebase된 상태라 이전 feature/000에서 수정되어진 값은 유지된 상태이기때문에 큰 걱정은 안해도된다.
4044

45+
그렇게 두개의 branch가 생기면 이렇게 차이가 발생하는 것을 볼 수 있다.
46+
47+
![캡처](https://user-images.githubusercontent.com/17822723/90216128-b25a0400-de38-11ea-82fd-eb6431c217f4.jpg)
48+
49+
50+
4151

4252

4353
출처:https://superuser.com/questions/35267/how-can-i-roll-back-1-commit

0 commit comments

Comments
 (0)