【发布时间】:2011-08-07 13:15:33
【问题描述】:
我在使用 git 方面显然很糟糕,尽管我尽了最大努力去理解它。
来自kernel.org 为git push:
-u
--设置上游
对于每个最新或成功推送的分支,添加上游(跟踪)引用,由无参数 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 建立了一个远程存储库,并且我成功地将我的第一个提交推送到它:
git push -u origin master
然后,我无意中成功地将我的第二次提交推送到了我的远程存储库,使用:
git commit -m '[...]'
但是,我错误地认为我必须从 master 再次推送到 origin,我跑了:
# note: no -u
git push origin master
那做了什么?它似乎根本没有任何效果。我“撤消”git push -u origin master了吗?
【问题讨论】:
-
I'm apparently terrible at using git, despite my best attempts to understand it.- 从来没有人如此完美地重塑过我。
标签: git