很多時候,Git和Rails的看起來像變魔術一樣......如在first chapter of Rails 3 Tutorial book,它談論的Git:什麼是「git remote add ...」和「git push origin master」?
git remote add origin [email protected]:peter/first_app.git
git push origin master
和它幾乎說,「它只是作品」沒有說太多關於它們是什麼並開始談論分支。在網上搜索顯示git remote add
是添加一個「短名稱」,如origin
,它也可以是任何名稱,這就像一個URL的別名。而origin
是遠程回購指向的常用路徑。 (在http://git-scm.com/book/en/Git-Basics-Working-with-Remotes下的「添加遠程倉庫」)
那麼爲什麼URL不是git://[email protected]/peter/first_app.git
,但在其他語法 - 它是什麼語法?爲什麼必須以.git
結束?我試過最後不使用.git
,它也可以。如果不是.git
,還有什麼可以的?在[email protected]
中的git
似乎是git服務器上的用戶帳戶?
此外,它爲什麼需要如此詳細以便使用git push origin master
?不能默認是起源和主人嗎?我發現第一次需要origin master
,但經過小小的編輯和提交,然後git push
就是它所需要的(不需要origin master
)。知道發生了什麼的人可以提供一些細節嗎?
有時候感覺就像很多魔術一樣沒有解釋......有時候使用它的人是如此自信,當被問到爲什麼,無法解釋它,並用「就是這樣」的方式迴應。有時非常務實和務實。實踐並不壞,但不知道發生了什麼事情可能不切實際。
您可能需要在段落中添加關於傳輸的註釋,說明'[email protected]:peter/first_app.git'是git中ssh URL的'scp'風格語法。還有一點是,默認情況下,'master'的上游配置不會影響'git push' *的行爲,除非*您有'push.default'設置爲'tracking'(或更高版本的'upstream' ) - 我做了一篇關於這個混淆源的博客文章:http://longair.net/blog/2011/02/27/an-asymmetry-between-git-pull-and-git-push/ – 2011-04-11 06:15:24
該註釋 - 如果不使用'push.default',則在使用'git push'時,將使用上游配置來查找默認遠程,但不會影響refs的映射。 – 2011-04-11 06:46:47
是不是......我使用的其他VCS如TortoiseSVN似乎是非常「黑匣子」......一些簡單的命令具有非常明確的工作方式。學習它不到一個小時,每個人都很清楚它是如何做到的。使用Git或Hg,看起來更像是一個單元的學期課程。當發生什麼事情時,人們並不確定發生了什麼以及如何解決問題。 [cont'd] – 2011-04-11 06:47:11