【问题标题】:Do I need to merge a branch in a bare repo?我需要在裸仓库中合并一个分支吗?
【发布时间】:2017-03-12 07:34:03
【问题描述】:

在我的设置中,我有三个存储库:

  1. 远程服务器上的一个裸仓库 (/op/git/proj.git)
  2. 远程服务器上的非裸仓库 (/var/www/proj/.git)
  3. 本地机器上的非裸仓库 (/var/www/proj/.git)

裸仓库是本地和远程普通仓库的来源。

每当我在本地提交时,我都会对裸仓库执行本地 push,然后在普通远程仓库上执行 pull,然后我会在远程获取更改。

现在,我想将merge 分支Amaster 我应该使用哪种方法? (假设 master 是两个 repos 上的当前分支)

方法一
1.local$ git merge A
2.local$ git push origin master
3.remote$ git pull origin master

方法二
1.local$ git merge A
2.remote$ git merge A

我不确定第二种方法是否是我需要做的全部,换句话说,因为你不能在一个裸回购中做像 checkoutmerge 这样的事情,你需要对merge 之后的裸仓库?

【问题讨论】:

    标签: git git-merge git-bare


    【解决方案1】:

    使用方法一。

    方法 2 仅在 git merge A 将是本地和远程的快进时才有效。如果任何git merge A 操作导致合并提交(不是快进),则主分支将发生分歧。

    一般来说,在多个位置合并同一个分支在实践中很少有用。

    合并后你需要对裸仓库做任何事情吗?

    只需推动它,仅此而已。

    【讨论】:

    • 这是正确的答案(并且赞成),我只想添加一个评论,即完整的合并过程同时使用索引和工作树来存储所有中间结果。虽然裸存储库确实有索引,但“裸存储库”的定义是“没有工作树”,因此您无法在裸存储库中合并的原因是它缺少合并过程的关键元素。
    猜你喜欢
    • 1970-01-01
    • 2019-03-10
    • 2011-05-26
    • 2023-02-08
    • 2010-11-07
    • 1970-01-01
    • 2011-09-07
    • 2020-01-05
    相关资源
    最近更新 更多