Git Push澄清 - 推动什么?

时间:2011-07-07 13:30:46

标签: git git-push

当我push到中央存储库的本地工作目录时,所有中间分支和提交信息(从最后一次推送到这个)是否被推送?

换句话说,push是否会生成当前工作目录的整个历史记录的完全副本,包括提交,分支等,因此可供任何其他人使用用户从中央存储库拉出来了吗?

如果不是所有东西都被推,那么什么被排除?

3 个答案:

答案 0 :(得分:7)

运行git push时,可以设置在命令行上推送的内容。例如,这个

git push origin my-branch:fooo

将分支“my-branch”从本地存储库推送到“origin”分支“fooo”。

当您在没有任何参数的情况下运行git push时,它会推送到当前分支的远程设置(您可以通过git config branch.<branchname>.remote查看)并执行push.default配置值中配置的内容,根据{{​​3}},它可以是以下之一:

  • nothing - 不要推动任何东西。
  • matching - 推送所有匹配的分支。两端具有相同名称的所有分支都被认为是匹配的。这是默认设置。
  • upstream - 将当前分支推送到其上游分支。
  • tracking - 已弃用的上游同义词。
  • current - 将当前分支推送到同名分支。

答案 1 :(得分:3)

它将您配置的分支推送到该远程存储库。查看配置文件.git/config以查看已配置的内容。

如果你想知道什么会推动使用

git remote show origin

使用远程存储库的名称替换origin。这显示了什么分支将推送到该回购,以及分支的当前状态是什么。

答案 2 :(得分:3)

要完成其他答案,请不要忘记git push通常会处理分支(refs/heads)。

  • 除非您指定--tags(或--mirror),否则不会推送代码,在这种情况下会推送refs/tags
  • won't push notes(经常被遗忘)除非您明确指定ref名称空间。