总结一下工作中遇到的git问题

举报
阿Q说代码 发表于 2022/04/15 11:11:54 2022/04/15
【摘要】 今天给大家总计一下工作中遇到的几个关于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 呢,其实只有几个命令

  1. 查看分支 git branch
  2. 切换分支 git checkout master
  3. 查看标签(tag版本) git tag
  4. 查看某个标签的详情 git show v2.22.0

commit d53dcc2287899e95cfd44a294ca3e5068e63022b

  1. 通过commit的id回退

git reset --hard fb479960c0cec5549463ae123d70bdd72ccf6be7

  1. 查看状态git status
  2. 提交 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 操作时,会出现这个错误提示!

解决办法:

  1. 删除.git   【rm -rf .git】  注意:会删仓库!会删仓库!会删仓库——此步可先不设置!
  2. 禁用自动转换,即将设置:git config --global core.autocrlf false
  3. 再重新初始化,并执行添加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说代码,也可以来技术群讨论问题呦,点赞之交值得深交!

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。