commit复制
背景:由于使用的是微前端,其中某几个子应用都是在相同的项目上复制出去的,导致有很多相同的修改每次都需要 crlt C +crlt V很多遍。那么有没有什么更简洁的方式呢,有一种cherry-pick
环境和
- 本地连接的远程仓库:默认是origin
- 远程仓库:project1(url1)、project2(url2)
- 需要复制的commit:aaa123
- 分支:(分支名是否一样都是一样的操作)
- 本地仓库:feat
- project1:feat
- project2:feat
目的
- 将本地仓库feat分支的commit(aaa123)复制到远程project1和project2的feat分支
步骤
- git log 查看commit信息,记录好commitID(aaa123)
- git cherry-pick aaa123 (如果是多个commit记录可自行搜索,这里不再赘述)
- 将所需远程仓库拉到本地:
- git remote add project1 url1
- git fetch project1
- git remote add project2 url2
- git fetch project2
- 拉取远程仓库分支到本地 切换到远程仓库分支 git checkout project1/feat => 生成游离分支 => 保存游离分支到本地 git branch tmep1/feat => tmep1/feat连接到远程仓库 git pull project feat
- cherry-pick 内容到tmep1/feat分支 git cherry-pick aaa123
- tmep1/feat提交到远程仓库project1的feat 分支 git push project1 HEAD:feat (project为remote名字,feat为远程的分支)