git 分支之间代码同步 不同方式不同解决-前端-E先生的博客
Java
MySQL
大数据
Python
前端
黑科技
大语言模型
    首页 >> 互联网 >> 前端

git 分支之间代码同步 不同方式不同解决

[导读]:场景一:代码已完全提交的分支A,与代码已完全提交的分支B,需要将A全部同步到B//比如将easy分支代码同步到mastergitcheckoutmastergitmergeeasy//或者gitcheckouteasy&n...

场景一: 代码已完全提交的分支A,与代码已完全提交的分支B,需要将A全部同步到B


// 比如将easy分支代码同步到master
    git checkout master
    git merge easy
// 或者 
    git checkout easy
    git rebase master

    注意:关于merge与rebase的区别

场景二: 代码已完全提交的分支A,与代码已完全提交的分支B,需要将A某个或某些commit提交同步到B

【基础命令】

  git cherry-pick <commit id>
  // 将某次提交节点的代码,拉取过来,会在当前分支生成一个新的提交(新的commit ID);
  git cherry-pick <commit A> <commitB> 
  // 将A、B两个提交应用到当前分支,会在当前分支生成两个对应的新提交(新的commit ID);
  git cherry-pick A^..B
  // 将A到B的所有提交,转移到当前分支,生成一系列对应的提交(新的commit ID);
  // ^是包含A,不带^则不包含A

【遇到冲突时,chery pick 会停下来】

    选项一:解决冲突,然后将修改的代码加入暂存区(git add .)下一步让cherry-pick继续:git cherry-pick --continue
  选项二:git cherry-pick --abort  放弃合并,代码会到操作前的样子

【拉取另一个仓库的提交节点】


 git remote add target <gitUrl>   //添加该库为远程仓库
 git fetch target             // 将远程代码抓取到本地
 git log target/master         // 获取远程仓库的哈希值
 git cherry-pick <commitHash>     //抓取对应的提交.

    注意:cherry pick 类似 复制 + 粘贴

场景三:  尚未提交commit节点的分支A,将本次尚未提交commit的分支代码同步到分支B

【基本使用】

 git stash save <save message>
 // 执行存储,添加备注,方便查找
 // 只有git stash 也可以,但是查找时不方便识别
 git stash apply 
 // 应用某个存储,默认应用最近的第一个stash@{0}
 // 如果要应用其它个,使用mum指定第几个;git stash apply stash@{num}
 // 不会把当前应用的存储从存储列表中删除
 git stash pop
 // 功能与apply相同,不同的是会把当前应用的存储从存储列表中删除
 git stash list
 // 输出存储列表,查看存储里哪些
 git stash show
 // 显示某个存储具体的改动
 // 默认显示第一个,如果要显示其它个:git stash apply stash@{num}
 git stash drop stash@{num}
 // 从存储列表中删除某个存储,仅仅只是删除
 git stash clear
 // 删除所有存储,清空存储列表

     注意: 没有在git版本控制中的文件,是不能被git stash存储起开的,需要先git add;stash 类似 剪切 + 粘贴

image.png



本文来自E先生的博客,如若转载,请注明出处:https://javajz.cn

留言区

联系人:
手   机:
内   容:
验证码:

历史留言

欢迎加Easy的QQ