这是我参与更文挑战的第11天,活动详情查看: 更文挑战
前言
本文将介绍一些git操作指令
1.删除本地分支报错
直接当前分支在feature-echarts时去删除feature-echarts,结果报错
git -c diff.mnemonicprefix=false -c core.quotepath=false --no-optional-locks branch -d feature-echarts
error: Cannot delete branch 'feature-echarts' checked out at 'C:/GitCode/WayOnSpringBoot'
Completed with errors, see above.
复制代码
需要先切换到其他分支上才能删除当前分支。
2.删除远程分支
git中分支,点击下图中跳转到分支管理页面
直接用命令行删除
先检查远端都有什么分支
git branch -a
复制代码
删除
git push origin --delete feature-666
复制代码
如果分支太多进入了编辑状态
输入eq就能退出
3.Merge 中途放弃
You have not concluded your merge (MERGE_HEAD exists).
merge的时候不想merge了,代码冲突实在是太多了,这个时候想要放弃,重新拉取,却发现报错无法pull了
可以放弃本地修改,
$ git reset --hard
HEAD is now at d4222ae
复制代码
这时候就对本地的状态进行硬重置了,所有的更改都会被丢弃无法找回,执行之前一定要确定是不是要丢弃本地文件!!!
4.查找被忽略文件都有哪些
有的时候gitignore
里面被填了一些规则,导致文件被忽略了,如何检查出来
比如gitignore
文件中被误添加了一个src
这个条件,这个会导致所有新加的文件找不到
那么如何确定新加的文件是被忽略了呢
使用命令(git的1.7.6版本之后)
git status --ignored
复制代码
可以看见所有被忽略的文件
可以看到我们新增加的testDemo这个文件被忽略了,其他之前在添加gitignore这条规则之前的src下面的文件仍然会被跟踪
也可以用git check-ignore 全路径文件名
5.git 提交的准备push的回滚到跟远端test一致
git reset --hard origin/test
复制代码
6. git 报 refusing to merge unrelated histories
git pull origin master后面跟上参数–allow-unrelated-histories
7.在test上进行了revert之后,dev上对相关的文件的修改无法推送到test
这个应该将test先merge到dev上,保证了两边的代码一致后,再将对应的revert重新revert回去
8. 本地的已经commit,但没有push,将之撤回
直接选择要撤回的commit之前的commit,reset
选择soft即可,这跟前面的hard的区别是不会将本地的暂存区的数据丢弃!!
用命令就是
git reset --soft origin/test
复制代码
9.一次revert多个提交
git -n revert 65616527d^..74ed3c768
复制代码
将开始和结束的commit 放入即可。
加上-n
参数可以将多个提交一个revert就提交过去,如果不加-n
参数,就会将这几个提交逐个revert回去,有几个提交就会有几个revert
总结
今天我们讲解了一些git命令,敬请期待明天的文章,下篇再见!