Git 커밋 대 Git 푸시

Azhar Bashir Khan 2022년8월23일
Git 커밋 대 Git 푸시

이 튜토리얼에서는 git commitgit push의 차이점을 배웁니다.

Git은 일반적으로 협업 개발 환경에서 파일의 변경 사항을 추적하는 분산 버전 제어 시스템입니다.

Git은 각 개발자(즉)에게 저장소로 추적되는 프로젝트 디렉토리의 전체 기록에 대한 로컬 복사본을 각 머신에 제공합니다. 모든 로컬 변경 사항은 로컬 리포지토리에서 원격 리포지토리로 복사됩니다.

또한 원격 리포지토리의 모든 변경 사항을 로컬 리포지토리로 가져옵니다.

Git은 이러한 목표를 달성하기 위해 git commitgit push 명령을 제공합니다.

이제 예를 들어 차이점에 대해 자세히 설명하겠습니다.

Git에서 git commitgit push의 차이점

git commitgit push의 기본적인 차이점은 git commit의 범위는 로컬 저장소이고 git push의 범위는 원격 저장소라는 것입니다.

git push 명령은 항상 git commit 명령을 실행한 후에 옵니다.

git commit 명령을 실행하면 프로젝트의 현재 단계적 변경 사항에 대한 스냅샷이 캡처됩니다. git add 명령은 변경 사항의 스테이징을 수행합니다.

git push 명령은 로컬 저장소 콘텐츠를 원격 저장소로 푸시합니다. 이 명령은 로컬 저장소에서 원격 저장소로 커밋을 전송합니다.

로컬 리포지토리에 sample.txt라는 파일이 있고 업데이트했으며 git add 명령으로 파일 변경 사항도 준비했다고 가정해 보겠습니다.

이제 다음과 같이 로컬 리포지토리의 상태를 확인합니다.

$ git status
On branch main
Changes to be committed:
  (use "git restore --staged <file>..." to unstage)
	modified:   sample.txt

sample.txt 파일의 변경 사항이 커밋할 준비가 된 것으로 표시되는 것을 볼 수 있습니다.

이제 git commit 명령을 사용하여 이를 수행합니다. 메시지와 함께 변경 사항을 커밋하는 git commit 명령의 구문은 git commit -m <message>입니다.

따라서 우리는 다음과 같이 할 것입니다.

$ git commit -m "updated sample.txt"

이제 다음과 같이 로컬 저장소의 Git 로그를 확인합니다.

$ git log --oneline
4488776 (HEAD -> main) updated sample.txt
...

이제 Git 로그에서 sample.txt 파일에 대한 커밋이 표시되는 것을 볼 수 있습니다. 이 커밋은 로컬 저장소 인덱스의 HEAD에 있습니다. 새 커밋은 인덱스 HEAD의 직계 Git이며 분기 viz입니다. main이 이를 가리키도록 업데이트됩니다.

이제 git push 명령을 실행하여 커밋을 원격 저장소로 푸시합니다. git push 명령의 구문은 git push <remote-repository> <branch>입니다.

따라서 우리는 다음과 같이 할 것입니다.

$ git push origin main

이제 별칭 origin과 원격 브랜치 main으로 지정된 원격 저장소에 커밋을 푸시했습니다.

이제 Git 로그를 다음과 같이 다시 확인합니다.

$ git log --oneline
4488776 (HEAD -> main, origin/main) updated sample.txt
...

Git 로그에서 sample.txt 파일에 대한 커밋이 표시되는 것을 볼 수 있습니다.

커밋은 이제 로컬 저장소 인덱스의 HEAD와 원격 저장소의 원격 분기에 있습니다.

따라서 Git에서 git commit 명령과 git push 명령의 차이점을 자세히 설명했습니다.

관련 문장 - Git Commit

관련 문장 - Git Push