主要是想总结一下自己在git使用中遇到的一些问题(个人小总结,持续更新)
1.如何开启github的二次验证
工作中需要用到github的二次验证,目的也很简单,就是为了保证账号的安全性。跟网银口令一样。如何开启二次验证在官网上也有步骤。这里只作下简单的陈述。
(1)打开github的Settings,点击Security
(2)最上面点击Enable two-factor authentication按钮,开启二次验证
(3)点击set up using an app,保存recovery codes,这个一定要保存好,这是你无法二次验证时候恢复的凭据。建议保存在网盘。
(4)手机下载名称为Authy的app,有的应用商店没有,建议浏览器下载
(5)用Authy扫描二维码,将收到的短信6位验证码输入完成二次验证
otpauth://totp/GitHub:LyaLya?secret=qmli3dwqm53vl7fy&issuer=GitHub (二维码自动识别)
2.Git修改分支名称
(1)重命名远程分支对应的本地分支
git branch -m oldName newName
(2)删除远程分支
git push --delete origin oldName
(3)上传新命名的本地分支
git push origin newName
(4)把修改后的本地分支与远程分支关联
git branch --set-upstream-to origin/newName
如果一开始本地分支没有推送到远程,则修改分支名执行第一步就可以。如果已经推送到远程,则要执行完整的步骤。
3.Git版本回退
误操作以后,版本回退非常重要。版本回退主要是revert和reset命令。
revert 译为提交回滚,作用为忽略你指定的版本,然后提交一个新的版本。新的版本中已近删除了你所指定的版本。
reset 为 重置到这次提交,将内容重置到指定的版本。git reset 命令后面是需要加2种参数的:–-hard 和 –-soft。这条命令默认情况下是 -–soft。
(1) 版本回退
git reset --hard HEAD^ 回退到上个版本
git reset --hard commit_id 退到/进到 指定commit_id
(2)推送到远程
git push origin HEAD --force
我编译器用的pycharm,其自带的分支管理还是很好用的。可以直接用pycharm进行版本回退。然后推送到远程。如下图所示,只需点击其中的一个commit,选择reset current branch to
here,在选择回退模式就好。
4.Git解决冲突
冲突问题很常见,这个感觉需要具体问题具体分析。我一般是git status查看冲突的文件。
总之冲突问题不要怕,只要找到冲突的源头并解决就好了,并且git也会有解决冲突的提示。
5.master and develop are entirely different commit histories.
dev 和 master存在不同的提交历史。最近在提交PR的时候遇到这个问题,导致PR不能提交。我们可以直接从字面意思上进行解决,就是进行commit的合并。git cherry-pick是干这个的。我的解决相对粗暴,直接合并master到develop,然后就可以提交PR了。这个问题到底是如何产生的,我还不是很明白。