특정 파일 만 숨기는 방법?
나는 변화를 막았다. 이제 숨김 파일에서 일부 파일 만 해제하고 싶습니다. 어떻게해야합니까?
아래 에서 언급 하고 " git stash에서 단일 파일 (또는 파일 변경)을 어떻게 추출합니까? "에 자세히 설명되어있는 것처럼 특정 파일을 사용 git checkout하거나 git show복원 할 수 있습니다 .
git checkout stash@{0} -- <filename>
즉 않습니다 덮어 쓰기 filename : 메이크업 확실히 당신은 로컬 수정을하지 않았거나 병합 할 수 있습니다 대신 은닉 파일을 .
( Jaime M.의 설명 에 따르면 특수 문자를 이스케이프 해야하는 tcsh와 같은 특정 쉘의 경우 구문은 다음과 같습니다. )git checkout 'stash@{0}' -- <filename>
또는 다른 파일 이름으로 저장하려면 :
git show stash@{0}:<full filename> > <newfile>
(여기서는
<full filename>프로젝트의 최상위 디렉토리를 기준으로 한 파일의 전체 경로 이름입니다 (생각 :)stash@{0}.
해당 파일에서 적용 할 변경 사항을 수동으로 선택하려는 경우 :
git difftool stash@{0}..HEAD -- <filename>
"
git checkout stash@{0} -- <filename>"는 숨김이 수행 된 시점의 파일 버전을 복원하는 것처럼 보입니다. 해당 파일에 대한 숨김 변경 사항은 적용 되지 않습니다 .
후자를하려면 :
git diff stash@{0}^1 stash@{0} -- <filename> | git apply
(같은 주석 에 의해 peterflynn , 당신은해야 할 수도 있습니다 | git apply -p1(하나를 제거, 어떤 경우에는 p1) 전통은 diff 경로에서 선도적 인 슬래시)
주석이 달린 "unstash"( git stash pop) :
- 색인에 유지하려는 것을 추가하십시오 (
git add). - 나머지를 숨기십시오 :
git stash --keep-index
마지막 요점은 다른 파일을 숨기면서 파일을 유지할 수있게하는 것입니다.
" 변경된 여러 파일 중 하나의 파일 만 숨기는 방법 "에 설명되어 있습니다.
git checkout stash@{N} <File(s)/Folder(s) path>
예 : 마지막 숨김에서 ./test.c 파일 및 ./include 폴더 만 복원하려면
git checkout stash@{0} ./test.c ./include
VonC의 대답은 아마도 당신이 원하는 것이라고 생각하지만 선택적인 "git apply"를 수행하는 방법이 있습니다.
git show stash@{0}:MyFile.txt > MyFile.txt
먼저 모든 숨김을 나열하십시오.
git stash list
↓
stash@{0}: WIP on Produktkonfigurator: 132c06a5 Cursor bei glyphicon plus und close zu zeigende Hand ändern
stash@{1}: WIP on Produktkonfigurator: 132c06a5 Cursor bei glyphicon plus und close zu zeigende Hand ändern
stash@{2}: WIP on master: 7e450c81 Merge branch 'Offlineseite'
그런 다음 숨김에있는 파일을 표시하십시오 (숨김 1을 선택하십시오).
git stash show 1 --name-only
//Hint: you can also write
//git stash show stash@{1} --name-only
↓
ajax/product.php
ajax/productPrice.php
errors/Company/js/offlineMain.phtml
errors/Company/mage.php
errors/Company/page.phtml
js/konfigurator/konfigurator.js
그런 다음 원하는 파일을 적용하십시오.
git checkout stash@{1} -- <filename>
또는 전체 폴더 :
git checkout stash@{1} /errors
없이도 작동 --하지만 사용하는 것이 좋습니다. 이 게시물을 참조하십시오 .
또한 옵션 해석을 중지하고 다음의 모든 인수를 문자 그대로 처리하기위한 신호로 이중 하이픈을 인식하는 것이 일반적입니다.
당신이 git stash pop(충돌하지 않고) 적용되면 숨김을 제거합니다. 그러나 git stash apply패치를 숨김 목록에서 제거하지 않고 적용합니다. 그런 다음 원치 않는 변경 사항을 되돌릴 수 있습니다.git checkout -- files...
한 가지 더 방법 :
git diff stash@{N}^! -- path/to/file1 path/to/file2 | git apply -R
Windows 사용자의 경우 중괄호는 PowerShell에서 특별한 의미를 갖습니다. 작은 따옴표로 묶거나 백틱으로 이스케이프 처리 할 수 있습니다. 예를 들면 다음과 같습니다.
git checkout 'stash@{0}' YourFile
그렇지 않으면 오류가 발생할 수 있습니다.
Unknown switch 'e'
참고 URL : https://stackoverflow.com/questions/15264553/how-to-unstash-only-certain-files
'development' 카테고리의 다른 글
| 두 날짜를 비교하는 방법? (0) | 2020.03.03 |
|---|---|
| Tomcat 7에서 war 파일을 배포하는 방법 (0) | 2020.03.03 |
| 경로가 파일인지 디렉토리인지 Node.js 확인 (0) | 2020.03.03 |
| C ++에서 'printf'와 'cout' (0) | 2020.03.03 |
| 2 개의 GPS 좌표 사이의 거리 계산 (0) | 2020.03.03 |