programing

git은 변경된 변경만 추가하고 추적되지 않은 파일은 무시합니다.

linuxpc 2023. 4. 11. 21:45
반응형

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단,.gitignoreroot 디렉토리에 다음 내용을 포함하면 문제가 해결됩니다.

.metadata
build

수정된 파일을 스테이징에 저장하여 커밋할 수 있도록 합니다.

TL;DR : 시작

인터랙티브 모드 사용(git add -i업데이트(유형)를 선택합니다.2또는uWhat now> prompt, 모두 선택(유형)를 선택합니다.*Update>>프롬프트, 인터랙티브모드 종료(타입)7또는qWhat 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

반응형