prosource

Git의 작업 디렉터리에 변경 사항을 보관하는 동안 변경 사항을 저장합니다.

probook 2023. 7. 2. 20:49
반응형

Git의 작업 디렉터리에 변경 사항을 보관하는 동안 변경 사항을 저장합니다.

있습니까?git stash변경사항을 스테이징하고 작업 디렉토리에 보관하는 명령어?그래서 기본적으로git stash; git stash apply한 걸음에?

이를 위한 또 다른 방법은 유지할 변경사항을 준비한 다음 모든 내용을 저장하는 것입니다.--keep-index:

$ git add modified-file.txt
$ git stash push --keep-index

위의 명령은 모든 것을 저장하지만 작업 디렉토리에 준비된 파일은 그대로 남습니다.

git-scm에 대한 공식 리눅스 커널 Git 문서에서:

만약에--keep-index옵션을 사용하면 인덱스에 이미 추가된 모든 변경 사항이 그대로 유지됩니다.

git stash그리고 나서.git stash apply(git stash && git stash apply파일을 저장하고 바로 다음에 저장을 적용합니다.그래서 결국 당신은 재고와 작업실에서 당신의 변화를 갖게 될 것입니다.

하나로 묶으려면 별칭을 만들 수 있습니다.그냥 이런 것을.~/.gitconfig:

[alias]
    sta = "!git stash && git stash apply"

이 방법의 단점은 모든 파일이 저장되고 다시 생성된다는 것입니다.이는 문제의 파일에 대한 타임스탬프가 변경된다는 것을 의미합니다. (파일을 열기 전에 파일을 저장하려고 하면 Emacs에서 불만을 표시합니다.)git sta사용 중인 경우 불필요한 재구축이 발생할 수 있습니다.make또는 친구.)

사용할 수 있습니다.git stash create스택 커밋을 만든 다음 다음 다음을 사용하여 스택에 저장합니다.git stash store:

git stash store $(git stash create) -m "Stash commit message"

이를 Git 별칭에 저장하여 보다 편리하게 사용할 수 있습니다.

git config --global alias.stash-keep '!git stash store $(git stash create)'

git stash-keep -m "Stash commit message"

이것이 모든 것을 하는 것은 아닙니다.git stash push예를 들어, 지점 이름을 커밋에 추가하지 않습니다. 예: "stash@{0}: On myBranch: Stash commit message".

실용적이지 않을 수도 있는 답변의 작은 향상.

$ git add modified-file.txt  
(OR $ git add .    ---- for all modified file)
$ git stash save --keep-index "Your Comment"

당신에게 도움이 될 수 있는 속임수가 있습니다. 비축의 것이 아니라 FWIW:

git add -A
git commit -m "this is what's called stashing"       (create new stash commit)
git tag stash                               (mark the commit with 'stash' tag)
git reset --soft HEAD~        (Now go back to where you've left with your working dir and staged status intact)

이제 태그가 지정된 재고를 마음대로 사용할 수 있습니다. 다음 작업을 수행할 수 없습니다.git stash pop어쨌든 패치를 만들거나 파일을 재설정하는 등의 작업을 할 수 있지만 작업 중인 dir 파일도 그대로 유지됩니다.

언급URL : https://stackoverflow.com/questions/17843384/stash-changes-while-keeping-the-changes-in-the-working-directory-in-git

반응형