2013-04-24 75 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