當談到版本控制時,我是一個完整的noob,但我最近開始使用GitHub來託管我的一些項目。我盲目地使用命令git push origin master
將更改推送到兩個存儲庫中的任何一個。我不明白Git如何知道要推送哪個存儲庫。我使用相同的命令推送到每個。我所在的目錄與它有什麼關係?Git如何知道要推送哪個存儲庫?
感謝您爲我解決這個問題。
當談到版本控制時,我是一個完整的noob,但我最近開始使用GitHub來託管我的一些項目。我盲目地使用命令git push origin master
將更改推送到兩個存儲庫中的任何一個。我不明白Git如何知道要推送哪個存儲庫。我使用相同的命令推送到每個。我所在的目錄與它有什麼關係?Git如何知道要推送哪個存儲庫?
感謝您爲我解決這個問題。
Git存儲庫包含一個.git
目錄,其中包含有關存儲庫的元數據。這就是Git用來確定在哪裏推送更改。
這是否意味着我們必須先「cd」到正確的目錄?如果我們在回購的子文件夾中呢?如果我們在沒有.git direcotry的錯誤目錄中會發生什麼? – Miladiouss
一句忠告,「一味地使用」任何事情都是一個壞主意。
git的系統爲remotes,它允許指定URL並將其傳輸到您工作的存儲庫以外的存儲庫。 git push origin master
將當前分支作爲分支主機推送到遠程被叫方。你有一個遠程調用起源。這是從URL中克隆存儲庫時默認創建的。
我很困惑,因爲我可以在我的任何回購協議中使用相同的命令(因爲我命名了兩個遙控器的原點)。它不像起源是某種全局的Git變量或某種東西,所以它必須是一個目錄特定的東西。我認爲Fraxtill提到的.git目錄可能對此負責。 – ICoffeeConsumer
'git'目錄存儲項目的所有信息。它是*存儲庫。刪除它並且該目錄不再是存儲庫。遙控器和它們指向的URL的實際列表位於'.git/config'中。 –
git remote add origin http://abc.com/def/ghi.git
告訴git遠程'origin'指向的url。
當您使用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://。
檢查[鏈接這裏](http://stackoverflow.com/questions/12195747/pushing-a-repository-onto-github/12195854#12195854), – gks
爲什麼你'盲目地使用'一些命令,不知道它究竟是什麼意思以及它做了什麼。爲了避免在某個階段後出現混亂,如果你花時間使用git文檔和工作流程會更好。 – suvankar