Git常见问题与总结
在实际开发中遇到的一些 Git 常现的问题与总结。
文章中的origin
是git remote add origin <url>
添加远程仓库的别名。
1 操作仓库前的必要检查与配置
文件名大小写
1 | # 查看是否忽略文件名大小写 |
文件名过长导致的错误
1 | # 先查看默认的配置 |
2 怎么比较优雅的获取远程仓库
1 | # clone 远程仓库的默认分支到本地 |
3 分支重命名
VSCode 中打开控制台,输入 git branch --help
,弹出 branch
相关网页,根据提示操作。
tops
安装 git 时,本地安装目录中会存在相关 git-doc 资料,路径如
E:\Program Files\Git\mingw64\share\doc\git-doc
win 系列的系统,cmd 命令中输入git branch --help
也有效。
具体操作如下
1 | # 本地分支重命名 |
! 注意
当前本地分支与远程分支对应保持一致
4 分支删除
1 | # 删除本地分支 |
5 打标签
记录项目的发版,常用附注标签
1 | # 打附注标签 |
tag 与 release
tag 是 git 提供的功能,release 是如 github、gitee、gitlab 等代码托管平台基于 git tag 的锦上添花,对 git 的 tag 功能的增强。
6 git flow
7 回退代码到指定版本
1 | # 确定需要回退的分支,如 master |
8 常用的查看提交历史命令
1 | # 显示分支图 |
9 撤销指定的提交内容
1 | git show <commit id> |
-m
选项接收的参数是一个数字,数字取值为 1 和 2,也就是 Merge 行里面列出来的第一个还是第二个,其含义用来保留某个分支。
git revert
是用一次新的commit来回滚之前的commit。
10 代码临时保存
如果你正在写开发新分支的需求,别的分支线上突然有 bug 需要修复,你或许只能被迫先提交写的代码,这种情况可以用以下命令操作:
1 | # 工作区的代码临时保存 |
如果有未跟踪的文件,需要先git add <file>
,再git stash
。因为git stash
只临时保存已跟踪的文件。
记录指令
1 | # 保存未commit的代码 |
11 设置默认分支
一般不推荐全局设置默认分支,可根据项目需要设置默认分支。如 hexo + github 搭建的静态博客,静态资源所在的分支名一般命名为gh-pages
,设置其为默认分支。
1 | git config --local init.defaultBranch gh-pages |
12 取消暂存区的更改
更改的文件不会还原到未更改的状态,只是把已更改的文件从暂存区移到了工作区,这个移到,美其名曰撤销。
1 | # 撤销暂存区的某个文件到工作区 |
13 恢复误删分支
1 | # 结合工具GitLens过滤出误删分支的Author,找到最近的一次commit id |
不用担心是谁创建的恢复分支,因为你并没有 commit,只是依赖指定的 commit id 创建分支,不会有个人信息记录。
相关链接
[1] A successful Git branching model
[2] Introduction to GitLab Flow
[3] git 速查清单
[4] git reset
[5] git 备忘单
[7] Git 之 revert