合并成大师。合并在另一个分支上显示,为什么?

时间:2016-02-16 16:19:28

标签: git git-merge

我怀疑这是我对git merge如何运作的误解。

我有三个分支。 master,range-filters和mvc-pages。

Master和mvc-pages也在远程调用源上,而range-filters分支只在我的本地存储库中。

完成了范围过滤器分支的工作后,我将其合并为master。 git checkout master git merge range-filters git push origin master

当我切换到mvc-pages分支并拉动时。 git checkout mvc-pages git pull origin mvc-pages

我现在将范围过滤器合并到mvc-pages分支中,这是我没想到的。这是git merge的正常行为吗?或者进一步误解了这一点?

合并提交不应该仅显示在分支上我已将它们合并到?

1 个答案:

答案 0 :(得分:0)

我无法复制所描述的行为。你确定你一直使用正确的分支名称吗?

#! /bin/bash
set -x
set -eu

dir=$$.$(date +%s)
mkdir $dir
cd $dir

mkdir remote
(   cd remote
    git init --bare
)

mkdir repo
cd repo
git init
git remote add origin ../remote

echo master > file.1
git add file.1
git commit -m 'file.1 added'
git push -u origin master

git checkout -b mvc-pages
echo mvc-pages > file.2
git add file.2
git commit -m 'file.2 added'
git push -u origin mvc-pages

git checkout -b range-filters
echo range-filters > file.3
git add file.3
git commit -m 'file.3 added'

git checkout master
git merge range-filters
git push origin master

git checkout mvc-pages
git pull origin mvc-pages
cat file.?
echo 'No range-filters here!'
git status
git log

cd ../..
rm -rf $dir

如果您将最后一次拉动修改为

git pull origin master

(这是你的错误),所有分支都在同一个提交中结束。你将原来的主人的变化拉到你的分支,这就是为什么他们现在在那里。但是,远程mvc-pages应该仍然可以。