에러를 해결하고 추가적으로 stash를 학습하도록 하겠습니다.
깃 사용 중 에러가 발생했습니다. 상황은 이렇습니다.
로컬에서 작업 중인 파일 또는 새롭게 생성한 파일들이 존재합니다.
그리고 깃헙으로부터 코드를 pull을 진행했는데 다음과 같은 에러가 발생했어요.
error: The following untracked working tree files would be overwritten by merge:
기존에 작업 한 파일들이 존재해서 pull이 안되었습니다. 기존 작업한 파일들을 저장하고 pull을 받아오고 싶습니다.
다음과 같은 방법으로 해결하겠습니다.
기존 작업한 파일들을 깃에서 트래킹 할 수 있도록 add 명령어를 실행해주세요.
add 명령어를 수행했다면 stash 명령어를 통해서 현재 작업을 저장해주세요.
다음으로 pull 명령어를 수행해주면 정상적으로 수행이 될 것입니다.
git add *
git stash
git pull
stash 명령어를 통해서 pull 이전의 작업을 저장했기 때문에 다시 불러올 수 있도 있습니다.
에러도 해결한김에 stash 명령어도 학습하겠습니다.
1. git stash <- 작업 저장
git에서 트래킹이 되는 파일들 중 저장된 파일들 임시 저장소에 저장합니다.
우리는 pull 전에 변경한 작업에 대해서 임시로 저장했습니다.
2. git stash list <- stash 리스트 확인
현재 stash에 저장된 리스트를 확인할 수 있습니다.
3. git stash apply <- 리스트 맨 위에 있는 리스트 갖고 오기
특정 stash를 불러오길 원할 경우에는 stash를 명시해주세요 e.g) git stash apply stash@{4}
stash apply 명령어를 통해서 이전 파일들을 불러왔는데 conflict가 발생을 했습니다. 이전 로컬에서 한 작업과 pull 파일들이 충돌이 일어났습니다. git status 명령어를 통해서 현재 상태를 보겠습니다.
새로운 파일 하나와, 머지가 안된 파일들이 있습니다. 에디터 툴을 이용해서 파일을 열어보면 아래의 모습이었습니다.
현재 변경과 stashed 된 파일들이 충돌이 일어난 모습인데요.
이제는 필요로 한 부분만 남겨주시고 직접 소스 코드를 정리하시면 완료 됩니다 :)
'Programming > Git, Mercurial' 카테고리의 다른 글
[git] 깃 마스터와 다른 브랜치(최신화) 합치기 (rebase 사용법) (0) | 2020.03.24 |
---|---|
[Mercurial] 머큐리얼 상용-로컬 코드 합치는 법 (pull, merge 사용법) (0) | 2020.02.28 |
[Git] git 브랜치 생성, 리스트 출력, 변경, 원격 브랜치 삭제 (0) | 2019.09.26 |
mercurial 명령어 (0) | 2019.04.20 |
[Git] 현재 작업 무시하고 최신 커밋 받기 (0) | 2019.04.04 |