创建中间git存储库

创建中间git存储库,git,Git,我想安装一个Interdigit存储库,我的所有团队成员都可以在此存储库中进行提交和推送 当所有团队成员完成所有任务时,Interdiary存储库中所有提交的更改都必须在位于internet上托管的另一台服务器中的Official git存储库中交付 我的问题是,是否可以进行此配置?怎么做呢?这是可能的 您可以按照教程或使用类似的工具在一台LAN计算机中设置git服务器。一旦您准备好了本地git回购,您就可以向团队成员授予访问权限 要将本地服务器同步到中央服务器,请使用两个远程设备设置一个本地副

我想安装一个Interdigit存储库,我的所有团队成员都可以在此存储库中进行提交和推送

当所有团队成员完成所有任务时,Interdiary存储库中所有提交的更改都必须在位于internet上托管的另一台服务器中的Official git存储库中交付

我的问题是,是否可以进行此配置?怎么做呢?

这是可能的

您可以按照教程或使用类似的工具在一台LAN计算机中设置git服务器。一旦您准备好了本地git回购,您就可以向团队成员授予访问权限

要将本地服务器同步到中央服务器,请使用两个远程设备设置一个本地副本。然后,您可以简单地从本地服务器
git pull
获取本地更改,并
git push
到中央服务器。您可以通过使用无密码短语的密钥对访问两台服务器来安排此任务

有关设置多个git遥控器的更多详细信息,请参见

您可以按照教程或使用类似的工具在一台LAN计算机中设置git服务器。一旦您准备好了本地git回购,您就可以向团队成员授予访问权限

要将本地服务器同步到中央服务器,请使用两个远程设备设置一个本地副本。然后,您可以简单地从本地服务器
git pull
获取本地更改,并
git push
到中央服务器。您可以通过使用无密码短语的密钥对访问两台服务器来安排此任务

有关设置多个git遥控器的更多详细信息,请参见“是的,您可以”,因为as是一个。任何克隆的存储库都可以用作其他存储库的源(目标)

假设您想为名为main.git的“主”存储库创建一个代理存储库

git clone --bare path_to_main_repo/main.git path_to_proxy_repo/proxy.git
git clone path_to_proxy_repo/proxy.git path_to_working_repository/working_repository 
然后,您可以从
工作存储库
推送到
代理
,从
代理
推送到
存储库

请记住在使用GIT时,任何给定的存储库都可能扮演主目标/代理/orAnythingElse存储库的角色

是的,你可以,因为as是一个。任何克隆的存储库都可以用作其他存储库的源(目标)

假设您想为名为main.git的“主”存储库创建一个代理存储库

git clone --bare path_to_main_repo/main.git path_to_proxy_repo/proxy.git
git clone path_to_proxy_repo/proxy.git path_to_working_repository/working_repository 
然后,您可以从
工作存储库
推送到
代理
,从
代理
推送到
存储库


请记住在使用GIT时,任何给定的存储库都可能扮演主目标/代理/orAnythingElse存储库的角色

如果我理解正确,您希望对git回购A进行初始更改

一旦达到某一点(里程碑、日期等),对回购a的所有变更都将应用于回购B

大多数开发团队通过单一的回购和分支来实现这一点

然而,你可以在任何你喜欢的地方设立分支机构

手册页中有一个关于
git remote
命令的示例

EXAMPLES
   ·   Add a new remote, fetch, and check out a branch from it

           $ git remote
           origin
           $ git branch -r
           origin/master
           $ git remote add linux-nfs git://linux-nfs.org/pub/linux/nfs-2.6.git
           $ git remote
           linux-nfs
           origin
           $ git fetch
           * refs/remotes/linux-nfs/master: storing branch 'master' ...
             commit: bf81b46
           $ git branch -r
           origin/master
           linux-nfs/master
           $ git checkout -b nfs linux-nfs/master

您的reposa可能与上面示例中的linux-nfs类似。这样做之后,git merge就可以用来合并这两个

如果我理解正确的话,您希望对git回购进行初始更改

一旦达到某一点(里程碑、日期等),对回购a的所有变更都将应用于回购B

大多数开发团队通过单一的回购和分支来实现这一点

然而,你可以在任何你喜欢的地方设立分支机构

手册页中有一个关于
git remote
命令的示例

EXAMPLES
   ·   Add a new remote, fetch, and check out a branch from it

           $ git remote
           origin
           $ git branch -r
           origin/master
           $ git remote add linux-nfs git://linux-nfs.org/pub/linux/nfs-2.6.git
           $ git remote
           linux-nfs
           origin
           $ git fetch
           * refs/remotes/linux-nfs/master: storing branch 'master' ...
             commit: bf81b46
           $ git branch -r
           origin/master
           linux-nfs/master
           $ git checkout -b nfs linux-nfs/master
您的reposa可能与上面示例中的linux-nfs类似。完成此操作后,可以使用git merge来组合这两个库

基本上,你启动了一个新的git裸回购,就像

git init --bare
使用将每个开发人员的此存储库添加到远程

git add remote upstream_intermediate_bare path/to/bare/repo
然后使用

git push upstream_intermediate_bare branch_name
接下来,在您的官方git回购中,添加另一个远程

git add remote downstream_intermediate_bare path/to/bare/repo
git pull downstream_intermediate_bare branch_name
对于仅用作推拉源的远程存储库的常见情况,裸存储库非常重要。检查

编辑:示例

因此,在上面的例子中,开发人员代码位于目录dev1中,他将代码推送到一个裸存储库中,您无法在其中执行拉或推操作,您必须将其添加到遥控器中并对其进行操作,而正式的repo只从裸存储库中进行拉操作。

尝试使用裸存储库()

基本上,你启动了一个新的git裸回购,就像

git init --bare
使用将每个开发人员的此存储库添加到远程

git add remote upstream_intermediate_bare path/to/bare/repo
然后使用

git push upstream_intermediate_bare branch_name
接下来,在您的官方git回购中,添加另一个远程

git add remote downstream_intermediate_bare path/to/bare/repo
git pull downstream_intermediate_bare branch_name
对于仅用作推拉源的远程存储库的常见情况,裸存储库非常重要。检查

编辑:示例


因此,在上面的例子中,开发人员代码位于目录dev1中,他将代码推送到一个裸存储库中,您无法在其中执行拉或推操作,您必须将其添加到您的遥控器中并对其进行操作,而正式的repo只从裸存储库中进行拉操作。

假设在一个项目中工作。您只需从master中提取代码,然后打开新的分支:

git pull origin master
git checkout -b new-branch
...
现在,您可以推动您的分支,或者在推动某些提交之前开始在其中工作

...
git add .
git commit -am 'I am pushing in bew-branch'
...
git add .
git commit -am 'I am pushing in bew-branch'
...
您的分支中有一些功能(主分支中没有),您是第一个在此分支中有工作人员的开发人员,因此。。。你可以把它推到原点

...
git push origin new-branch
...
现在存在一个名为“origin/new branch”的分支,所有开发人员都可以从该分支中提取。现在,您继续在locasl分支中提交:

...
git add .
git commit -am 'I am pushing in bew-branch'
...
git add .
git commit -am 'I am pushing in bew-branch'
...
其他开发人员推送了一些代码,现在您需要拉

...
git pull origin master
...
    Fix merge
...
git push origin new-branch
...
最后,您可以将所有提交都放在master中

...
git checkout master
git merge new-branch
git push origin master

结束。

假设在一个项目中工作。你只需要拉代码