Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/github/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
git分支--合并错误的输出_Git_Github - Fatal编程技术网

git分支--合并错误的输出

git分支--合并错误的输出,git,github,Git,Github,我正在编写一个脚本来查找和删除GitHub存储库列表上的合并分支。但是git branch-r--merged origin/master命令并没有返回它应该返回的合并分支 这是我的剧本: #!/usr/bin/env bash TARGET="/tmp/myorg" rm -fR ${TARGET} mkdir -p ${TARGET} declare -A repos repos["experiment"]="git@github.com:myorganisation/experiment

我正在编写一个脚本来查找和删除GitHub存储库列表上的合并分支。但是
git branch-r--merged origin/master
命令并没有返回它应该返回的合并分支

这是我的剧本:

#!/usr/bin/env bash
TARGET="/tmp/myorg"
rm -fR ${TARGET}
mkdir -p ${TARGET}

declare -A repos
repos["experiment"]="git@github.com:myorganisation/experiments.git"

for LAYER in "${!repos[@]}"
do
    git clone ${repos[$LAYER]} "$TARGET/$LAYER" > /dev/null
    cd "$TARGET/$LAYER"

    MERGED_BRANCHES=$(git branch -r --merged origin/master)

    for BRANCH in ${MERGED_BRANCHES[@]}
    do
        echo "$(date): Deleting ${BRANCH} from ${LAYER}"
        git push --delete origin ${BRANCH}
    done
done
为了测试这个脚本,我在GitHub上创建了一个测试存储库,并添加了两个分支。我合并了其中一个,并将另一个保留在openpull请求中。我希望在命令输出中看到合并的分支,但我只得到:

$ git branch -r --merged origin/master
origin/HEAD -> origin/master
origin/master
系统: Ubuntu 16.04.2 LTS
git 2.7.4版回答了我自己的问题

Git IRC社区对这个案例非常有帮助。以下是对话的一部分:

[15:55]阿扬:是的,显然他们用“合并”这个词来表示 与git使用它时的含义稍有不同 话

[15:56]Ayan:如果你在github上查看回购协议的设置, 您将找到一个配置“合并”按钮操作的部分 允许使用。在你的例子中,它进行了“挤压合并”(这 导致与正常合并相同的文件内容,但不能被合并 稍后在git中标识为合并)

[15:58]压缩和重基合并通常不会被检测到 --合并

[15:59]是的,--H是“显示分支标签” 提交是H的拓扑祖先”

[15:59]重新定基会破坏这种关系,挤压 打破这种关系

显然,这是GitHub的错,如果使用挤压或重基合并,就不可能使用此脚本。

这就是为什么我说挤压“合并”不是合并。将merge-as-a-verb视为一个与“merge”,merge-as-anon完全不同的事物是很有帮助的。挤压操作不包含动词部分,但完全忽略了名词部分。