git切换分支导致代码丢失 ???

2,350 阅读1分钟

最近切换分支老是遇到问题,因为需要将修改内容带到dev分支,根据commit分为两种情况:

master分支代码已修改并commit

方法1:合并分支

git push // 将当前修改提交远程服务器
git checkout dev
git merge master 

方法2:复制修改

git log  // 查看刚刚提交的的commit id
git checkout dev
git cherry-pick <commit id>  // git cherry-pick 把master分支一个提交复制到当前分支

master分支代码已修改并未commit

我使用的是github桌面版,通过这个工具切换分支时,有两个选项

leave my changes on xxx
将master分支的修改stash到缓存区,最后切回master分支时,restore一下就可以回来,对dev分支没有任何影响

Bring my changes to xxx
将master分支的修改带到dev分支去,此时如果还原带到dev分支的修改内容,那么master分支上刚刚带过去的内容也会被还原。

我们选择 Bring my changes to xxx 就可以将修改内容带到dev分支,再commit和push就可以啦。