【发布时间】:2015-02-26 16:25:24
【问题描述】:
这是Git cherry pick those commits that contain a keyword (tracking id)的后续问题
我想为代码审查创建一个孤立分支。这个孤立分支将从 SHA_of_first_commit~1 生成,提交消息包含我的 trackingID。创建孤立分支后,我会挑选带有包含我的 trackingID 的消息的提交。问题是所有精心挑选的提交都单独显示在孤立分支中。我希望所有这些都被视为一次提交,以便我可以使用这个新的 SHA 查看代码。以下是我现在使用的脚本。
#!/bin/bash
if [ -z $1 ]; then
echo "Rationale: Cherry pick all commits in master, that match the tracking ID and create a new branch.";
echo "";
echo "Usage: $0 traackingID";
echo "";
exit 1;
fi
#If $1 doesn't match a AGW-<number> pattern, thrown an error
user="$(id -u -n)" > /dev/null
echo "You are - $user"
branchname=$user"_"$1"_review"
echo "Creating branch - $branchname"
basecommit="$(git log master --pretty=oneline --reverse | grep "$1" | head -1 | cut -d ' ' -f 1)""~1"
echo "Checking out from $basecommit"
git checkout --orphan $branchname $basecommit > /dev/null
git commit -m "$1"
git rev-list master --reverse --grep="$1" | while read rev
do
echo $rev
git cherry-pick $rev > /dev/null
done
#git push &> /dev/null
echo "Created branch, cherry picked, pushed to remote. Now switching back to master. Bye."
git checkout master
【问题讨论】:
-
使用
git rebase将它们全部压缩? -
我不明白你在脚本中做了什么,但也许你应该看看
git rebase --interactivehelp.github.com/articles/about-git-rebase之类的东西 -
@phoet,我想创建一个包含所选提交更改的分支,以便我可以在新分支上进行代码审查。
-
这对我来说没有任何意义
-
cherry 选择你的提交然后
git rebase压缩它们...