如何从一个简单的git repo推送到另一个?

Saa*_*hah 14 git version-control github

我和来自一个大团队的其他几个人正在关于该项目的单独页面上工作.我们称之为组页面.当我们处理组页面时,我们需要交换不完整的代码,我们不希望将代码发送到中央存储库.在此期间,我们还处理与组页面无关的功能,我们需要提交并推送到中央服务器.我正在寻找这个问题的解决方案,这是我的想法.请评论他们.

我们不能在实际的repo服务器中建立一个分支,因为它们更高.

  1. 创建并通过电子邮件发送差异,然后在我们需要返回组页面时丢失更改并使用差异.收到电子邮件的人应用差异.等等
  2. 我们对代码进行了更改,提交它,但不要推送它.然后谁需要那些不完整的代码,可以直接从我们这里获取.
  3. 使用--bare标志再次复制中央服务器.因此,我们可以将其视为仅用于组页面的本地中央服务器.我们可以从中拉出并为组页面创建一个单独的工作区.我们可以推动它.

现在每个都有问题.

  1. 太繁琐了.我想用git来做它.
  2. 当有人从我身边撤出,然后开始使用新功能,然后他推(到中央服务器),然后他从我身上拉的任何东西都不会被推到服务器上.当我们的组页面代码完成时,他最终如何将它推送到服务器.
  3. 一样的问题.有没有办法从这个本地中央服务器推送到主服务器?两者都是裸露的回购当然.有没有办法从一个裸克隆推送到主github仓库?

Bri*_*ell 7

3是你最好的选择.事实上,这就是Git的用途; 使用单个组件的存储库,在完成工作时将其提供给更中央的存储库.

推动别人的改变是没有问题的.假设您进行了更改,并将其推送到组页面存储库.然后我拉出来,做一些改变,然后推回去.现在我们决定我们已经完成了.如果我推送到中央存储库,那么推送将包括我的更改以及我的更改所基于的更改.

您不需要从一个裸仓库推送到另一个.Git通过从您当地的仓库推送到一个或多个远程回购.克隆时,会有一个名为"origin"的默认远程仓库.但您可以根据需要配置尽可能多的远程仓库.为了说明这一点,假设你已经从中央仓库克隆了; 那被称为"起源".现在你创建一个裸仓库:它就在ssh://some-machine.corp.com/path/to/groups-repo.git.在您当地的工作回购中,只需这样做git remote add groups ssh://some-machine.corp.com/path/to/groups-repo.git,您将获得对该组回购的引用.现在你可以使用git fetch,git pull,git push等用groups以及与origin.


Dou*_*oug 5

有没有一种方法可以从一个裸克隆推送到主 github 存储库?

是的,您不必在工作树中即可从裸存储库推送更改。

只需 ssh 到“本地主机”所在的位置,然后运行:

git push origin master
Run Code Online (Sandbox Code Playgroud)

正如另一个答案指出的那样,您还可以直接从本地副本推送到远程主控,但有时拥有像这样的自动“看门人”存储库会更方便,可以触发它来推送更改(例如,在审核后)通过自动化到多个远程存储库,无需担心为特定个人设置 ssh 密钥等来推送更改。