[Git] 어라? Author가 내가 쓰던게 아니네? 오마이잔디...
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
반응형