intit, stash를 적용하지 않고 추적되지 않은 stash 파일을 보여줄 수 있는 방법이 있습니까?
뛰면git stash -u
, 추적되지 않은 파일을 숨겨둘 수 있습니다.그러나 추적되지 않은 파일은 다음과 같이 표시되지 않습니다.git stash show stash@{0}
. 스테이징을 적용하지 않고 추적되지 않은 스테이징 파일을 보여줄 수 있는 방법이 있습니까?
추적되지 않은 파일은 스테이시 커밋의 세번째 부모에 저장됩니다.(실제로 문서화된 것은 아니지만 -u 기능을 도입한 커밋 787513...과 문구에 대한 나머지 문서화 방식을 보면 꽤 분명합니다.아니면 그냥 하는 것만으로git log --graph 'stash@{0}'
)
다음을 통해 스테이시의 "추적되지 않은" 부분만 볼 수 있습니다.
git show 'stash@{0}^3'
또는 "추적되지 않은" 트리 자체는 다음을 통해 다음과 같습니다.
git show 'stash@{0}^3:'
또는 트리에 있는 특정 "추적되지 않은" 파일은 다음을 통해 다음과 같습니다.
git show 'stash@{0}^3:<path/to/file>'
안타깝게도 모든 staged+unstaged+unstaged+untracked와 "현재" 상태 간의 차이점을 요약할 수 있는 좋은 방법은 없습니다.git show 'stash@{0}'
추적되지 않은 파일을 포함하도록 만들 수 없습니다.이는 stash commit 자체의 트리 개체, 즉stash@{0}:
, 는 세 번째 "사용되지 않은" 부모에서 변경된 내용을 포함하지 않습니다.
이는 스테이시를 다시 적용하는 방식 때문입니다. 추적된 파일은 패치로 쉽게 적용할 수 있는 반면 추적되지 않은 파일은 이론적으로 "전체 파일"로만 적용할 수 있습니다.
다음 명령을 사용하여 모든 스테이시 커밋을 나열할 수 있습니다.
git rev-list -g stash
스테이시는 HEAD, 인덱스의 3방향 병합 커밋, 미추적 파일의 부모 없는 "루트" 커밋으로 표현되므로, 미추적 파일 스테이시는 위의 출력을 다음과 같이 파이핑하여 나열할 수 있습니다.
git rev-list -g stash | git rev-list --stdin --max-parents=0
위의 유용한 응용 프로그램:
추적되지 않고 숨겨진 파일만 표시
git rev-list -g stash | git rev-list --stdin --max-parents=0 | xargs git show --stat
물론입니다. 제거합니다.--stat
파일 내용을 확인합니다.
특정 파일 찾기
git rev-list -g stash | xargs -n1 git ls-tree -r | sort -u | grep <pattern>
추적되지 않은 파일
git rev-list -g stash | git rev-list --stdin --max-parents=0 | xargs git grep <pattern>
모든 스테이시의 모든 내용 나열
git rev-list -g stash | git rev-list --stdin | xargs git show --stat
추적되지 않은 파일을 스테이시에 나열하려면:
git ls-tree -r stash@{0}^3 --name-only
(내용이 있는) 추적되지 않은 모든 파일의 완전한 차이를 표시하려면:
git show stash@{0}^3
이러한 명령은 마지막(가장 최근) 스테이시를 읽습니다.이전의 스태시의 경우 "stash@" 뒤의 숫자를 늘립니다. 예를 들어,stash@{2}
지난 번의 비밀에서 두 번째로
이것이 효과가 있는 이유는git stash
를 참조할 수 있는 각 스테이시에 대한 병합 커밋을 만듭니다.stash@{0}
,stash@{1}
등. 이 커밋의 첫 번째 부모는 스테이시 시점의 HEAD이고, 두 번째 부모는 추적된 파일에 대한 변경 사항을 포함하며, 세 번째(존재하지 않을 수도 있음)는 추적되지 않은 파일에 대한 변경 사항을 포함합니다.
이것은 "토론"의 맨페이지에서 부분적으로 설명됩니다.
되지 않은 은 과 되지 되지 되지 되지
git stash show stash@{0}
.
참고: Git 2.11(2016년 4분기, is OP 이후 4년) 이후로 인덱스만으로 stash를 참조할 수 있습니다.
git stash show 0
는으로 인해 버그가 했습니다.git stash
C로 다시 작성 중, Git 2.22 (2019년 2분기)로 수정됨
스테이징을 적용하지 않고 추적되지 않은 스테이징 파일을 보여줄 수 있는 방법이 있습니까?
네, Git 2.32(2021년 2분기, OP 이후 9년)가 있는 이유는 무엇입니까?
git stash show --include-untracked
# or
git config --global stash.showIncludeUntracked true
git stash show
"git stash show
추적되지 않은 부분을 선택적으로 보여주는 법을git stash show
(man) 배웠습니다.
Denton Liu()Denton-L
의 d3c7bf7(2021년 3월 3일) 커밋 0af760e를 참조하십시오.
(주니오 C 하마노 ---- 커밋 f5c73f6, 2021년 3월 22일)
stash show
stash show
가르치다--include-untracked
그리고.--only-untracked
사인 오프 바이: Denton Liu
를 통해 추적되지 않은 파일을 사용하여 스테이시 항목을 만들 수 있습니다.
그러나 추적되지 않은 파일은 stash 항목 자체가 아닌 stash 항목의 세 번째 부모에 저장되므로 실행 중에 diff의 일부로 추적되지 않은 파일이 포함되지 않습니다.
와 함께
--include-untracked
사항이 있는 됩니다. stash base와 working tree 에 수정 사항이 있는 경로는 가 의 와 에 는 이 됩니다 와 되며 에 됩니다 이 와 에 되지 .임시 보관 항목에서 추적되지 않은 중복 파일이 추적된 파일을 마스킹하는 잘못된 형식의 보관 항목을 수동으로 만들 수 있습니다.
우리는 관습을 통해 그 경우를 감지하고 오류를 범합니다.unpack_trees()
백:stash_worktree_untracked_merge()
.또한, , 을 .
--only-untracked
entry.stash지은만는hn하는 옵션의 추적되지 하는 option
이와 유사하지만 사용자가 기본 구현에 대해 생각할 필요가 없도록 편리한 추상화를 제공하는 것이 좋습니다.
git stash
이제 맨 페이지에 포함됩니다.
'git stash' show [-u|--include-untracked|--only-untracked] [<diff-options>] [<stash>]
git stash
이제 맨 페이지에 포함됩니다.
--no-include-untracked
할 할
push
그리고.save
되지 않은 모든 어,되지,도,든으로 됩니다.git clean
.할 할
show
명령, diff의 일부로 stash 항목에 있는 추적되지 않은 파일을 표시합니다.
--only-untracked
은 은 만 합니다 유효합니다.
show
지휘.
diff의 stash의 되지 않은 합니다.
다음과 같은 새로운 옵션을 사용할 수 있는 구성이 있습니다.
stash show
stash show
배우다stash.showIncludeUntracked
사인 오프 바이: Denton Liu
이전 커밋이 가르칩니다.
Δ Δ Δ Δ Δ Δ Δ Δ Δ 를 활성화할 수 있는 것이 수 .--include-untracked
행동.
티치 더stash.showIncludeUntracked
이로을할수록는션이가과g는g션록hnrnrasoosso가수과할한stash.showPatch
.
git config
이제 맨 페이지에 포함됩니다.
stash.showIncludeUntracked
true로 , ② true ③ ④,
git stash show
옵션이 없는 명령은 stash 항목의 추적되지 않은 파일을 표시합니다.기본값은 false입니다.
git stash
이제 맨 페이지에 포함됩니다.
을 사용할 수 .
stash.showIncludeUntracked
,stash.showStat
,그리고.stash.showPatch
기본 동작을 변경하는 config variables.
Git 2.32(2021년 2분기)를 통해 이러한 옵션이 미추적 부분을 기록하지 않는 스테이시 항목에서 사용되었을 때 장애가 발생한 스테이시 segf의 미추적 부분을 중심으로 최근 옵션을 처리할 코드가 "git stash show
(man)에 추가되었습니다.
Denton Liu()Denton-L
의 커밋 1ff595d, 커밋 aa2b05d(2021년 5월 12일) 참조.
(주니오 C 하마노 ---- 2021년 5월 16일 a8a2491로 합병)
stash show
stash show
잘못을 고치다--{include,only}-untracked
사인 오프 바이: Denton Liu
추적되지 않은 항목이 포함되지 않은 스테이시에서 또는 실행될 때 segfault가 발생합니다.
이는 추적되지 않은 항목이 실제로 존재하는지 확인하지 않고 무작정 참조를 취소하려고 하기 때문에 발생합니다.
추적되지 않은 항목이 있는지 확인한 후 실제로 참조를 취소합니다.
그리고:
Liu Denton-L
Denton()의 af5cd44(2021년 5월 21일)를 참조하십시오.
(2021년 5월 22일 주니오 C 하마노 ---- 커밋 378c7c6에 합병)
stash show
stash show
쓰임새stash.showIncludeUntracked
할 때에도diff
지정됨사인 오프 바이: Denton Liu
diff가 표시되는 방법과 관련된 옵션이 제공되는 경우 명령은
stash.showIncludeUntracked
기본적으로 추적되지 않은 파일을 표시하지 않도록 설정합니다.
되지 않은 이지 않은 입니다.diff의과지은을지가로로다는지은다지은는s로의ef로settdfret가frhelt사용하다
stash.showIncludeUntracked
다른 선택권이 주어졌을 때에도 말입니다.
물론 명령줄 옵션을 통해 이 옵션을 재정의할 수도 있습니다.diff 옵션이 주어졌을 때 무시될 구성 변수를 명시적으로 알려주도록 설명서를 업데이트합니다.
git config
이제 맨 페이지에 포함됩니다.
이 설정이 다음과 같다면
true
, , , , , , , , , , , , , , , , , , .git stash show
명령어는 스테이시 항목의 추적되지 않은 파일을 표시합니다.은 :
false
.
git stash
이제 맨 페이지에 포함됩니다.
안되면
<diff-option>
제공되며, 가되며,본은에 의해 됩니다.stash.showStat
,그리고.stash.showPatch
config 변수.사용할 수도 있습니다.
stash.showIncludeUntracked
여부를 정하다--include-untracked
는 기본적으로 활성화됩니다.
스테이시에 있는 모든 파일(추적되지 않은 파일과 추적되지 않은 파일 모두)을 보기 위해 다음 별칭을 구성에 추가했습니다.
showstash = "!if test -z $1; then set -- 0; fi; git show --stat stash@{$1} && git show --stat stash@{$1}^3 2>/dev/null || echo No untracked files -"
보려는 스테이시에 대해 단일 인수가 필요합니다.두 개의 연속 목록으로 표시됩니다.
if...fi
섹션은 통과되지 않은 경우 bash 인수 $1을 0으로 변경합니다.
해결 방법:파일을 스테이징하기 전에 파일을 스테이징하면git stash show -p
기대한 대로의 일
git add .
git stash save
참고: 이렇게 하면 상호작용 부분을 추가할 수 있습니다. 여기 방법이 있습니다.
주의:이전에 준비한 작업이 없는지 확인하십시오. 그렇지 않으면 작업을 구별할 수 없습니다.
이것은 유용할지도 모릅니다.
git가 2.32 이하인 미추적 파일로 정확한 은닉처를 찾아 적용하는 데 어려움을 겪었습니다.
추적되지 않은 파일과 날짜가 있는 은닉처를 찾기 위해 명령을 사용했습니다.
git rev-list -g stash | git rev-list --stdin --max-parents=0 | xargs git show --stat
다른 명령을 사용하여 특정 날짜가 포함된 정확한 스테이징 위치를 찾기 위해 날짜가 포함된 스테이징 목록을 표시한 후:
git stash list --date=local
그리고 나서 다시 사용합니다.git stash list
stage의 이름을 찾아서 다음과 같이 적용하기 위해git stash apply
.
그것은 저에게 효과가 있었습니다.이것이 다른 누군가에게 효과가 있기를 바랍니다!
언급URL : https://stackoverflow.com/questions/12681529/in-git-is-there-a-way-to-show-untracked-stashed-files-without-applying-the-stas
'source' 카테고리의 다른 글
jQuery - 제출 시 추가 매개 변수 추가(Ajax가 아님) (0) | 2023.09.08 |
---|---|
$(이것).valu가 jquery를 사용하여 span에서 텍스트를 가져오는 작업을 하지 않음 (0) | 2023.09.08 |
중심 HTML 입력 텍스트 필드 자리 표시자 (0) | 2023.09.08 |
스핑크스의 오토독을 사용하여 클래스의 __init__(self) 메서드를 문서화하는 방법은 무엇입니까? (0) | 2023.09.08 |
에서 PowerShell을 실행하고 있습니다.NET 코어 (0) | 2023.09.08 |