当我将本地工作目录推送到中央存储库时,是否会推送所有中间分支和提交信息(从上次推送到本次推送)?
换句话说,推送是否会生成我当前工作目录的整个历史记录的精确副本,包括提交、分支等,因此可供从中央存储库中提取的任何其他用户使用?
如果不是所有东西都被推动,那么什么会被排除在外?
运行时git push
,您可以设置在命令行上推送的内容。例如,这个
git push origin my-branch:fooo
将分支“my-branch”从本地存储库推送到“origin”处的分支“fooo”。
当您在git push
没有任何参数的情况下运行时,它会推送到您当前分支的远程设置(您可以通过 看到git config branch.<branchname>.remote
)并执行push.default
配置值中配置的操作,根据docs,可以是以下之一:
nothing
- 不要推任何东西。matching
- 推送所有匹配的分支。在两端具有相同名称的所有分支都被认为是匹配的。这是默认设置。upstream
- 将当前分支推送到其上游分支。tracking
- 不推荐使用上游的同义词。current
- 将当前分支推送到同名分支。它推送您为该远程存储库配置的分支。查看配置文件.git/config
以查看已配置的内容。
如果你想看看什么会推动使用
git remote show origin
您将 origin 替换为远程存储库的名称。这显示了哪些分支将推送到该 repo,以及分支的当前状态是什么。
要完成其他答案,请不要忘记git push
通常处理分支 ( refs/heads
)。
--tags
(或--mirror
),在这种情况下refs/tags
会推送。