git은 변경된 변경만 추가하고 추적되지 않은 파일은 무시합니다.
"git status"를 실행했는데, 아래는 "commit을 위해 스테이징되지 않은 변경"이라는 제목 아래에 수정된 파일입니다.또한 무시해야 할 추적되지 않은 파일도 몇 개 나열되었습니다(이 디렉토리에 ".gitignore" 파일이 있습니다).
수정된 파일을 스테이징에 저장하여 커밋할 수 있도록 합니다."git add"를 실행하면 수정된 파일과 무시할 파일이 스테이징에 추가되었습니다.
아래 git 상태가 표시된 경우 수정된 파일만 추가하고 추적되지 않은 파일을 무시하려면 어떻게 해야 합니까?
또, 「.gitignore」파일은 정상적으로 동작하고 있습니까?
$ git status
# On branch addLocation
# Changes not staged for commit:
# (use "git add <file>..." to update what will be committed)
# (use "git checkout -- <file>..." to discard changes in working directory)
#
# modified: someProject/path/domain/viewer/LocationDO.java
# modified: someProject/path/service/ld/LdService.java
# modified: someProject/path/service/ld/LdServiceImpl.java
# modified: someProject/path/web/jsf/viewer/LocationFormAction.java
# modified: someProject/war/WEB-INF/classes/message/viewer/viewer.properties
# modified: someProject/war/page/viewer/searchForm.xhtml
#
# Untracked files:
# (use "git add <file>..." to include in what will be committed)
#
# .metadata/
# someProject/build/
no changes added to commit (use "git add" and/or "git commit -a")
이상적으로는.gitignore
추적되지 않은(무시된) 파일이 상태에 표시되지 않도록 해야 합니다.git add
기타입니다. 그래서 저는 당신에게 수정해 달라고 부탁하고 싶습니다..gitignore
할수있습니다git add -u
수정 및 삭제된 파일을 준비합니다.
할 수도 있습니다.git commit -a
수정 및 삭제된 파일만 커밋합니다.
2.0 이전 버전의 Git을 가지고 있고 사용 중인 경우git add .
, 를 사용해야 합니다.git add -u .
('와 ''git add .
의 git add -A
차이' 참조).
이 방법은 효과가 있었습니다.
#!/bin/bash
git add `git status | grep modified | sed 's/\(.*modified:\s*\)//'`
또는 더 나은 방법:
$ git ls-files --modified | xargs git add
수정 및 삭제된 파일을 준비하려면:
git add -u
어디에-u
의 줄임말이다--update
.
git commit -a -m "message"
a : 현재 변경 또는 삭제된 모든 파일이 이 커밋에 포함됩니다.단, 추적되지 않은(새) 파일은 포함되지 않습니다.
-m : 커밋 메시지를 설정합니다.
파일 목록을 먼저 보기 위해 이 작업을 수행했습니다.
git status | grep "modified:" | awk '{print "git add " $2}' > file.sh
cat ./file.sh
실행:
chmod a+x file.sh
./file.sh
편집: (댓글 참조)이것은, 1개의 스텝으로 실현할 수 있습니다.
git status | grep "modified:" | awk '{print $2}' | xargs git add && git status
당신은 현재 당신의 것이 무엇인지 말하지 않았다..gitignore
단,.gitignore
root 디렉토리에 다음 내용을 포함하면 문제가 해결됩니다.
.metadata
build
수정된 파일을 스테이징에 저장하여 커밋할 수 있도록 합니다.
TL;DR : 시작
인터랙티브 모드 사용(git add -i
업데이트(유형)를 선택합니다.2
또는u
에What now> prompt
, 모두 선택(유형)를 선택합니다.*
에Update>>
프롬프트, 인터랙티브모드 종료(타입)7
또는q
에What now> prompt
) .
TL;DR : 종료
환자 수가 많은 경우:---
순서 1
인터랙티브 모드를 사용할 수 있습니다.
git add --interactive
또는 단수 형태,
git add -i
이렇게 하면 수정된 모든 파일의 목록과 상태 및 다음과 같은 여러 명령 옵션을 사용할 수 있습니다.
staged unstaged path
1: unchanged +17/-0 package-lock.json
2: unchanged +2/-0 package.json
3: unchanged +2/-28 src/App.js
4: unchanged +7/-6 src/App.test.js
*** Commands ***
1: status 2: update 3: revert 4: add untracked
5: patch 6: diff 7: quit 8: help
What now>
순서 2
이 경우 u 또는 2를 입력합니다.What now>
,
What now>u
아래로 내려가면
staged unstaged path
1: unchanged +17/-0 package-lock.json
2: unchanged +2/-0 package.json
3: unchanged +2/-28 src/App.js
4: unchanged +7/-6 src/App.test.js
Update>> *
순서 3
에서Update>>
, " " "*
영역에 번호를 추가할 수 ).
Update>> *
하려면 , 「스테이징 영역」을 입력합니다.1
★★★★★★★★★★★★★★★★★」s
What now>
)q
★★★★★★★★★★★★★★★★★」7
의 평 the the the the the the the the 를 실행하다git status
명령어)
What now> 1
상태를 확인할 수 있습니다.
staged unstaged path
1: +17/-0 nothing package-lock.json
2: +2/-0 nothing package.json
3: +2/-28 nothing src/App.js
4: +7/-6 nothing src/App.test.js
여기서, 미스테이지 컬럼에는, 리스트의 모든 파일에 대해서 「nothing」이라고 하는 텍스트가 표시되고 있는 것을 알 수 있습니다.
추적되지 않은 파일을 무시하는 것에 대한 질문의 두 번째 부분은 이 SO 답변이 많은 도움이 될 것이라고 생각합니다.
이것이 기능인지 버그인지는 잘 모르겠지만, 다음과 같이 동작했습니다.
git commit '' -m "Message"
빈 파일 목록 '을 확인합니다.Git은 이것을 스테이징되지 않은 모든 수정된 추적 파일을 커밋하고 추적되지 않은 파일을 무시하도록 해석합니다.
commit - am "여기서 당신의 메시지" 이것은 나에게 효과가 있었다.
언급URL : https://stackoverflow.com/questions/7124726/git-add-only-modified-changes-and-ignore-untracked-files
'programing' 카테고리의 다른 글
Bash에서 명령줄 인수를 변경하려면 어떻게 해야 합니까? (0) | 2023.04.11 |
---|---|
Javascript 내보내기 CSV 인코딩 utf-8 문제 (0) | 2023.04.11 |
HTML Anchor를 'name'으로 만들어야 하나요, 아니면 'id'로 만들어야 합니까? (0) | 2023.04.11 |
Excel VBA를 사용하여 값이 배열에 있는지 확인합니다. (0) | 2023.04.11 |
WSL(Bash on Windows) 루트 파일 시스템을 다른 하드 드라이브로 이동하시겠습니까? (0) | 2023.04.11 |