하나의 파일 만 보관 원합니다. git stash

단일 파일의 변경 사항 만 숨길 수 있기를 원합니다.

git stash save -- just_my_file.txt

위의 방법으로는 작동하지 않습니다. 대안이 있습니까?



답변

나는 stash -p아마도 당신이 원하는 선택 이라고 생각 하지만, 앞으로 더 까다로운 일이 발생할 경우를 대비하여 다음을 기억하십시오.

Stash실제로는 조금 더 복잡한 branch집합에 대한 매우 간단한 대안 입니다. Stash는 빠르게 물건을 옮기는 데 매우 유용하지만 더 많은 두통과 노력없이 지점으로 더 복잡한 것을 수행 할 수 있습니다.

# git checkout -b tmpbranch
# git add the_file
# git commit -m "stashing the_file"
# git checkout master

가서 원하는 것을하고 나중에 간단하게 rebase그리고 / 또는 mergetmpbranch를 실행하십시오. 은닉이 허용하는 것보다 더 신중하게 추적해야 할 때 그렇게 많은 추가 작업 이 아닙니다 .


답변

숨김 변경 사항이있는 메시지를 지정하지 않으려면 파일 이름을 이중 대시 뒤에 전달하십시오.

$ git stash -- filename.ext

추적되지 않은 / 새 파일 인 경우 먼저 준비해야합니다.

그러나이 경우 않는 , 사용하는 메시지를 지정합니다 push.

git stash push -m "describe changes to filename.ext" filename.ext

두 가지 방법 모두 git 버전 2.13 이상에서 작동합니다


답변

git stash -p( 와 유사)을 사용하여 한 줄을 대화식으로 숨길 수 있습니다 git add -p.

파일 이름은 사용하지 않지만 보관 d하려는 파일에 도달 할 때까지 다른 파일을 건너 뛰고 파일의 모든 변경 사항을 숨길 수 있습니다 a.


답변

가장 좋은 방법은이 파일 이외의 모든 것을 준비하고 인덱스를 유지하도록 stash에 지시하여 스테이지되지 않은 파일 git stash save --keep-index을 숨기는 것입니다.

$ git add .
$ git reset thefiletostash
$ git stash save --keep-index

Dan이 지적한 것처럼, thefiletostash숨김 파일로 재설정되는 유일한 파일이지만 다른 파일도 숨겨져 있기 때문에 원하는 파일이 아닙니다.


답변

‘git stash’를 사용할 때마다 실제로 ‘discard changes’를 의미하는 경우 (그리고 실제로 git stash를 사용하여 일시적으로 숨기지 마십시오),이 경우 사용할 수 있습니다

git checkout -- <file>

git stash는 분기 및 작업에 대한 빠르고 간단한 대안입니다.