我有一个自己管理的项目。我想用git来管理它。
该项目位于:/home/maven/workspace/tmkproject
(这是我当前的工作目录)。我正在使用Eclipse IDE。
我不想使用工作目录下的git init
来创建存储库。
我想在/home/maven/gitrepo
等特定位置创建存储库。
然后我将项目拉到我的目录。
所以在我的情况下,如何制作它?
因为该项目可能与我团队中的更多人一起工作。
答案 0 :(得分: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服务通常更容易。
答案 1 :(得分:1)
免责声明:如果您是Git和/或Linux命令行工具的初学者在项目根目录中使用git init
,它将使您更轻松强>
此外,它只会在根级工作副本的根目录下创建一个.git
目录,因此不会过于干扰。
如果您确实要将工作副本与本地计算机上的回购备份分开,请创建两个回购并从工作副本推送到“备份回购”。
Git支持GIT_DIR
环境变量,该变量可用于覆盖.git
目录的默认位置。您可以将其设置为/home/maven/workspace/tmkproject
并输入git init
。确保始终正确设置此变量,并在对应于不同存储库的两个Git工作副本之间切换时更改它。
有关详细信息,请参阅man git(1)。
答案 2 :(得分:1)
好的,好的照片。这是主叉式的。
你有你的主人(可能是/home/maven/workspace/tmkprojec
)。
您和您的成员可以git clone /home/maven/workspace/tmkprojec /path/to/saved/repo
通过文件系统...
现在,我不知道您如何将计算机设置为git服务器,我建议不要这样做。 如果您不在同一网络上或没有安装NFS(网络文件系统),则需要SSH或服务器公开。
Github / Bitbucket应该解决你的问题。
最佳做法如下,使用Bitbucket:
你被称为scrum master。您在Bitbucket上创建了一个团队帐户,将您的成员添加到团队帐户中。
您将现有的主仓库推送到Bitbucket
您和您的成员将从Bitbucket上的回购邮件中分发
您和您的memebrs将把Bitbucket的回购克隆到您当地的机器上
您和您的成员会将更改推送到Bitbucket上您自己的分叉rpeo
当您完成功能/认为是时候交换代码时,您可以向主服务器提交Pull请求。
您和您的团队成员将轮流进行代码审核并合并源代码。
我说Bitbucket的唯一原因是因为它有免费的私人存储库。否则,您可以使用Github。没关系。