2011-07-07 57 views
6

當我將push本地工作目錄下載到中央存儲庫時,請做全部中間分支和提交信息(從上次推送到這個)推送?Git推送澄清 - 什麼推動?

換句話說,不push產生確切複製我當前工作目錄,包括提交,樹枝等的整個歷史,因此被提供給其他任何用戶從中央存儲庫拉?

如果不是所有東西都被推動,什麼被排除?

回答

7

當您運行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 - 將當前分支推送到同名的分支。
+0

這正是我需要的信息,但沒有如何找到它。謝謝你加一個! – WinWin

3

它推送您爲該遠程存儲庫配置的分支。查看配置文件.git/config以查看已配置的內容。

如果你想看到什麼將推動使用

git remote show origin 

,你與你的遠程倉庫的名稱替換由來。這顯示了哪些分支機構將推動回購,以及分支機構的當前狀態。

+0

謝謝加一個。 – WinWin

2

要完成其他答案,請不要忘記git push通常會處理分支(refs/heads)。

  • 它不會推標籤,除非你指定--tags(或--mirror),在這種情況下refs/tags推。
  • won't push notes(通常被遺忘),除非你明確指定了ref名稱空間。
+0

感謝您指出這些。這是非常寶貴的信息。 +1。 – WinWin