Tool

[Git] 어라? Author가 내가 쓰던게 아니네? 오마이잔디...

미스터머글 2020. 4. 4. 22:46
728x90
반응형

요즘 알고리즘 공부가 한참이다.

덕분에 간간히 Github에 잔디를 심고 있었는데...

 

어라? 최산 3주동안 아무것도 안찍혔다????

이게 무슨 일인가? 최근 3주가 황무지가 아닌가?

git log를 확인해보니...

e9b8d8f - barley, 2일 전 : 학습중 : 15652
db8a179 - barley, 2일 전 : 학습 : 15651
df17bc0 - barley, 4일 전 : 프로그래머스 : 해시 3
cabcd88 - barley, 5일 전 : 프로그래머스 : 해시 2
3446e28 - barley, 5일 전 : 프로그래머스 : 해시 1
2c90238 - barley, 8일 전 : 학습 : 15649, 15650
c7e15c8 - barley, 9일 전 : 학습 : 6064, 1748
64cfb9a - barley, 9일 전 : 학습 : 1107, 1476, 2309
7c79e74 - barley, 10일 전 : 프로그래머스 : 42576
424d4d2 - barley, 2주 전 : 학습 : 2225 (1차 배열)
650da25 - barley, 3주 전 : 학습 : 2225
f7982ef - Jongkook, 3주 전 : 학습 : 17404

다른 곳에서 도와달라고 한게 있어서 안드로이드 프로젝트를 클론한 적이 있었다.

이때 Global Author를 "barley"로 해놨던 것이다.

잔디잃은_내표정.github

다른 곳에 심은 잔디를 다시 가지고 와야겠다.

바로 git rebase로.

rebase가 처음이라 조금 긴장이 되지만 어쩌겠는가. 해야지

MadPlay's MadLife 블로그가 큰 도움이 되었고 자료를 참고했음을 알린다.

 

1. 상황 파악 (Log를 보자)

$ git log --pretty=format:"%h - %an, %ar : %s"

e9b8d8f - barley, 2일 전 : 학습중 : 15652
db8a179 - barley, 2일 전 : 학습 : 15651
// 생략
650da25 - barley, 3주 전 : 학습 : 2225
f7982ef - Jongkook, 3주 전 : 학습 : 17404

2. Rebase를 해보자.

Rebase가 뭔가. Re + Base. 재설정이다. 그럼 재설정할 포인트가 필요하다.

상단 log를 보자.

Commit hash값이 "f7982ef"일 때는 멀쩡했다.

그러면 이 시점을 "다시 base"로 잡으면 된다.

$ git rebase -i -p f7982ef

warning: git rebase --preserve-merges is deprecated. Use --rebase-merges instead.
Stopped at 650da25... 학습 : 2225
You can amend the commit now, with
학습 : 2225

	git commit --amend

Once you are satisfied with your changes, run

	git rebase --continue

rebase를 하면 요런 출력이 vi로 나온다.

3. 수정할 것들을 고르자

위 이미지에서 원하는 커밋 해쉬를 pick이라고 적혀있는 것을 edit라고 고치면 된다.

다 수정했다면 :wq를 입력해서 저장 후 종료하자.

아래는 그 예시다. 위 이미지와 비교해보자.

pick를 edit로 수정했다

 

4. 이제 내가 원하는 author를 입력하자

$ git commit --amend --author="당신의이름 <sample@email.com>"


[HEAD 분리됨 f59d10a] 학습 : 2225 (1차 배열)
 Author: Jongkook <conquerex@gmail.com>
 Date: Thu Mar 19 19:08:35 2020 +0900
// 주저리 주저리는 생략
    git config --global user.name "내 이름"
    git config --global user.email you@example.com

이렇게 한 다음, 이 커밋에 사용한 신원 정보를 다음과 같이 해서 바꿀 수 있습니다:

    git commit --amend --reset-author

 5 files changed, 65 insertions(+), 18 deletions(-)
 create mode 100644 out/production/JavaSample/part1challenge/Algorithm2225_2.class
 create mode 100644 src/part1challenge/Algorithm2225_2.java

주의할 것은 위 예시에서 이메일은 반드시 괄호 안에 넣어야 한다는 것이다.

 

5. rebase가 잘 됬다면

$ git rebase --continue


warning: git rebase --preserve-merges is deprecated. Use --rebase-merges instead.
Stopped at 7c79e74... 프로그래머스 : 42576
You can amend the commit now, with

	git commit --amend

Once you are satisfied with your changes, run

	git rebase --continue

 

6. 우리는 여러개를 edit 했다.

4번과 5번을 반복적으로 수행한다.

끝이나면 아래와 같은 메세지가 보일 것이다.

Successfully rebased and updated refs/heads/master.

 

7. 마무리

git이니깐 push를 해야한다.

주의할 점은 강제로 push를 해야해서 브랜치 앞에 플러스(+)를 넣어야 한다.

$ git push origin +master

 

자... 이제 잔디를 보러갈까??

새싹수준의 잔디가 최근 3주사이에 존재했음을 확인할 수 있다.

 

728x90
반응형