2013-04-24 73 views
-2

我有一個自己管理的項目。我想用git來管理它。使用git分享我目前的項目

而該項目位於:/home/maven/workspace/tmkproject(這是我當前的工作目錄)。我正在使用Eclipse IDE。

我不喜歡使用git init我的工作目錄下創建存儲庫。

我想在某個位置像/home/maven/gitrepo創建存儲庫。

然後我把項目拉到我的目錄。

那麼在我的情況下,該怎麼做呢?

因爲該項目可能與我的團隊中的更多人一起工作。

+0

他們可以從你的'/ home/maven/workspace/tmkproject'中克隆克隆並從那裏開始工作。 git通信不一定要通過http。這是你問的嗎? – CppLearner 2013-04-24 01:04:26

+0

如果你不想使用git,那麼使用SVN,Mercurial或任何其他版本控制系統。 – 2013-04-24 01:07:06

+0

@CppLearner:我的團隊中的人可以使用'git clone'來獲取代碼。我想知道我怎麼樣?我不認爲我可以使用'/ home/maven/workspace/tmkproject'作爲工作目錄嗎? – hguser 2013-04-24 01:21:42

回答

4

如果我理解正確,您希望多人使用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服務通常更容易。

+0

+1作爲詳細步驟。 – CppLearner 2013-04-24 01:48:22

+0

'下一步是設置/ home/maven/workspace/tmkproject以使用/home/maven/gitrepo/tmkproject.git作爲推拉的遠程存儲庫。 !謝謝,這就是我想要的!實際上,我想區分遠程存儲庫和本地工作存儲庫。 – hguser 2013-04-24 03:03:23

+0

@hguser - git是分佈式的,所以沒有重要的或中央的存儲庫。 Schwern的步驟完全正確,但僅僅爲了澄清,他在當前的工作目錄中創建了一個回購,然後將其克隆到您想要的「中央」回購的位置,並使用了「--bare」。如果你想推送給他們,Repos必須是裸露的。除此之外,還有一點目錄結構差異,它們與常規回購相同。因此,他創建了一個工作副本,並創建了一個工作副本,然後克隆出一個每個人都可以克隆/推/拉的裸副本。 – 2013-04-24 04:03:45

1

免責聲明:如果你是使用Git和/或Linux的命令行工具初學者不要在你的項目的根目錄使用git init,這會讓事情變得對你更加容易。

此外,它只會在根級工作副本的根目錄下創建一個.git目錄,因此它不會太侵入。

如果你想從你的回購的備份你的工作拷貝到本地計算機上分離出來,創建兩個回購協議,並從你的工作副本推到你的「備份回購」。


GIT中支持可用於覆蓋.git目錄的默認位置的GIT_DIR環境變量。您可以將其設置爲/home/maven/workspace/tmkproject並鍵入git init。請確保始終保持此變量正確設置,並在對應於不同存儲庫的兩個Git工作副本之間切換時更改它。

更多信息請參見man git(1)

1

好的,很棒的圖片。這是主叉形式。

你有你的主人(可能/home/maven/workspace/tmkprojec)。

你和你的會員可以git clone /home/maven/workspace/tmkprojec /path/to/saved/repo在文件系統...

現在,我不知道我是怎麼您設置您的計算機作爲一個git的服務器,並建議不這樣做。 如果您不在同一個網絡中或者沒有安裝NFS(網絡文件系統),則需要SSH或服務器公開。

Github/Bitbucket應該可以解決您的問題。

的最佳做法如下,使用到位桶:

  1. 你是叫Scrum管理員。您可以在Bitbucket上創建一個團隊帳戶,將您的成員添加到團隊帳戶中。

  2. 你推現有主回購協議到位桶

  3. 你和你的成員將來自回購叉子到位桶

  4. 你和你的memebrs將從到位桶回購克隆下來到本地機器

  5. 你和你的成員將推動到位桶

  6. 改變自己的分叉rpeo當你完成一個FE ature /認爲是交換代碼的時候,您可以向主提交Pull請求。

  7. 您和您的團隊成員將輪流在源代碼中進行代碼審查和合並。

我說Bitbucket的唯一原因是因爲它有免費的私有存儲庫。否則,你可以使用Github。沒關係。

+0

感謝您的回覆!我會嘗試。 – hguser 2013-04-24 03:07:45

+0

安全原因,我們無法使用在線代碼託管服務。團隊都在一個本地網絡中,我們希望製作人可以使用用戶名和密碼來「拉」項目,那麼有沒有更好的主意?因爲我讀過這篇文章:http://www.jedi.be/blog/2009/05/06/8-ways-to-share-your-git-repository /#apachehttp看來,我只能使用apache? – hguser 2013-04-24 03:22:49