2012-09-26 34 views
4

當談到版本控制時,我是一個完整的noob,但我最近開始使用GitHub來託管我的一些項目。我盲目地使用命令git push origin master將更改推送到兩個存儲庫中的任何一個。我不明白Git如何知道要推送哪個存儲庫。我使用相同的命令推送到每個。我所在的目錄與它有什麼關係?Git如何知道要推送哪個存儲庫?

感謝您爲我解決這個問題。

+0

檢查[鏈接這裏](http://stackoverflow.com/questions/12195747/pushing-a-repository-onto-github/12195854#12195854), – gks

+0

爲什麼你'盲目地使用'一些命令,不知道它究竟是什麼意思以及它做了什麼。爲了避免在某個階段後出現混亂,如果你花時間使用git文檔和工作流程會更好。 – suvankar

回答

1

Git存儲庫包含一個.git目錄,其中包含有關存儲庫的元數據。這就是Git用來確定在哪裏推送更改。

+0

這是否意味着我們必須先「cd」到正確的目錄?如果我們在回購的子文件夾中呢?如果我們在沒有.git direcotry的錯誤目錄中會發生什麼? – Miladiouss

3

一句忠告,「一味地使用」任何事情都是一個壞主意。

git的系統爲remotes,它允許指定URL並將其傳輸到您工作的存儲庫以外的存儲庫。 git push origin master將當前分支作爲分支主機推送到遠程被叫方。你有一個遠程調用起源。這是從URL中克隆存儲庫時默認創建的。

+0

我很困惑,因爲我可以在我的任何回購協議中使用相同的命令(因爲我命名了兩個遙控器的原點)。它不像起源是某種全局的Git變量或某種東西,所以它必須是一個目錄特定的東西。我認爲Fraxtill提到的.git目錄可能對此負責。 – ICoffeeConsumer

+2

'git'目錄存儲項目的所有信息。它是*存儲庫。刪除它並且該目錄不再是存儲庫。遙控器和它們指向的URL的實際列表位於'.git/config'中。 –

2

git remote add origin http://abc.com/def/ghi.git告訴git遠程'origin'指向的url。

3

當您使用git push origin master時,您並未推送到兩個存儲庫 - 您正在推送存儲庫中名稱(別名)爲原點的主分支。

把它看成是這樣的:

我推着我的東西原籍這是我的倉庫地址。我在那裏推什麼?我的主分支。

如果您是新手,並且通過git init設置好自己,那麼您可能不會推送到兩個存儲庫。運行這個命令來查看你的遙控器有:

git remote -v 

這將返回類似(假設你有一個像github上一個git託管服務):

blahblah [email protected]:yourGithubName/fileName.git (fetch) 
blahblah [email protected]:yourGithubName/fileName.git (push) 

[email protected]:yourGithubName /文件名.git是您的存儲庫地址。有些地址的前綴爲https://。

相關問題