我有一個自己管理的項目。我想用git來管理它。使用git分享我目前的項目
而該項目位於:/home/maven/workspace/tmkproject
(這是我當前的工作目錄)。我正在使用Eclipse IDE。
我不喜歡使用git init
我的工作目錄下創建存儲庫。
我想在某個位置像/home/maven/gitrepo
創建存儲庫。
然後我把項目拉到我的目錄。
那麼在我的情況下,該怎麼做呢?
因爲該項目可能與我的團隊中的更多人一起工作。
我有一個自己管理的項目。我想用git來管理它。使用git分享我目前的項目
而該項目位於:/home/maven/workspace/tmkproject
(這是我當前的工作目錄)。我正在使用Eclipse IDE。
我不喜歡使用git init
我的工作目錄下創建存儲庫。
我想在某個位置像/home/maven/gitrepo
創建存儲庫。
然後我把項目拉到我的目錄。
那麼在我的情況下,該怎麼做呢?
因爲該項目可能與我的團隊中的更多人一起工作。
如果我理解正確,您希望多人使用git來處理項目。您的想法是將存儲庫放入/home/maven/gitrepo
,並讓所有人直接使用該存儲庫。你可以這樣做使用GIT_DIR
環境變量,這不是一個好的使用git的方法。
取而代之的是,/home/maven/gitrepo
應該包含一個存儲庫,每個人都應該有一個這個存儲庫的克隆。然後他們可以像平常一樣推拉。
首先,開始將所有內容轉儲到git中。確保任何臨時文件和構建文件都不存在,或者寫一個.gitignore文件來讓git忽略它們。
cd /home/maven/workspace/tmkproject
git init
git add .
git commit -a
現在你在/home/maven/workspace/tmkproject/.git
有一個Git倉庫,你需要得到一份拷貝到/home/maven/gitrepo
。
cd /home/maven/gitrepo
git clone --bare /home/maven/workspace/tmkproject
這將使/home/maven/gitrepo/tmkproject.git
其中包含您.git
目錄的內容。
下一步是設置/home/maven/workspace/tmkproject
使用/home/maven/gitrepo/tmkproject.git
作爲推拉的遠程存儲庫。
cd /home/maven/workspace/tmkproject
git remote add origin /home/maven/gitrepo/tmkproject.git
git fetch origin
現在,您可以從該中央存儲庫推入並拉出。
git push -u origin master # send changes and set up the branch default
git push # now it will use the default
git pull # get new changes
其他人可以克隆自己的副本進行開發和推拉。
cd ~user/devel
git clone /home/maven/gitrepo/tmkproject.git
你會注意到這是一個設置工作,最終你會想要遠程訪問。使用諸如Github,Bitbucket,Gitorious或Gitlab之類的現有git服務通常更容易。
+1作爲詳細步驟。 – CppLearner 2013-04-24 01:48:22
'下一步是設置/ home/maven/workspace/tmkproject以使用/home/maven/gitrepo/tmkproject.git作爲推拉的遠程存儲庫。 !謝謝,這就是我想要的!實際上,我想區分遠程存儲庫和本地工作存儲庫。 – hguser 2013-04-24 03:03:23
@hguser - git是分佈式的,所以沒有重要的或中央的存儲庫。 Schwern的步驟完全正確,但僅僅爲了澄清,他在當前的工作目錄中創建了一個回購,然後將其克隆到您想要的「中央」回購的位置,並使用了「--bare」。如果你想推送給他們,Repos必須是裸露的。除此之外,還有一點目錄結構差異,它們與常規回購相同。因此,他創建了一個工作副本,並創建了一個工作副本,然後克隆出一個每個人都可以克隆/推/拉的裸副本。 – 2013-04-24 04:03:45
免責聲明:如果你是使用Git和/或Linux的命令行工具初學者不要在你的項目的根目錄使用git init
,這會讓事情變得對你更加容易。
此外,它只會在根級工作副本的根目錄下創建一個.git
目錄,因此它不會太侵入。
如果你想從你的回購的備份你的工作拷貝到本地計算機上分離出來,創建兩個回購協議,並從你的工作副本推到你的「備份回購」。
GIT中支持可用於覆蓋.git
目錄的默認位置的GIT_DIR
環境變量。您可以將其設置爲/home/maven/workspace/tmkproject
並鍵入git init
。請確保始終保持此變量正確設置,並在對應於不同存儲庫的兩個Git工作副本之間切換時更改它。
更多信息請參見man git(1)。
好的,很棒的圖片。這是主叉形式。
你有你的主人(可能/home/maven/workspace/tmkprojec
)。
你和你的會員可以git clone /home/maven/workspace/tmkprojec /path/to/saved/repo
在文件系統...
現在,我不知道我是怎麼您設置您的計算機作爲一個git的服務器,並建議不這樣做。 如果您不在同一個網絡中或者沒有安裝NFS(網絡文件系統),則需要SSH或服務器公開。
Github/Bitbucket應該可以解決您的問題。
的最佳做法如下,使用到位桶:
你是叫Scrum管理員。您可以在Bitbucket上創建一個團隊帳戶,將您的成員添加到團隊帳戶中。
你推現有主回購協議到位桶
你和你的成員將來自回購叉子到位桶
你和你的memebrs將從到位桶回購克隆下來到本地機器
你和你的成員將推動到位桶
改變自己的分叉rpeo當你完成一個FE ature /認爲是交換代碼的時候,您可以向主提交Pull請求。
您和您的團隊成員將輪流在源代碼中進行代碼審查和合並。
我說Bitbucket的唯一原因是因爲它有免費的私有存儲庫。否則,你可以使用Github。沒關係。
他們可以從你的'/ home/maven/workspace/tmkproject'中克隆克隆並從那裏開始工作。 git通信不一定要通過http。這是你問的嗎? – CppLearner 2013-04-24 01:04:26
如果你不想使用git,那麼使用SVN,Mercurial或任何其他版本控制系統。 – 2013-04-24 01:07:06
@CppLearner:我的團隊中的人可以使用'git clone'來獲取代碼。我想知道我怎麼樣?我不認爲我可以使用'/ home/maven/workspace/tmkproject'作爲工作目錄嗎? – hguser 2013-04-24 01:21:42