我对git push origin master
的作用有疑问:
origin
是远程(又名GitHub)git push origin master
与git push origin master_on_my_machine:master_on_github
我不知道是否:
master_on_my_machine
等于/refs/heads/master
master_of_github
等于/refs/remotes/origin/master
如果相等,是否可以这样做
git push origin refs/heads/master:refs/heads/origin/master
?
最后,我想要做的只是在以下情况下输入git push
和git pull
:
git push
和git pull
。答案 0 :(得分:36)
Git有两种类型的分支:local
和remote
。要根据需要使用git pull
和git push
,您必须告知当地分支机构(my_test
)它正在跟踪哪个远程分支。在典型的Git方式中,这可以在配置文件和命令中完成。
<强>命令强>
确保您使用
进入master
分支机构
1)git checkout master
然后用
创建新分支 2)git branch --track my_test origin/my_test
并用
查看 3)git checkout my_test
。
然后,您可以push
和pull
,而无需指定哪个本地和远程。
但是,如果您已经创建了分支,那么您可以使用-u
开关告诉git的push
和pull
您要使用指定的本地和远程分支现在,就像这样:
git pull -u my_test origin/my_test
git push -u my_test origin/my_test
<强>配置强>
设置远程分支跟踪的命令相当简单,但我列出了配置方式,并且如果我设置了一堆跟踪分支,我会发现它更容易。使用您喜欢的编辑器打开您的项目.git/config
并将以下内容添加到底部。
[remote "origin"]
url = git@github.com:username/repo.git
fetch = +refs/heads/*:refs/remotes/origin/*
[branch "my_test"]
remote = origin
merge = refs/heads/my_test
这指定一个名为origin
的远程,在本例中为GitHub样式,然后告诉分支my_test
使用它作为远程。
运行上述命令后,您可以在配置中找到与此非常相似的内容。
一些有用的资源:
答案 1 :(得分:13)
或者作为一个命令:
git push -u origin master:my_test
将提交从您的本地主分支推送到(可能是新的)远程分支my_test
,并设置master
以跟踪origin/my_test
。