error: Your local changes to the following files would be overwritten by merge
选择性提交 commit – git cherry-pick
当自己的分支时基于dev分支开发时,想把自己分支的某个 commit
记录提交到另一个分支如 test
,
可采用 git cherry-pick
找到提交记录中 commit
对应的 commitHash
,切换到 test
分支,执行如下命令
-
git cherry-pick
命令的参数,不一定是提交的哈希值,分支名也是可以的,表示转移该分支的最新提交。 - 转移多个提交
基于其他分支,创建一个新分支
创建完成后 push 到远程仓库
删除本地分支
-
error: Cannot delete branch 'xxx' checked out at 'xxxx'
此错误是在git
删除分支时报的错误,删除分支时,当前分支不能停留在要删除的分支上,要切换到其他任意分支,再去删除目标分支。 - 如果本地分支没有合并到其他分支,或者没有对应的远程分支,删除时则会提示这个错误。直接选择强制删除即可。
git 撤消已经提交的 commit
执行 commit
后,还没执行 push
时,想要撤销这次的 commit
git 切换分支时,本地有修改的代码
报错如下
解决方法
git 放弃本地修改,强制拉取更新
开发时,对于本地的项目中修改不做保存操作(或代码改崩),可以用到Git pull的强制覆盖,具体代码如下:
merge 问题 you need to resolve your current index first
解决方法:
第一种:处理冲突文件
合并多次提交的 commit
假设目前有两条 commit
记录
想要合并两个commit记录为一条
出现如下界面
其中需要注意的是以下命令
当我们要合并两条记录时,将第二条记录的 pick
改为 s
即可
保存后出现如下界面
这个界面需要我们处理提交信息的修改,如果只需要一个提交 message
,可把另一个message前面加上 # 号,也可以不做处理,直接保存,保存后再次查看两个记录就合并成一个记录了。
可能出现的问题,把第一条记录的 pick
改为了 s
注意不要合并先前提交的东西,也就是已经提交远程分支的纪录。
可使用其提示的命令 git rebase --edit-todo
,重新修改 rebase
时提示的信息,保存后再执行 git rebase --continue
修改提交的 meseage
信息
也可以直接执行 git rebase --abort
(会放弃合并,回到rebase操作之前的状态,之前的提交的不会丢弃),然后重新执行 git rebase -i