工作中有个项目a,需要以它为模版生成一个项目b。
之后每次修改a,都需要在b上做相同的修改,耗时耗力。
之后写了merge脚本,分享一下。
方案:
1: a上起个分支,最好起一个奇形怪状的名字branchB,避免哪天手贱给合并到develop
2: b 的develop分支代码,拷贝到branchB,提交。
3: a 切换到develop,git reset 到过去的某个提交,然后stash
4: a 切换到branchB,stash pop,检查冲突,然后commit
5: a branchB的代码拷贝到b的develop
完成。
pwdThis=~/Documents/workspace/killZombie/CSAppServer
pwdTarget=~/Documents/workspace/killZombie/CSServer
echo "need insert csserver.commitid"
read csserverTargetCommitId
echo "got csserver.commit id $csserverTargetCommitId"
cd $pwdThis
git add --all
git reset --hard
git checkout develop
git pull
cd $pwdTarget
git add --all
git reset --hard
git checkout iosapp
git pull
cd $pwdThis
for file in $pwdThis/*; do
echo $file
cp -rf $file $pwdTarget/
done
cd $pwdTarget
git add --all
git commit -m '拷贝csappserver代码到csserver.iosapp分支'
git pull
git push
git checkout develop
git reset $csserverTargetCommitId
git add --all
git stash
git pull
git checkout iosapp
git stash pop
while :
do
echo "please check and insert 1 when ok "
read ifDoNext
if [ $ifDoNext == 1 ];
then
break
fi
done
git add --all
git commit -m "pop develop $csserverTargetCommitId 以后的所有更改"
git pull
git push
cd $pwdTarget
for file in $pwdTarget/*; do
echo $file
cp -rf $file $pwdThis/
done
cd $pwdThis
git add --all
git commit -m '从csserver拉取自$csserverTargetCommitId后的所有更改'
git pull
git push
网友评论