我正在研究腳本來查找和刪除GitHub存儲庫列表上的合併分支。但git branch -r --merged origin/master
命令不會返回合併分支,因爲它應該。git分支 - 錯誤的輸出
這裏是我的腳本:
#!/usr/bin/env bash
TARGET="/tmp/myorg"
rm -fR ${TARGET}
mkdir -p ${TARGET}
declare -A repos
repos["experiment"]="[email protected]: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上一個測試版本庫和添加2個分支。我合併了其中一個,並且在公開拉取請求中留下了另一個。我期待看到該命令的輸出合併後的分支,而是我只是得到:
$ git branch -r --merged origin/master
origin/HEAD -> origin/master
origin/master
系統: 的Ubuntu 16.04.2 LTS Git版本2.7.4
這就是爲什麼我說* squash「merge」不是合併*將merge-as-a-verb看作與「合併」,merge-as-a-noun 。壓扁操作完成動詞部分,但完全省略了名詞部分。 – torek