git stash 및 git pull


87

나는 Git을 처음 사용하고 EGit eclipse 플러그인을 사용하여 커밋하고 있습니다.

몇 개의 파일을 수정하고 변경 사항을 숨긴 다음 git pull명령 줄에서 모든 최신 커밋을 가져 왔습니다. 그런 다음 Apply stashed changesEGit에서했습니다. 이제 내 변경 사항을 적용하고 숨김 파일의 마지막 커밋에서 가져온 변경 사항이 나왔습니다. 병합 충돌에 대해 묻지 않고 변경 사항을 덮어 쓰고 이전 커밋 변경 사항을 잃어버린 이유를 잘 모르겠습니다.

그 변화를 얻는 방법?


그럴듯하게 들리지 않습니다. 숨김 적용은 충돌하지 않는 변경을 가져 오거나 병합 충돌을 유발합니다. 언급하는 것을 잊은 것 같습니다. 또한 단계를 반복 할 수 있습니다. 대부분의 경우 숨김이 여전히 목록에 있으므로 git stash list표시하는 데 사용 합니다.
kan

답변:


207

작업 복사본에 변경 사항이 있으면 명령 줄에서 다음을 수행하십시오.

git stash 

변경 사항을 숨기고 상태 보고서를 지 웁니다.

git pull

이것은 업스트림 분기에서 변경 사항을 가져옵니다. 보고서에서 빨리 감기라고되어 있는지 확인하십시오. 그렇지 않은 경우 의도하지 않은 병합을 수행 한 것입니다.

git stash pop

이렇게하면 숨김 된 변경 사항이 작업 복사본에 다시 적용되고 충돌이없는 경우 숨김에서 변경 사항이 제거됩니다. 충돌이 발생하면 필요한 경우 다시 시작할 수 있도록 숨겨져 있습니다.

보관함에 무엇이 있는지 확인해야하는 경우

git stash list

@java_newbie, 숨김으로이 작업을 수행하고 no를 당기고 싶다면 방법이 없습니다. 그러나 rebase로 동일한 결과를 얻을 수 있습니다. 'git rebase origin / <upstream branch name>'명령은 동일한 작업을 수행해야합니다.
yilmazhuseyin 2014 년

5
나는 이것이 그것을 할 것이라고 생각한다 :git stash && git pull && git stash pop
Fabrice Kabongo 2015-09-04

@yilmazhuseyin '동일한 결과'란 무엇을 의미합니까? 가능하다면 일화를 줄 수 있습니까? 다음 git rebase origin/master과 같은 결과가 생성 된다는 뜻 git stash; git pull; git stash pop입니까?
nehem

8
Git v2.9.0 이상 버전을 사용하는 경우 git pull --rebase --autostash. 참고
momocow

1
않습니다 --autostash항상 작동? 예를 들어 이미 부분적으로 Git에있는 추적되지 않은 파일이있는 경우?
qräbnö
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.