수정이 없음에도 git status에서 수정함으로 나타난 경우
Windows는 CR
과 LF
를 사용한다. 그러나 Mac 또는 Linux는 LF
만을 사용한다. 이러한 문제가 발생하지 않도록 다음 설정을 해주어야 한다.
git config --global core.autocrlf true
git stash
git stash pop
원격 레포지토리에 push한 Commit 수정하기
최신 commit 수정하기
git commit --amend
n개의 커밋 수정하기
git rebase -i HEAD~n
r e499d89 Delete CNAME
r 0c39034 Better README
git push -f orgin master
PR 수정하기
git add 작업파일
커밋 덮어쓰기
git commit --amend 또는 git rebase -i HEAD~n
git push -f origin master
commit 유저가 잘못된 유저와 연동돼요
git config --global user.email "@email.com"
git config --global user.name "name"
git user.email과 user를 설정한 후에 push한 결과 github에서 내 계정과 연동되지 않고 없는 유저로 인식이 된다. 이러한 경우 Github 계정 설정에서 이메일을 추가함으로서 해당 문제를 해결할 수 있다.
https://github.com/settings/emails 에서 이메일을 추가하면 자동으로 연동이 된다.
원격 저장소 최신 동기화
# 현재 저장소 확인
git remote -v
origin https://github.com/kwx4957/litmus-docs.git (fetch)
origin https://github.com/kwx4957/litmus-docs.git (push)
# 원격 저장소 추가
git remote add upstream https://github.com/litmuschaos/litmus-docs.git
# 원격 저장소 변경사항 확인
git fetch upstream
# 브랜치 변경
git checkout master
# 원격 저장소 변경사항 반영
git merge upstream/master
다른 브랜치 커밋 가져오기
다른 브랜치의 특정 커밋 가져오기
git cherry-pick 57ccc2
여러 개의 커밋
git cherry-pick 1165 57ccc2 f8cc0
커밋 범위 지정
git cherry-pick 57ccc2..f8cc0
충돌난 커밋 해결 후 재진행
git cherry-pick --continue 충돌난 부분을 해결한 후, 실행하면 체리피킹이 마무리된다.
충돌난 커밋 제외, 체리피킹
git cherry-pick --skip
체리피킹 실행 전으로 복구
git cherry-pick --abort
브랜치
브랜치 생성 및 이동
git checkout -b 브랜치명
브랜치 삭제
git branch -D 브랜치명
원격 저장소 확인
git remo
원격 저장소 추가
git remote set-url upstream https://github.com/kwx4957/litmus-e2e.git
원격 저장소 기준 브랜치 초기화
git fetch --all
git reset --hard upstream/master
Rebase를 잘못한 경우, 특정 시점으로 되돌아가기
로컬 작업 로그 확인
git reflog
특점 시점으로 돌아가기
git reset --hard HEAD@{61}
배운점
PR은 원격 브랜치를 기준으로 하나의 기능(목적)에 대해서만 PR을 보낸다.
master 브랜치는 Fork한 저장소를 바라본다. 기능 구현은 별도의 브랜치에서 작업하여 PR을 보낸다.
원격 저장소에서 커밋을 push하기 전에 최대한 커밋을 정리해서 보내자.
https://parksb.github.io/article/28.html
CRLF 개행 문자 차이
Changing a commit msg
PR 수정하기
why are my commits linked to the wroong user
https://mylko72.gitbooks.io/git/content/branch/checkout.html
https://eteo.tistory.com/402
https://hbase.tistory.com/141
https://velog.io/@whoyoung90/TIL-51-git-rebase를-잘못한-경우-되돌아가기
https://velog.io/@ujeongoh/git-upstream-원격-저장소-설정하기
https://docs.github.com/ko/get-started/getting-started-with-git/managing-remote-repositories
https://cometj03.github.io/posts/how-to-split-pull-request/
'Git' 카테고리의 다른 글
Priavete Reposiory 복제하기 (0) | 2024.06.08 |
---|---|
.gitignore is not working (0) | 2023.08.18 |
파일명 또는 폴더명 대소문자를 무시하는 경우 (0) | 2023.08.18 |