在网上一篇文章上看到,git push操作的完整命令是:
“git push <远程主机名> <本地分支名>:<远程分支名>”
文章的作者还说了,“如果省略远程分支名,则表示将本地分支推送与之存在"追踪关系"的远程分支(通常两者同名),如果该远程分支不存在,则会被新建。
$ git push origin master
上面命令表示,将本地的master分支推送到origin主机的master分支。如果后者不存在,则会被新建。
”
我在本地新建仓库“bendi”,github上新建远程仓库“origin”,然后本地仓库push到远程。
没有设置set-upstream,并且第一次push的时候也没加-u参数,而是直接“git push origin master”。
问题:现在本地仓库“bendi”和远程仓库“origin”之间应该没有“追踪关系”把,为什么我还是可以通过“git push origin master”这种不带远程分支名的命令来push到远程呢?bendi和origin这2个仓库没有设置过追踪关系啊。
이것은 설명하기 어렵지 않습니다.
현재 폴더에서
이어야 합니다.git remote add
을 실행했다면 명령은git remote add origin https://github.com/yourName/yourRepo.git
저는 보통 이렇게 싸웁니다. . 이러한 방식으로 원점은 원격 라이브러리를 가리킵니다. 해당 명령에서 원본을 제거하려고 시도하면 오류가 발생합니다.
git clone
을 사용하여 원격 라이브러리를 복제하면 원점 포인터가 자동으로 설정됩니다.그런데 한 가지 주의하셔야 할 점이 있습니다. . 지금까지 언급된
origin
은 창고명이 아닙니다. . 대신 로컬로 원격 창고에 부여되는 별칭입니다.귀하의 경우에는 "github에 새로운 원격 창고 'origin'을 생성"하고 싶다고 하셨는데, 조금 혼란스럽습니다==! 창고 이름은 일반적으로 Origin 이라고 부르지 않습니다. . 예를 들어 프로젝트 이름이 Angular-Table인 경우
git remote add origin https://github.com/yourName/Angular-Table.git
만 하면 됩니다. 이렇게 하면git push origin master
을 사용하여 변경 사항을 푸시할 수 있습니다.브랜치에 대해 이야기해보겠습니다.
git push origin master
은로컬마스터 브랜치를 원격 원본으로 푸시한다는 의미입니다.git push origin master:foo
로 작성하면로컬마스터 브랜치를 원격 foo 브랜치로 푸시한다는 의미입니다.그런데, 여기에 검은 기술이 등장합니다. . 예를 들어 원격 foo 분기를 삭제하려면 다음 명령을 사용하세요.
git push origin :foo
git branch
을 사용하여 현지에서 어떤 지점을 이용할 수 있는지 확인할 수 있습니다.git remote -v
을 사용하여 원격으로 사용 가능한 지점을 확인할 수도 있습니다. 그런데git remote -v
원격으로 정보도 볼 수 있으니 한번 해보세요원격으로 마스터 브랜치가 있는지 확인하세요. 어쩌면 이 브랜치에 제출했을 수도 있습니다.
다음 명령을 실행하면 분기를 볼 수 있습니다.
으아아아upstream
이 기사가 도움이 될 것입니다