“커밋을 위해 준비되지 않은 변경 사항”의 의미


239

파일을 추적하고 싶다면 git add [files you want to track]

왜 메시지를 받았는지 모르겠습니다 Changes not staged for commit.

해당 파일이 연출되지 않은 경우,해야하지 git나를 보여주고 해당 파일이었다 Untracked처럼

여기에 이미지 설명을 입력하십시오

내가했던 모든이의 새로운 기능을 만들 수 있었다 develop지점과에서 근무 feature/change_excel_format지점

그 파일들의 staged상태 가 양호해야한다고 생각했는데

하지만 git status말해Changes not staged for commit

여기에 이미지 설명을 입력하십시오

짧은에, 나는 단지 자식의 3 단계가 알고 untracked, staged, committed 대한의 무대가 무엇인지, 어떤 사람이 말해 줄 수는Changes not staged for commit 여기에 이미지 설명을 입력하십시오

따라서 파일을 수정하면 a (이미 저장소에 있음)

을 입력 git st하면 자식이 알려줍니다.Changes not staged for commit

내가 git a그렇다면 파일 astaged status

나는를 수정 한 경우 file a지금의이 개 상태가됩니다 file agit, 오른쪽?

따라서 staged a커밋을 만들거나 not stage a스테이지를 만들지 결정해야 하며 이전 스테이지 file a는 버려 질 것입니까?

여기에 이미지 설명을 입력하십시오


3
이 메시지가
나타나고이

답변:


325

이미 리포지토리에있는 파일을 변경할 때 파일을 git add준비하려면 다시해야합니다.

이를 통해 마지막 커밋 이후에 변경된 일부만 커밋 할 수 있습니다. 예를 들어, file a, file b및 file 이 있다고 가정하겠습니다 c. 파일 a과 파일을 수정 b하지만 변경 사항이 매우 다르기 때문에 모든 변경 사항이 단일 커밋에 포함되는 것을 원하지 않습니다. 당신은 발행

git add a
git commit a -m "bugfix, in a"
git add b
git commit b -m "new feature, in b"

참고로, 모든 것을 커밋하려면 입력하면됩니다.

git commit -a

도움이 되길 바랍니다.


1
따라서 해당 파일이 이미 repo에 있다면. 그리고 나는 그것들을 바꾸었고, 나는 git commit THEM그것들을 추가하지 않고 직접 할 수 있습니다.
newBike

1
물론이야. 이 경우 다른 파일의 단계적 변경 여부에 관계없이 나열된 파일 만 커밋됩니다.
Stefano Falasca

1
나는 같은 문제가 있지만 내 문제는 또한 추적되지 않은 파일의 하위 모듈 원인에 관한 것입니다. 그래서 내 하위 디렉토리에서 git으로 모든 변경 사항을 추가하면 문제가 사라졌습니다.
elia

1
나는 이미 git clean -fd해왔고 여전히 이것을 받고 있습니다. 모든 변경 사항을 제거하고 싶습니다. 다른 무엇을해야합니까?
Honey

3
git commit -a새 파일이 아닌 모든 파일을 업데이트하지 않고 업데이트 된 파일 만 커밋하지 않습니다.
Martin

62

git add를 사용하여 스테이징하지 않으면 커밋하지 않습니다. 커밋하려는 변경 사항을 git에 알려주십시오.

git add -u :/수정 된 모든 파일 변경 사항을 스테이지에 git add * :/추가하고 수정 된 파일과 gitignore'ed되지 않은 새 파일을 스테이지에 추가합니다.


2
이 답변은 위의 답변과 비교하여 명확하고 간결합니다. 그래서 내가 좋아합니다. ;)
oaxacamatt

13

Git이 말하는 또 다른 방법입니다.

이봐, 나는 당신이 약간의 변화를 보았지만, 당신이 내 역사에 페이지를 쓸 때, 그 변화는이 페이지에 있지 않을 것임을 명심하십시오.

명시 적으로 파일을 변경하지 않으면 파일 변경이 준비되지 않습니다 git add.

그래서 당신이 git commit 변경 사항은 준비되지 않았으므로 추가되지 않습니다. 커밋하려면 먼저 준비해야합니다 (예 :) git add.


2
그러나 나는 그것이 참조하는 파일을 변경하지 않았다
Eoin

1
이 동작이 정확히 어떻게 이해되는지 이해할 수 없습니다. add .다시 게시를 설정할 때 수행하여 파일을 추적하도록 Git에 이미 지시 한 경우 파일을 변경 한 것을 감지 할 수 있는데, 커밋 할 때마다 파일을 명시 적으로 추가해야하는 이유는 무엇입니까? 파일을 변경하려면 add, commit 을 (를 ) 해야합니다 push. 사이의 경계 commit와 밀어 사이의 경계 나에게 의미가 add와가 commit터무니없이 중복 보인다.
Prometheus

1
@Hashim 동의합니다. 논리를 이해하지 못합니다.
Herman Toothrot

6

아래 단계를 따르십시오.

1-git stash
2-git add.
3-git commit -m "커밋 메시지"


5
git stash는 모든 변경 사항을 제거했습니다. 10 시간의 작업이있었습니다. (
viniciussvl

13
"git stash"를 사용했다면 "temp place"로 변경 사항을 되돌리려면 "git stash pop"을 입력하여 "temp place"에서 변경 사항을 가져 오십시오
Cyrus Zei

12
@viniciussvl과 Cyrus 주석을 읽을 때까지 git stash를 사용하지 마십시오
초라한

1
이 경우 왜 git stash를 사용합니까?
토비아스 카우프만

4

새로운 파일 변경 사항을 저장했다고 가정합니다. (예 : navbar.component.html)

운영:

ng status
modified:   src/app/components/shared/navbar/navbar.component.html

해당 파일에 대한 변경 사항을 업로드하려면 다음을 실행해야합니다.

git add src/app/components/shared/navbar/navbar.component.html

그리고:

git commit src/app/components/shared/navbar/navbar.component.html -m "new navbar changes and fixes"

그리고:

git push origin [your branch name, usually "master"]

-------------------------------------------------- -------------

또는 모든 변경 사항 (여러 / 모든 파일)을 업로드하려는 경우 :

git commit -a

그리고 "변경 내용에 대한 커밋 메시지를 입력하십시오"라는 메시지가 나타납니다.

  • 메시지없이 git commit한다면이 메시지가 나타납니다 (-m)
  • 다음 두 단계를 통해 벗어날 수 있습니다.
  • 1.a. 커밋과 함께 앞으로 이동하려면 여러 줄 메시지를 입력하십시오.
  • 1.b. 커밋을 중단하려면 비워 둡니다.
    1. "esc"를 누른 다음 ": wq"를 입력하고 Enter를 눌러 선택 사항을 저장하십시오. 비올라!

그리고:

git push

그리고 비올라!


2
내가 위에서 말한 것처럼 : git commit -a변경 사항을 모두 업로드하지 않고 새 파일을 포함하지 않습니다. 기존 파일에만 업데이트를 커밋합니다.
Martin

3

int git bash 다음을 시도하십시오

1.git add -u :/

2.git commit -m "your commit message"

  1. git push -u origin master

참고 : repo를 초기화하지 않은 경우

가장 먼저

git init 

위에서 언급 한 단계를 순서대로 따르십시오. 이것은 나를 위해 일했다


이 문제는 로컬 리포지토리에서 파일을 삭제하고 로컬 리포지토리에서 원격 마스터 분기로 커밋 할 수없는 자식 충돌에서 나에게 효과적이었습니다.
Siwoku Adeola

1

그것은 그들이 커밋되기 위해 추가되지 않았다는 것을 의미합니다 .git add scripts / excel_parser.py를 수행해야하며 스테이지를 좋아하는 사람들은 .. 일단 git status를 할 때 스테이지되면 git commit은 스테이징되고 git commit은 커밋합니다.

git commit -a -m "모든 체크인"을 자동으로 수행하여 트리의 모든 파일을 자동으로 스테이징 및 커밋 할 수 있습니다.


1

코드에 새 파일을 추가하고 준비 (추가)하지 않고 코드를 커밋하려고하면이 오류가 표시 될 수 있습니다.

이를 극복하기 위해 먼저 git add ( git add your_file_name.py) 를 사용하여 파일을 추가 한 다음 변경 사항을 커밋 할 수 있습니다 ( git commit -m "Rename Files" -m "Sample script to rename files as you like").


1

위의 모든 회신을 읽었으며 새 단계를 업데이트하고 마스터의 파일을 변경하는 데 잘 작동하는 다음 단계를 터미널에서 시도했습니다.

1) 자식 추가. 2) git commit -m "당신의 메시지"3) git push origin master

이것이 도움이되기를 바랍니다.


1

git add을 수행 할 때 잘못된 디렉토리에있을 수 있습니다. :-)


-7

없애다 dir/.../.git

나를 위해 작동합니다.


답변에는 배경 정보가 필요하거나 그것이 왜 또는 어떻게 효과가 있었는지에 대한 통찰력이 필요합니다.
Joshua K

있는 그대로, 그 대답은 그 질문을지지하지 않습니다. 추가 정보를 변경하거나 추가하십시오.
Francisco Maria Calisto
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.