Git & Github

[Git] 잔디밭이 안심어진다 전에 작업한건 어떻게 반영하지

heeney 2023. 9. 25. 06:36
728x90
⚠️주의⚠️ 잔디밭은 전혀 어디에도 이득은 없으나 그저 제 자기만족과 의문으로 시작된 게시글임을 밝힙니다 (괜히 찔려서 스스로 강조해봅니다)

분명 작업했는데 잔디엔 흔적이 없다.. 왤까.. 이젠 잔디에 별 감흥이 없는 나지만 그래도 궁금하다 씨앗을 심었으니 푸르딩딩하게 반영 하고싶다!

이유부터 설명하자면 Author가 제대로 설정되어 있지 않아서 그렇다.

github > settings > emails에 설정한 이메일 정보와 git에서 설정한 내 정보가 동일해야 한다.

git config --list

확인해봤을 때 동일하게 설정이 되어있지 않을 가능성이 높다. user.name, user.email을 github과 동일하게 설정해주어야 한다.

user.name의 경우 무엇을 말하는가?

바로 요것이다.

그럼 이제 일치시키자

git config user.email "이메일"

이름도 동일하지 않은 경우가 있으니 user.name으로 함께 설정해주면 된다.

그런데, 특정 레포지토리 뿐만 아니라 local 환경에 전역으로 설정하고 싶다면?

git config --global user.email "이메일"

 

이전 커밋 작업물들은 어떻게 연결할까?

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

우선 연결할 커밋을 확인한다.

그런데 저 format은 정말 다 처음봐서 찾아봤다..

git log는 log 확인하는 우리가 항상 자주 사용하는 부분이고, --pretty=format: log를 어떻게 출력할지 정의할 수 있다.
뒤에 붙는건 옵션들이라서 설정할 수 있다.

  • %h: 짧은 길이의 커밋 해시코드
  • %an: 작성자 이름
  • %ar: 작성자의 상대적인 날짜
  • %s: 제목 및 요약

이 설정을 바탕으로 log의 정보가 다음과 같이 나온다.

59887f4 - KH2Wone, 2 days ago : Add: bmi 마크업
fcfae72 - KH2Wone, 5 days ago : Add: 메인 페이지 화면 기초 구현

깔-꼼하게 볼 수 있다!

git의 링크를 참조!

 

그중 연결할 해시코드를 골라 rebase를 해준다.

git rebase -i -r 해시코드

구글링하면 -r 대신 -p로 설명되어 있는 경우가 있지만 그건 더이상 지원하지 않는다. 그래서 에러 발생한다.

에러발생 ⛔️ : -p (--perserve-merges) 대신에 요걸 사용하십쇼
fatal: --preserve-merges was replaced by --rebase-merges
Note: Your `pull.rebase` configuration may also be set to 'preserve',
which is no longer supported; use 'merges' instead

에러메세지에서 알려준대로 --rebase-merges를 -p 대신 입력하거나, -r을 입력해주면 된다.

git rebase -i -r 해시코드

pick -> edit

수정할 커밋들 목록이 나오고, pick 대신 edit으로 변경해서 :wq 저장!

author 변경해주기

git commit --amend --author="이름 <이메일>"

continue

git rebase --continue

2개 이상일 경우 위에 순서를 계속 반복해주면 마지막에 Successfully rebased and updated refs/heads/main 이라고 알려준다.

push

git push -f origin main

branch에 강제 push까지 하면 끝이다.

git push origin +main 플러스를 붙여주면 강제 push랑 동일하다.

 

 

728x90