여러 작업자와 각 로컬 브랜치를 따서 작업하고 master/stagin/dev 인 브랜치에 최종 소스 커밋을 하게 되는데,
내가 작업중인 브랜치는 master/stagin/dev과 다르게 최신화나 커밋이 더뎌 push를 하거나, 다른브랜치로 checkout하게 되면 에러가 발생하게 된다.
이거를 시도 하다가 작업한거 다 날려보고.. 뻘짓을 오지게 했다.
방법
1. 최신화 되어있는 브랜치로 넘어오기
git checkout [base브랜치] -> 항상 최신화 되어있는 브랜치로 넘어가기
git fetch -> 현재 브랜치에서 최신화 하기
git pull origin [base브랜치] -> FETCH_HEAD 에 [base브랜치]명으로 담기
2. 적용할 대상 브랜치로 넘어가기
git checkout [적용할브랜치] -> 최신화할 브랜치로 넘어가기
git stash -> [적용할브랜치]에서 현재 작업한 내용 저장
git reset --hard origin/[base브랜치] -> [base브랜치] 상태로 덮기
git stash apply -> stash로 저장된 [적용할브랜치]의 내용을 apply로 머지
git commit -am "stash 목록저장용" -> 여러사람이 작업하다보니 한파일에 겹칠수도 있어 진행
- git reset --hard origin/브랜치 이거슨.. 필히 조심해야한다..
앞서 git stash / git stash save 를 하지 않은채 하게 된다면.. 내가 작업한 내용들 다 날리게 되는 끔찍한 상황이.......
- git stash apply 는 git stash pop 을 써도 되지않나 해서 사용해봤는데.. 겹치는 부분은 기존꺼랑 새로운거랑 둘다 날라가버리거나 기존거만 남거나 해서 안전하게 apply로 머지할 내용 확인하고 머지하는게 나은거 같다.
- git commit -am "stash 목록저장용"를 하지 않고 git pull을 해보면,
error: Pulling is not possible because you have unmerged files.
에러를 뱉어내는데, git commit -am를 진행하고 다시 git pull을 해보면 정상 처리 된다.
3. 적용할 대상 브랜치에서 작업한거 올리기
git add .
git commit -m "작업내용"
git push
728x90
'Git' 카테고리의 다른 글
[git] 브랜치 간 특정 파일 머지 하기 (0) | 2023.01.23 |
---|---|
[git] remote branch 가져오기 (0) | 2022.03.11 |
[error] Pulling is not possible because you have unmerged files. (0) | 2021.08.26 |
[error] The project you were looking for could not be found or you don't have permission to view it. (0) | 2021.08.07 |
[error]This is probably not a problem with npm. There is likely additional logging output above. (0) | 2021.03.08 |