美文网首页
git项目之间合并代码

git项目之间合并代码

作者: ysdyyy | 来源:发表于2019-05-27 11:14 被阅读0次

    工作中有个项目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
    
    

    相关文章

      网友评论

          本文标题:git项目之间合并代码

          本文链接:https://www.haomeiwen.com/subject/gqmctctx.html