团队成员本地存储库之间的Git推/拉

时间:2013-08-16 04:39:42

标签: git git-push git-pull

假设有一个团队有4名开发人员。 我们还为我们的项目提供了一个中央存储库。 开发人员从中央存储库推送和拉取。 Here(在分散但集中的部分),它表示可以在团队成员本地存储库之间进行推/拉。

  

每个开发人员都会拉动并推动原点。但除了集中   推拉关系,每个开发人员也可以从中拉出变化   其他同行组成子团队......从技术上讲,这仅仅意味着什么   而Alice已经定义了一个名为bob的Git遥控器,指向Bob的   存储库,反之亦然

现在的问题是如何定义指向Bob的存储库的远程名称bob。 如果重要,开发人员可能会使用不同的操作系统。

5 个答案:

答案 0 :(得分:3)

这是一个很常见的事情,比如 Alice和Bob需要一起处理某些功能。同时,开发应由不同的开发人员在不同的分支上进行。

简单的方法是:

  • 创建一个新的分支sprint_1,Alice和bob checkout to sprint_1
  • 所有与功能相关的更改都应在此处完成
  • 应使用

    执行推拉操作
    git pull origin sprint_1  and git push origin sprint_1
    

当完成更改并且sprint_1具有稳定代码时,它可以与其他分支合并。如果sprint_1上的代码已经走了很长一段路,建议重新分支分支而不是合并,以避免冲突或挑选。

答案 1 :(得分:2)

GIT clone repo across local file system in windows类似

Per J.F.Sebastian回复:

$ git clone --no-hardlinks /path/to/repo
     

以上命令对您的目录使用POSIX路径表示法   git存储库。对于Windows,它是(目录C:/ path / to / repo包含   .git目录):

C:\some\dir\> git clone --local file:///C:/path/to/repo my_project
     

存储库将克隆到C:\ some \ dir \ my_project。如果省略   file:/// part然后隐含了--local选项。

答案 2 :(得分:2)

如果您在主机上建立了用户帐户并对存储库拥有访问权限,那么其他人可以通过SSH推送/获取,无论是否建立了命名的"远程"。

git push user@host:/path/to/repo branch

如果经常共享代码,可以设置命名的遥控器以记住服务器路径:

git remote add remotename user@host:/path/to/repo

如果共享涉及密切协调(可能是非常松散的安全性),那么你可以在" master"上启动短暂的git daemon。根据需要:git equivalent of 'hg serve'?在这种情况下,上述共享命令仍然适用,但user@host:/path将替换为git://host/。另请参阅git daemon documentation

或者,您可以设置一个单独的专用存储库用于中间共享:How do I setup a staging repository in git?

答案 3 :(得分:1)

如果两个repos共享一个文件系统命名空间,你可以直接使用文件系统路径。否则,开发人员可以轻松地运行本地git服务器,例如,一个VPN,其中访问已经可操作私有git daemon命令将提供正常的提取,否则您可以在专用端口上设置ssh访问,以通过更多的工作实现相同的效果。

答案 4 :(得分:1)

我想做类似的事情,在我的情况下,我正在寻找一种简单的方法来同步嵌入式系统上的项目(运行Linux)。以前我只是建立一个共享的互联网连接并从集中存储库中取出。但我发现这样的工作并不容易,有时我的互联网连接很差。

在下面的文章中,git daemon的使用非常好地解释了这个问题。我将在这里简要介绍一下内容: http://railsware.com/blog/2013/09/19/taming-the-git-daemon-to-quickly-share-git-repository/

为您的存储库设置以下别名以进行读取访问(服务)或读/写访问(集线器):

$ git config --global alias.serve "!git daemon --base-path=. --export-all --reuseaddr --informative-errors --verbose"
$ git config --global alias.hub "!git daemon --base-path=. --export-all --enable=receive-pack --reuseaddr --informative-errors --verbose"

然后在主机上,只需从要共享的存储库所在的目录中执行git servegit hub。现在在客户端上,可以执行git clone git://x.x.x.x/path/to/repo来访问主机上的本地存储库!

对于Windows用户:

  • 在命令中使用双引号来设置别名
  • 请务必通过右键单击标题栏并选择“编辑” - >“标记”来“挂起”命令提示符,使其不输出任何行。否则,由于git中的错误,可能会中断与客户端的连接(根据博客文章中的评论)。