새 파일을 포함하려면 'git add --patch'?
내가 실행할 때 git add -p
git가 새로 만든 파일을 선택할 덩어리로 선택하는 방법이 있습니까 ??
따라서라는 새 파일을 foo.java
만든 다음 git add -p를 실행하면 git은 색인에 추가 할 파일의 내용을 선택할 수 없게합니다.
모든 새 파일에 대해이를 수행하려면 다음을 실행할 수 있습니다.
git add -N .
git add -p
자주 사용하려면에 별칭을 만들 수 있습니다 ~/.bashrc
.
alias gapan='git add --intent-to-add . && git add --patch'
주의 : 빈 새 파일과 함께 이것을 사용하면 git은 패치를 할 수 없으며 다음 파일로 건너 뜁니다.
git add -p someNewFile.txt
새 파일 (추적되지 않은 파일)을 시도 할 때 git은 단순히 출력 No changes.
하고 중지합니다. 먼저 새 파일을 추적하겠다고 git에게 알려야했습니다.
git add -N someNewFile.txt
git add -p
그러나 파일이 추적되지 않았기 때문에 분할 할 수없는 하나의 거대한 덩어리로 표시됩니다 (모두 새로운 것이기 때문입니다!). 그래서 덩어리를 더 작은 조각으로 편집해야했습니다. 익숙하지 않은 경우이 참조 를 확인하여 시작하십시오.
업데이트-Hunk 편집 정보 위의 참조가 사라지는 경우에이를 업데이트하고 싶었습니다. 새 파일이 추적되지 않기 때문에 파일의 git add -p
모든 줄이 한 덩어리의 새 줄로 표시됩니다. 그런 다음 해당 덩어리로 무엇을 할 것인지 묻고 다음과 같은 프롬프트를 표시합니다.
Stage this hunk [y,n,q,a,d,/,e,?]?
전체 덩어리를 커밋하고 싶지 않다고 가정하고 (따라서 전체 파일; git add -p
그 경우에 왜 사용하고 싶은지 확실하지 않기 때문에 ) e
편집하고 싶다고 git에게 알리는 옵션 을 지정하고 싶을 것입니다. 덩어리.
덩크를 편집하고 싶다고 git에게 말하면 원하는 편집기로 이동하여 변경할 수 있습니다. 모든 줄은 a로 시작해야하며 +
git은 #
파일 끝에 몇 가지 설명 주석 (으로 시작 )이 있습니다. 파일의 초기 커밋에서 원하지 않는 줄을 삭제하면됩니다. 그런 다음 편집기를 저장하고 종료하십시오.
git의 hunk 옵션에 대한 Git의 설명 :
y - stage this hunk
n - do not stage this hunk
q - quit; do not stage this hunk or any of the remaining ones
a - stage this hunk and all later hunks in the file
d - do not stage this hunk or any of the later hunks in the file
g - select a hunk to go to
/ - search for a hunk matching the given regex
j - leave this hunk undecided, see next undecided hunk
J - leave this hunk undecided, see next hunk
k - leave this hunk undecided, see previous undecided hunk
K - leave this hunk undecided, see previous hunk
s - split the current hunk into smaller hunks
e - manually edit the current hunk
? - print help
git add -p
이미 추적 된 파일에 변경 사항을 추가하는 것입니다.
추가 할 파일을 대화식으로 선택하는 명령은 git add -i
입니다. 예를 들면 :
$ git add -i
*** Commands ***
1: status 2: update 3: revert 4: add untracked
5: patch 6: diff 7: quit 8: help
What now> a
1: another-new.java
2: new.java
Add untracked>> 2
1: another-new.java
* 2: new.java
Add untracked>>
added one path
*** Commands ***
1: status 2: update 3: revert 4: add untracked
5: patch 6: diff 7: quit 8: help
What now> q
Bye.
$ git status
On branch master
Changes to be committed:
(use "git reset HEAD <file>..." to unstage)
new file: new.java
Untracked files:
(use "git add <file>..." to include in what will be committed)
another-new.java
(The real command has colors which I couldn't cut-and-paste here, so it's nicer than it seems)
Actually, the patch command of git add -i
does the same as git add -p
, so the second is a subset of the first (even though I admit I love add -p
and hate add -i
myself!).
There's also a very similar approach making use of the --cached
flag...
1) Turn your unstaged changes into staged, just like your added file.
git add edited-file.txt
git add new-file.txt
git add directory-of-changes/
2) Look at the diff (note: you can include both edits and new files).
git diff --cached
3) Create the patch.
git diff --cached > my_patch_file.patch
참고URL : https://stackoverflow.com/questions/14491727/git-add-patch-to-include-new-files
'Programing' 카테고리의 다른 글
SonarQube에서 프로젝트 삭제 (0) | 2020.09.09 |
---|---|
zsh에서 $ PATH 변수 어설 션을 어디에 배치합니까? (0) | 2020.09.09 |
React.js에서 onSubmit 설정 (0) | 2020.09.09 |
가장 일반적인 Mercurial 명령에 해당하는 Git? (0) | 2020.09.09 |
querySelectorAll을 사용하여 직계 자식 검색 (0) | 2020.09.09 |