특정 파일만 remote의 변경 사항을 로컬에 merge
개발/Git 2025. 2. 3. 12:30 |로컬의 A 파일을 수정 중 (아직 커밋을 할 순 없다)
원격의 A 파일이 수정 됨
이때, A 파일을 merge하기 위해서 로컬에서 작업 중인 많은 소스들을 stash에 담아야 하는데...
merge하고자 하는 파일만 stash 후 merge 진행 방안
로컬의 특정 파일만 stash로 진행
git stash push -m "A.java stash" -- .\src\package\A.java |
-m "message" -> stash 내용을 구분하도록 메시지 추가
-- 파일명 -> 특정 파일만 stash
git stash list |
remote의 최신 변경 사항을 가져오고
git fetch origin |
stash한 파일을 remote 버전으로 덮어쓰고
git checkout origin/develop -- .\src\package\A.java |
원격의 변경된 내용을 확인하고 (출력된 정보가 없으면 변경 사항이 없는 거)
git diff .\src\package\A.java |
stash 파일로 병합 진행을 해야 하는데, pop과 apply의 옵션으로 나누어지고
pop | stash 파일이 삭제가 되고 충돌이 발생할 경우 직접 해결해야 하며 |
apply | stash 상태를 유지하고 |
그래서, 안전하게
git stash apply |
를 선택했는데, 젠장... 충돌!
충돌 해결 방안은 3가지 중 직접 해결하는 방법으로 선택(이 아닌 필수일 듯)
- vs code에서 해당 파일의 충돌 부분이 표시(<<< HEAD, ====, >>> stash)가 되니 원하는 코드로 수정 후 저장
- cli에서 원격 버전으로 덮어쓰기인데, stash 내용을 무시하는 방법 (어휴.. 알아보지도 말자)
- cli에서 stash 변경 내용 유지인데, 로컬 변경 사항을 무시하는 방법 (어휴.. 알아보지도 말자x2)
vs code를 통해서 충돌 해결을 하면, 이 파일은 자동으로 staged changes 영역으로 이동을 하게 되어
아직, 커밋 단계가 아니라서 changes 영역을 내리고자
git restore --source=HEAD --staged .\src\package\A.java |
'개발 > Git' 카테고리의 다른 글
commit & push에 작업 시간을 줄이고, 정신 건강을 챙기고자 (0) | 2025.01.10 |
---|---|
commit & push 이후 오류 발생시 rollback 방법 (0) | 2025.01.08 |
git bash 사용법 (0) | 2024.12.24 |
GitHub 토큰 발급 방 (0) | 2022.10.25 |
java cannot open git-upload-pack (0) | 2022.09.26 |