习惯先在原有代码上做修改,改完再创建新的远程分支提交
所以就牵扯到在已有修改的时候,如何将当前修改提交到新的分支上
1 创建无修改的新分支,直接提交
假设远程原分支是branchA,本地已经做了修改的brancA进化成了branchA+,
远程仓库从branchA新建了一个分支branchB,本地可以直接新建branchB做提交
1 更新本地分支列表
git remote update origin --p
不更新可能会出现找不到branchB,新建失败
当然也可以先跳过试试,如果本地拉了最新代码,当然会有远程分支列表的信息。
2 在本地branchA+里直接新建本地分支
git checkout -b branchB origin/branchB
brancA+会直接切换成branchB,所作修改也会跟着到branchB
3 一套提交操作
git add .
暂存所有修改
git commit -m "提交备注"
git push origin branchB
2 创建的新分支已经有了修改,git stash 暂存本地修改
假设远程原分支是branchA,本地已经做了修改的brancA进化成了branchA+,
远程仓库从branchA新建了一个分支branchB,branchB上同事提交了新的代码,进化成了branchB+
1 暂存本地修改
直接按照第一种情况的第二步来,可能会因为本地冲突提示错误,新建分支失败
那如果新建成功了,那就按照第一种情况来嘛,更方便,反正我好像没遇到过
git stash
暂存所有本地修改
如果有新增的文件,使用
git stash -u
保存注释用
git stash save '备注信息'
新增文件+注释用
git stash save '备注信息' -u
暂存修改后branchA+退化为branchA
2 更新本地分支列表
git remote update origin --p
3 在本地branchA里直接新建本地分支
git checkout -b branchB origin/branchB
brancA会切换成branchB
origin后接远程仓库里的分支名,表示根据远程仓库中的branchB新建本地分支branchB
4 提出暂存的本地修改
git stash apply 0
最后一次暂存的修改会被释放
git stash list
查看保存的记录列表,用id作为标识符
如
stash@{0}: WIP on develp: 0cc79b0 commit备注信息
如果暂存了多次,需要apply多次哈
5 解决完冲突就可以提交一波
git add .
暂存所有修改
git commit -m "提交备注"
git push origin branchB
3 现在本地创建分支,直接提交到另一个分支
1 暂存本地修改
git stash
2 新建本地分支branchB
git checkout -b branchB
brancA会切换成branchB,但是没有关联远程仓库的branchB
3 应用暂存的修改
git stash pop
4 直接提交到另一个分支
git push origin branchB:branchB
冒号前是本地分支名,冒号后是远程仓库分支名,如果两个名称一样,可以只写一个,就像前面两个方案的提交
在远程仓库会同步新建分支branchB
5 将当前分支与远程分支关联
git branch --set-upstream-to=origin/branchB
建立连接之后可以直接push,不写分支名
版权归原作者 梦想身高1米8 所有, 如有侵权,请联系我们删除。