programing tip

커밋 할 때마다 git에 파일을 추가해야합니까?

itbloger 2020. 12. 31. 08:02
반응형

커밋 할 때마다 git에 파일을 추가해야합니까?


나는 SVN 세계에서 온 git을 처음 사용합니다. 지금까지는 훨씬 더 유용 해 보이지만 여전히 문제를 해결하고 있습니다.

현재 내 워크 플로는 다음과 같습니다.

변경> git add. > git commit> 로그 메시지 입력

내가 이해하지 못하는 것은 커밋하기 전에 모든 파일을 추가해야하는 이유입니다. 이미 버전 관리를 받고 있습니까? 왜 git commit은 커밋에 추가 된 변경 사항이 없다고 말하지만 파일을 수정했다고 지적합니까? "변경되었지만 업데이트되지 않음 :"이라고 표시됩니다. 이것은 무엇을 의미 하는가??

쉬우면 미안하지만 중요한 포인트를 놓치고있는 것 같아요


이를 통해 편집을 통해 커밋을 분리 할 수 ​​있습니다. 이 파일을 지금 하나의 커밋에서 커밋하고 다음 파일을 지금 두 번째 커밋에서 커밋하려면 다음을 수행 할 수 있습니다.

git add files_under_one_topic
git commit -m "this is about one thing"

git add files_left_over_to_commit_about_a_completely_different_topic
git commit -m "this is about another thing."

Git은 커밋으로 함께 묶을 것을 준비하는 "스테이징"영역을 사용하여 작동합니다. 따라서 커밋 할 변경 사항 집합 (예 : 전체 또는 하위 집합)을 결정하고이를 스테이징 영역에 추가 한 다음 스테이징 영역에있는 내용을 커밋합니다.

을 호출 git status하면 스테이징 영역에 추가 된 항목 (예 : "변경 사항이 커밋 됨"), git이 추적하는 파일 (예 : 변경되었지만 업데이트되지 않음) 중 수정 된 항목 및 사용자가 만든 새 파일이 표시됩니다. 이전에 추가 한 적이 없습니다 (예 : 추적되지 않은 파일).

변경 한 내용 만 커밋하고 새로 만든 파일은 포함하지 않으려면 사용할 수 있습니다. git commit -a -m "Comment for modified files already under source control."


git 제어하에 파일을 추가하는 것이 아니라 변경 목록에 추가하는 것입니다. perforce와 같은 일부 다른 SCM도이 작업을 수행합니다. 아직 커밋 할 준비가되지 않았지만 별도의 블록으로 커밋하려는 고유 한 변경 사항 집합을 구축하는 데 편리합니다.

당신은 단순히하기 만하면 좀 더 전복적인 방식으로 커밋 할 수 있습니다. git commit -agit이 알고있는 모든 것을 커밋 할 svn commit수 있습니다.

(추신. svn 세계에서 왔기 때문에 약간의 루프를 위해 나를 던진 또 다른 문제를 언급하겠습니다. 당신이했을 때 git diff현재 상태와 변경 목록에있는 것 사이의 차이 만 보여줄 것입니다. , 현재 상태와 마지막 커밋의 차이가 아닙니다. git diff변경된 모든 파일을 추가 한 직후 (예 :) 실행하면 커밋 할 git add -u차이가 있더라도 빈 diff가 표시됩니다!)

참조 URL : https://stackoverflow.com/questions/3160976/should-i-have-to-add-files-to-git-every-time-i-want-to-commit

반응형