>  기사  >  개발 도구  >  git에서 커밋과 푸시의 차이점은 무엇입니까?

git에서 커밋과 푸시의 차이점은 무엇입니까?

青灯夜游
青灯夜游원래의
2021-11-26 14:21:4722020검색

차이점: 1. "git commit" 명령은 로컬에서 수정된 파일을 로컬 라이브러리에 제출하는 반면, "git push" 명령은 로컬 라이브러리의 최신 정보를 원격 라이브러리에 보내는 것입니다. 2. "git commit; " 명령은 로컬 라이브러리를 동작시키고, "git push" 명령은 원격 라이브러리를 동작시킵니다.

git에서 커밋과 푸시의 차이점은 무엇입니까?

이 튜토리얼의 운영 환경: Windows 7 시스템, Git 버전 2.30.0, Dell G3 컴퓨터.

"git commit"과 "git push"의 차이점

git commit은 "저장소에 변경 사항을 기록하는 것"입니다. 이는 로컬에서 수정된 파일을 로컬 라이브러리에 제출하는 것입니다. 그리고 git push는 "원격 참조 및 관련 객체 업데이트"인데, 로컬 라이브러리의 최신 정보를 원격 라이브러리로 보내는 것입니다. git commit是"记录对存储库的更改",是将本地修改过的文件提交到本地库中;而git push是"更新远程引用和相关对象",是将本地库中的最新信息发送给远程库。

因此,git commit用于连接本地存储库,操作的是本地库;而git push用于与远程存储库交互,操作的是远程库。

下面是奥利弗·斯蒂尔的一张很好的图片,它解释了Git模型和命令:

git에서 커밋과 푸시의 차이점은 무엇입니까?

<span style="font-size: 18px;"><strong>Git commit</strong></span>

git commit 主要是将暂存区里的改动给提交到本地的版本库。每次使用git commit 命令我们都会在本地版本库生成一个40位的哈希值,这个哈希值也叫commit-id,

 commit-id 在版本回退的时候是非常有用的,它相当于一个快照,可以在未来的任何时候通过与git reset的组合命令回到这里.

1、git commit -m ‘message’

-m 参数表示可以直接输入后面的“message”,如果不加 -m参数,那么是不能直接输入message的,而是会调用一个编辑器一般是vim来让你输入这个message,

message即是我们用来简要说明这次提交的语句。

2、git commit -am ‘message’ -am等同于-a -m

-a参数可以将所有已跟踪文件中的执行修改或删除操作的文件都提交到本地仓库,即使它们没有经过git add添加到暂存区,

注意: 新加的文件(即没有被git系统管理的文件)是不能被提交到本地仓库的。

<span style="font-size: 18px;"><strong>Git push</strong></span>

在使用git commit命令将修改从暂存区提交到本地版本库后,只剩下最后一步将本地版本库的分支推送到远程服务器上对应的分支了,如果不清楚版本库的构成,可以查看我的另一篇,git 仓库的基本结构。

git push的一般形式为 git push ,例如 git push origin master:refs/for/master ,即是将本地的master分支推送到远程主机origin上的对应master分支, origin 是远程主机名。第一个master是本地分支名,第二个master是远程分支名。

1、git push origin master

如果远程分支被省略,如上则表示将本地分支推送到与之存在追踪关系的远程分支(通常两者同名),如果该远程分支不存在,则会被新建

2、git push origin :refs/for/master

如果省略本地分支名,则表示删除指定的远程分支,因为这等同于推送一个空的本地分支到远程分支,等同于 git push origin –delete master

3、git push origin

如果当前分支与远程分支存在追踪关系,则本地分支和远程分支都可以省略,将当前分支推送到origin主机的对应分支

4、git push

따라서 git commit은 로컬 저장소에 연결하고 로컬 라이브러리를 작동하는 데 사용되고 git push는 원격 저장소와 상호 작용하고 원격 라이브러리를 작동하는 데 사용됩니다. .

다음은 Git 모델과 명령을 설명하는 Oliver Steele의 좋은 그림입니다.

git에서 커밋과 푸시의 차이점은 무엇입니까?

🎜🎜Git commit🎜🎜🎜🎜git commit 주로 스테이징 영역의 변경 사항을 로컬 저장소. git commit 명령을 사용할 때마다 로컬 저장소에 40자리 해시 값이 생성됩니다. 이 해시 값은 commit-id라고도 합니다. 🎜🎜 Commit-id는 버전을 롤백할 때 매우 유용합니다. 🎜🎜1. git commit -m 'message'🎜🎜-m 매개변수와 명령을 결합하여 향후 언제든지 여기로 반환할 수 있는 스냅샷입니다. 다음 " 메시지"를 직접 입력하세요. -m 매개변수를 추가하지 않으면 메시지를 직접 입력할 수 없습니다. 대신 일반적으로 vim 편집기가 호출되어 메시지를 입력할 수 있습니다. 이 제출물을 간략하게 설명하는 데 사용하십시오. 🎜🎜2. git commit -am 'message' -am은 -a -m🎜🎜-a 매개변수와 동일하며 수정되거나 삭제된 추적 파일의 모든 파일을 로컬 창고에 커밋할 수 있습니다. git add를 통해 스테이징 영역에 추가되지 않았더라도 🎜🎜참고: 새로 추가된 파일(즉, git 시스템에서 관리되지 않는 파일)은 로컬 창고에 제출할 수 없습니다. 🎜🎜🎜🎜Git push🎜🎜🎜🎜 git commit 명령을 사용하여 스테이징 영역의 수정 사항을 로컬 저장소에 커밋한 후에는 마지막 단계만 남습니다. 로컬 버전 전송 라이브러리의 브랜치가 원격 서버의 해당 브랜치로 푸시됩니다. 버전 라이브러리의 구조를 모르신다면 저의 다른 글인 git Warehouse의 기본 구조를 확인하시면 됩니다. 🎜🎜 git push의 일반적인 형식은 git push <remote host name> <local branch name><remote branch name></remote></local></remote>입니다. push Origin master: refs/for/master는 로컬 마스터 브랜치를 원격 호스트 오리진의 해당 마스터 브랜치로 푸시하는 것입니다. 여기서 Origin은 원격 호스트의 이름입니다. 첫 번째 마스터는 로컬 분기 이름이고 두 번째 마스터는 원격 분기 이름입니다. 🎜🎜1. git push Origin master🎜🎜위와 같이 원격 브랜치를 생략하면 추적 관계에 따라 로컬 브랜치를 원격 브랜치로 푸시한다는 의미입니다(보통 둘 다 이름이 동일함). 원격 브랜치가 없으면 생성됩니다🎜🎜2. git push 원본: refs/for/master🎜🎜로컬 브랜치 이름이 생략되면 지정된 원격 브랜치를 삭제한다는 의미입니다. 브랜치, 이는 빈 항목을 푸시하는 것과 동일하기 때문입니다. 원격 브랜치에 대한 로컬 브랜치는 git push Origin –delete master🎜🎜3, git push Origin🎜🎜과 동일합니다. 현재 브랜치와 원격 브랜치 모두 생략 가능하며, 현재 브랜치를 원본 호스트의 해당 브랜치로 푸시합니다. 🎜🎜4. git push🎜🎜현재 브랜치가 원격 브랜치는 하나만 있고 호스트 이름은 생략 가능하며 git push 형식에서는 git Branch -r을 사용하여 원격 브랜치 이름을 볼 수 있습니다🎜🎜추천 학습: "🎜Git Tutorial🎜"🎜

위 내용은 git에서 커밋과 푸시의 차이점은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.