Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
团队成员之间的Git推/拉本地存储库_Git_Git Push_Git Pull - Fatal编程技术网

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

团队成员之间的Git推/拉本地存储库,git,git-push,git-pull,Git,Git Push,Git Pull,假设有一个团队有4名开发人员。 我们的项目也有一个中央存储库。 开发人员从中央存储库推拉。(在分散但集中的部分)它说可以在团队成员之间推/拉本地存储库 每个开发人员都会拉和推到原点。但是除了中央集权 推拉关系,每个开发人员也可以从 其他同龄人组成小组…从技术上来说,这意味着什么都没有 Alice定义了一个Git remote,名为bob,指向bob的 存储库,反之亦然 现在的问题是如何定义指向bob存储库的远程名称bob。 如果有关系,开发人员可能会使用不同的操作系统。爱丽丝和鲍勃需要一起开发一

假设有一个团队有4名开发人员。 我们的项目也有一个中央存储库。 开发人员从中央存储库推拉。(在分散但集中的部分)它说可以在团队成员之间推/拉本地存储库

每个开发人员都会拉和推到原点。但是除了中央集权 推拉关系,每个开发人员也可以从 其他同龄人组成小组…从技术上来说,这意味着什么都没有 Alice定义了一个Git remote,名为bob,指向bob的 存储库,反之亦然

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

爱丽丝和鲍勃需要一起开发一些功能,这是很常见的事情。同时,开发应该由不同的开发人员在不同的分支上进行

简单的办法是:

  • 创建一个新的分支sprint_1,Alice和bob签出到sprint_1
  • 所有与功能相关的更改都应在此处完成
  • 推拉操作应使用

    git pull origin sprint_1  and git push origin sprint_1
    
当更改完成并且sprint_1有一个稳定的代码时,它可以与其他分支合并。如果sprint_1上的代码已经走了很长一段路,建议重新设置分支的基础,而不是合并,以避免冲突或错误选择。

类似于

根据J.F.Sebastian的回复:

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

存储库将克隆到C:\some\dir\my\u项目。如果你忽略了 file:///part then——隐含本地选项


如果两个repo共享一个文件系统名称空间,您可以直接使用文件系统路径。否则,开发人员可以很容易地在本地git服务器上运行,例如,在VPN上,访问已经是可行的私有,
git daemon
命令将很好地用于抓取,否则,您可以在专用端口上设置ssh访问,以实现同样的效果,只需稍微多做一些工作。

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

在下面的文章中,我们很好地解释了如何使用git守护进程来解决这个问题。我只在这里放一份内容的简要副本:

为存储库的读访问(serve)或读/写访问(hub)设置以下别名:

$ 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"
然后在主机上,只需从要共享的存储库所在的目录执行
gitserve
github
。现在在客户机上可以执行
git克隆git://x.x.x.x/path/to/repo
访问主机上的本地存储库

对于windows用户:

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

如果您在主机上建立了用户帐户并在repo上拥有访问权限,则其他人可以通过SSH推送/获取,无论是否建立命名的“远程”

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

git remote add remotename user@host:/path/to/repo
如果共享涉及到密切的协调(并且可能是非常松散的安全性),您可以根据需要在“master”上启动一个短期的
git守护程序
:在这种情况下,上述共享命令仍然适用,但是
user@host:/path
将替换为
git://host/
。另见


或者,您可以设置一个单独的专用存储库用于中间共享:

我从来没有尝试过这种方法,因为它看起来有点复杂,但可以通过在每台本地计算机上设置远程git访问来实现,没有问题。(创建git用户、添加授权密钥、创建分叉回购等等)在我看来,这篇文章中的所有内容都是一个标准的工作流程。我看不出团队成员从其他同事那里得到改变有什么好处。你可以在每个人的桌面上安装git服务器,但这是一个巨大的难题,因为没有真正的改进。也许你应该给作者发推特?我会跟进这件事。这不是我想要的。我知道他们可以通过推拉远程存储库来处理任何分支。这并不是对这个问题的直接回答,但我对它投了更高的票,因为它实际上更易于理解和设置。因此,如果您不能将注意力集中在其他工作流上(或者您无法说服您的经理使用它,或者您的it部门使跨开发人员难以使用网络设置),您可以使用此设置。不会扩展到数千个开发人员,但还不错。这非常接近。macosx或linux用户在团队中的情况如何?@nyzm我知道我的评论对游戏来说有点晚了,但windows是个怪人,mac和linux是一样的。但是,如果您使用git bash在Windows上与git交互(我相信bash终端是用git打包的,但我已经有一段时间没有使用git one Windows了,所以我可能会记错),那么无论您使用的是哪个操作系统,功能都是一样的。这对于解释
git守护进程
会更有帮助。我有一种感觉,command是这个问题的真正答案,但在目前发布的任何答案中都没有解释。这实际上比其他建议简单得多。
$ 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 push user@host:/path/to/repo branch
git remote add remotename user@host:/path/to/repo