我需要在裸仓库中合并一个分支吗?

Do I need to merge a branch in a bare repo?

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

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

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

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

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

方法一
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?

之后需要对裸仓库做任何事情

使用方法一。

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

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

do you need to do anything to the bare repo after a merge?

按一下就行了