在这里插入图片描述

PROMPT:
实现一个linux和windows上通用的git命令,能够将当前所在分支上最新修改的commit节点同步到目标分支上;实际使用过程中,输入git sync "目标分支名"命令,即可将当前所在分支上最新的commit节点同步到目标分支;
实际使用场景如下:
实际开发生产过程中,会用到两个分支:dev分支用于打桩验证,dev_merge分支用于跑门禁合入主干;dev分支上的修改可以通过命令选择性的同步到dev_merge分支上;

使用git设置别名的方式实现
git config --global -e

[alias]
    sync = "!f() { \
        target=$1; \
        if [ -z \"$target\" ]; then \
            echo '错误: 请指定目标分支。用法: git sync <目标分支名>'; \
            exit 1; \
        fi; \
        curr_branch=$(git rev-parse --abbrev-ref HEAD); \
        if [ \"$curr_branch\" = \"$target\" ]; then \
            echo '错误: 当前分支与目标分支相同。'; \
            exit 1; \
        fi; \
        commit_hash=$(git rev-parse HEAD); \
        echo \"正在将 $curr_branch 的最新提交 ($commit_hash) 同步到 $target ...\"; \
        git checkout \"$target\" || exit 1; \
        git cherry-pick \"$commit_hash\" || { \
            echo '=================================================='; \
            echo '注意: 发现代码冲突!'; \
            echo '请先解决冲突,执行 git cherry-pick --continue'; \
            echo \"完成后,请手动切回原来的分支: git checkout $curr_branch\"; \
            exit 1; \
        }; \
        git checkout \"$curr_branch\"; \
        echo \"同步成功!已自动切回 $curr_branch 分支。\"; \
    }; f"

更多推荐