尽管我已经尽力理解,但显然我很菜,不擅长使用git。
来自kernel.org关于git push
:
-u
--set-upstream
对于每个已经更新或成功上传的分支,添加上游(跟踪)引用,供无参数的 git-pull(1) 和其他命令使用。有关详细信息,请参见 git-config(1) 中的
branch.<name>.merge
。
这是来自git config
的branch.<name>.merge
:
branch.<name>.merge
与
branch.<name>.remote
一起定义了给定分支的上游分支。它告诉git fetch/git pull合并哪个分支,还可以影响git push(参见push.default)。当在分支<name>
中时,它告诉git fetch要标记为将在FETCH_HEAD中合并的默认refspec。该值的处理方式类似于refspec的远程部分,并且必须匹配从由"branch.<name>.remote"
给出的远程获取的ref。合并信息由git pull(首先调用git fetch)用于查找要合并的默认分支。如果没有此选项,则git pull默认合并第一个获取的refspec。指定多个值以获得章鱼合并。如果您希望设置git pull,使其从本地存储库的另一个分支合并到<name>
中,则可以将branch.<name>.merge
指向所需的分支,并使用特殊设置.(句号)作为branch.<name>.remote
。
我已经成功设置了一个与Github远程仓库连接的仓库,并且我已经成功用如下命令提交了第一个commit:
git push -u origin master
然后,我不知不觉中成功地将我的第二次提交推送到了远程仓库,使用的命令是:
git commit -m '[...]'
然而,由于错误的认为我需要再次从master
推送到origin
,我运行了以下命令:
# note: no -u
git push origin master
那个命令做了什么?好像完全没有任何效果。我是不是“撤销”了git push -u origin master
命令?
git
在某种程度上违反了任何(基于模式的)统一理解,仅仅因为它的用户界面没有以任何连贯的方式“设计”。因此,在很多情况下,你只能通过死记硬背来“知道”它,而不能进行推断。在这里,我正在SO上检查一些应该很明显的事情,而我从0.x版本开始就一直在使用git。 - ocodo