commit & push에 작업 시간을 줄이고, 정신 건강을 챙기고자
개발/Git 2025. 1. 10. 20:40 |기존에
git fetch origin branch
를 사용하였으나, 결국 pull 동작이 필요하기에 정신 건강을 위해서
git pull origin branch | |
충돌이 없는 경우 | 충돌이 발생한 경우 |
git pull --rebase origin branch | |
git commit -m "message" | |
git push origin branch | |
충돌이 발생한 경우 | |
원인: 1 git pull 시 원격 레파지토리의 내용을 로컬에 반영하지 못한 경우 1.1 원격 레파지토리의 변경 파일이 stated changes 항목에 없고, changes에만 있어도 발생 1.2 이 경우에도 로컬에 수정된 내용으로 다른 파일인 commit&push에 영향을 받는다 1.3 이로 인하여 병합시 로컬 변경 사항으로 원격의 변경 사항과 충돌이 발생 2 병합 중단(Aborting)으로 현재 작업 상태는 병합이 완료되지 않은 상태로 남는다 3 병합이 완료되지 않은 상태에 comit을 진행하면, 병합 관련 충돌 문제로 인하여 오류가 발생한다 |
|
해결 방안: 1 현재 변경 내용 확인 1.1 git status 1.1.1 충돌인 파일이 unstaged changes인지 staged changes인지 확인 1.1.2 unstaged changes 상태이면 로컬에서 수정된 내용을 먼저 처리 2 로컬 변경 사항 백업 (변경 사항 stash) 2.1 git stash -u 2.1.1 모든 변경 사항들을 stash로 저장하여 병합이 깨끗한 상태로 진행 2.1.2 -u 옵션은untracked 파일도 stash에 포함한다 3 pull 재시도 3.1 git pull origin develop 3.1.1 병합 충돌없이 원격 브랜치와 병합이 이루어 진다 4 stash 적용 4.1 git stash apply 4.1.1 stash에 저장된 변경 사항을 다시 불러오고, 필요하면 병합된 변경 사항과 비교하여 수정한다 |
|
git add <conflicted-file> git rebase --continue |
|
리베이스는 커밋 히스토리를 변경하므로, 강제 푸시가 필요 | |
git push origin branch --force-with-lease |
'개발 > Git' 카테고리의 다른 글
lib/ 파일 Git 추적 정지 (0) | 2025.03.14 |
---|---|
특정 파일만 remote의 변경 사항을 로컬에 merge (0) | 2025.02.03 |
commit & push 이후 오류 발생시 rollback 방법 (0) | 2025.01.08 |
git bash 사용법 (0) | 2024.12.24 |
GitHub 토큰 발급 방 (0) | 2022.10.25 |