2012-04-24 112 views
0

我是Git的新手,但很多都使用SVN。我一直在閱讀Git,因爲我們正在爲某些工作項目推動這個方向。結帳的Git版本?克隆沒有做我想做的事

我的任務是設置存儲庫並幫助其他人訪問它們。

這裏是我想要做的事:

我有一個遠程服務器(我們的Git服務器)上配置的工作庫。我能到我的本地計算機上使用以下命令:

git clone <url to remote repo> 

我然後就開始修改和提交。一切都很好。

現在我有另一個用戶,在另一臺機器上,我想要訪問存儲庫。我希望他有能力做一個基本的結帳並開始自己編輯文件。我如何在Git中管理這個?他是否需要爲自己創建一個工作分支?

我試圖使用我使用的同一個克隆命令,它給了他一個「空」目錄。經過進一步調查,我注意到我有一個「主」副本,這不是我想要的。我讀了clone我意識到這不是我的意圖。當我爲自己(分支機構或其他人)運行clone命令時,我得到了什麼?

我已經閱讀了很多教程,從SVN過渡到這個網站上的幾個職位的人的崩潰課程。我只是無法讓事情順利進行。

在此先感謝您的幫助。

+0

我不認爲人們是混蛋。這是一個合理的問題(這就是爲什麼我會幫忙!),但(a)很多材料在標準文檔中都有明確的說明,(b)這個問題缺乏一些重要的細節(比如,在每個位置運行的命令的確切順序,您創建遠程存儲庫的確切方式等)。不要因爲降薪而生氣(畢竟沒有人投票結束)。將其用作學習體驗,以便將來編寫更好的問題。 – larsks 2012-04-24 16:58:09

+0

我不知道我是否會低估這一點,但你真的應該谷歌'例如git工作流'或類似的東西,並通讀它。它在概念上與SVN有很大的不同,它看起來像你使用它一樣(用一些新的命令名) – Shep 2012-04-24 17:00:08

回答

5

What did I get when I ran the clone command for myself (a branch or something else)?

當您運行clone,你得到自己的信息庫的完整副本(包括整個歷史),你得到自己簽出的工作副本。工作副本就是你正在編輯的東西;該存儲庫是.git目錄中的所有內容。

如果您正在與其他人合作,您應該運行相同的git clone命令。當您想要更改已提交給協作者時,您可以運行git push將更改發送回遠程存儲庫,並且協作者運行git pull以更新其本地存儲庫和工作副本。

Git Book的distributed workflows部分對此主題有一些很好的閱讀。

+0

我爲其他用戶創建了一個克隆,並進入工作目錄並運行'git pull '並且收到以下錯誤信息:'你的配置指定與遠程的ref'master' 合併,但是沒有這樣的ref被提取。' – Rico 2012-04-24 16:50:55

+0

等等......我意識到我可能沒有正確推送我的更改。提交不實際更新遠程服務器?我怎樣才能做到這一點?我運行'git push'並收到以下錯誤:'沒有共同的引用和沒有指定;什麼也不做。 也許你應該指定一個分支,比如'master'。 致命:遠端意外掛斷# – Rico 2012-04-24 16:52:49

+1

閱讀我鏈接到的文檔。 'git commit'不會更新遠程倉庫;這不是Subversion。直到你運行'git push',你完全在你的本地倉庫中運行。如果你從一個空的遠程倉庫開始,那麼你沒有共同的參考,所以你第一次推你需要提供一個明確的參考,像這樣:'git push origin master',這意味着「推我的主'分支到遠程名爲'origin'的'master'分支。 – larsks 2012-04-24 16:54:11