[git] Git : 추가 vs 푸시 vs 커밋

어떤 자식 사이의 차이는 add, push그리고 commit?

SVN에서 약간 혼란스러워합니다. “업데이트”는 항목을 ‘추가’하고 커밋은 “푸시”를 수행하고 ‘추가’합니다.

git에는 모든 다른 기능이 있습니다. 귀하의 경험에 대한 설명을 기대합니다.



답변

  1. git add수정 된 파일을 큐 추가하여 나중에 커밋 합니다. 파일이 커밋되지 않았습니다.

  2. git commit추가 된 파일을 커밋하고 로그가있는 새 개정판을 생성합니다 … 파일을 추가하지 않으면 git은 아무것도 커밋하지 않습니다. 두 작업을 함께 결합 할 수 있습니다.git commit -a

  3. git push 변경 사항을 원격 저장소로 푸시합니다.

git 치트 시트 의이 그림 은 작업 흐름에 대한 좋은 아이디어를 제공합니다.

여기에 이미지 설명 입력

git add제안 된 커밋 방법이 결합 되었기 때문에 그림에 나타나지 git commit -a않지만 git add변경 블록에 정신적으로 추가 하여 흐름을 이해할 수 있습니다.

마지막으로 push별도의 명령이있는 이유는 git의 철학 때문입니다 . git분산 버전 관리 시스템이고 로컬 작업 디렉토리 저장소입니다! 커밋 한 모든 변경 사항은 즉시 반영되고 기록됩니다. push작업중인 모든 작업을 마쳤을 때만 원격 저장소 (다른 사람과 공유 할 수 있음)를 업데이트하는 데 사용됩니다. 이것은 네트워크 오버 헤드없이 로컬로 작업하고 변경 사항을 저장하고 모든 커밋이 아닌 원할 때만 업데이트하는 깔끔한 방법입니다. 이것은 간접적으로 더 쉬운 커밋 / 브랜치 등 (왜 안 되겠습니까? 비용이 얼마나 듭니까?)을 초래하여 저장소를 엉망으로 만들지 않고 더 많은 세이브 포인트로 이어집니다.


답변

git add 변경 사항을 선택

git commit 로컬에서 변경 사항 기록

git push 공유 변경


답변

  • git add 커밋 할 준비가 된 개체의 스테이징 영역 인 Git 인덱스에 파일을 추가합니다.
  • git commit색인의 파일을 저장소에 커밋하고 git commit -a수정 된 모든 추적 파일을 색인에 먼저 추가하는 바로 가기입니다.
  • git push 보류중인 모든 변경 사항을 분기가 매핑 된 원격 저장소 (예 : GitHub)로 보냅니다.

Git을 이해하려면 문서를 훑어 보는 것보다 더 많은 노력을 투자해야하지만 그만한 가치가 있습니다. Git 명령을 Subversion에 직접 매핑하려고하지 마십시오. 대부분의 명령에는 직접적인 대응이 없습니다.


답변

나는 ‘add’가 실제로하는 일에 대해 혼란 스러웠다. 여기에 추가하고 싶은 책 Git Pro에서 매우 계몽적인 단락을 읽었습니다.

“Git은 git add 명령을 실행할 때와 똑같이 파일을 스테이징합니다. 지금 커밋하면 git add 명령을 마지막으로 실행했을 때와 같은 benchmarks.rb의 버전은 git commit을 실행할 때 작업 디렉토리에 표시되는 파일 버전이 아니라 커밋으로 이동하는 방식입니다. git add를 실행 한 후 파일을 수정하는 경우 git add를 다시 실행하여 파일의 최신 버전을 준비해야합니다.”

발췌 : Chacon, Scott. “Pro Git.” Springer, 2009-08-19T00 : 00 : 00 + 00 : 00. iBooks. 이 자료는 저작권으로 보호 될 수 있습니다.


답변

add는 git에게 파일 추적을 시작하도록 지시합니다.

commit은 로컬 저장소에서 현재 변경 사항을 커밋합니다.

push는 로컬 저장소를 업스트림으로 푸시합니다.


답변

이 이미지는 매우 의미가 있습니다.

여기에 이미지 설명 입력

( 출처 : Oliver Steele -My Git Workflow (2008) )


답변

많은 GIT 비밀에 대한 아주 좋은 PDF .

Add 는 svn의 add와 동일합니다 (하지만 때때로 파일이 해결 된 것으로 표시하는 데 사용됨).

Commit 은 svn과 동일하지만 로컬 저장소에 변경 사항을 커밋합니다.