总结一下工作中遇到的git问题
哈喽大家好,我是阿Q!今天给大家总计一下工作中遇到的几个关于git的问题及解决办法
删除某次提交
方法一
第一步: git log --pretty=oneline 查看当前提交的日志
第二步: git reset --soft XXX XXX是commitID(d6cdbba417…) 回退当前工作空间的上一个版本,并且保留代码更改
第三步: git log --pretty=oneline 再次查看当前提交的日志,确认是否成功撤销,当然,你也可以不看,基本上都会成功,保险一下,看看呗
第四步: git push origin master --force 强制提交当前版本号,以达到撤销版本号的目的.必须添加参数force进行强制提交,否则会提交失败,报错原因:本地项目版本号低于远端仓库版本号。(master 代表分支名称,默认是 master,或者也可以直接用 git push --force)
注意:这种强制提交的方法只有owner的时候可以用
方法二
1、git log 显示从近到远的日志记录,按向下键来查看更多,按 Q 键退出查看日志
2、git log --pretty=oneline 简洁显示日志记录
3、git reset --hard commit_id
reset 一下 HEAD 就好啦
注意:工作空间的代码的改动就没啦
如果想保留工作空间的代码只是撤销commit,请执行下面的命令:
git reset --soft HEAD^
。HEAD^的意思是上一个版本,也可以写成HEAD~1
,如果你进行了2次commit,想都撤回,可以使用HEAD~2
GIT回滚master分支到指定tag版本
master 版本上线以后一般要打一个 tag 备份,以防事态有变,这是一个好习惯,如果以后有问题也可以放心的回滚版本,那么怎么用 tag 版本覆盖 master 呢,其实只有几个命令
- 查看分支 git branch
- 切换分支 git checkout master
- 查看标签(tag版本) git tag
- 查看某个标签的详情 git show v2.22.0
commit d53dcc2287899e95cfd44a294ca3e5068e63022b
- 通过commit的id回退
git reset --hard fb479960c0cec5549463ae123d70bdd72ccf6be7
- 查看状态git status
- 提交 git push origin master或者加入-f参数,强制提交,远程端将强制跟新到reset版本
git push -f origin master
对应bug处理
报错信息:
warning: LF will be replaced by CRLF in .idea/vcs.xml.
The file will have its original line endings in your working directory.
原因分析:
windows 中的换行符为 CRLF,而 Linux 下的换行符为 LF(使用 Git 命令行 Git Bash,实际上就是相当于 linux 环境),所以在执行 git add xxx.xx 操作时,会出现这个错误提示!
解决办法:
- 删除.git 【rm -rf .git】 注意:会删仓库!会删仓库!会删仓库——此步可先不设置!
- 禁用自动转换,即将设置:git config --global core.autocrlf false
- 再重新初始化,并执行添加add操作:
- 【git init】
- 【git add xxx.xx】
配置介绍:
core.autocrlf 是 git 中负责处理 line ending 的变量,可以设置3个值:true,false,inout。
- 设置为 true【config --global core.autocrlf true】:当设置成 true 时,这意味着你在任何时候添加(add)文件到 git 仓库时,git 都会视为它是一个文本文件(text file)。它将把 crlf 变成 LF。
- 设置为 false【config --global core.autocrlf false】:当设置成 false 时,line endings 将不做转换操作。文本文件保持原来的样子。
- 设置为 input 时,添加文件 git 仓库时,git 把 crlf 编程 lf 。当有人 Check 代码时还是 lf 方式。因此在 window 操作系统下,不要使用这个设置。
阿Q将持续更新
java
实战方面的文章,感兴趣的可以关注下公众号:阿Q说代码
,也可以来技术群讨论问题呦,点赞之交值得深交!
- 点赞
- 收藏
- 关注作者
评论(0)