一、常用操作
1. 日志查看
查看哪位用户何时提交文件,附带了每次提交的变化,并显示对应提交的校验码。
git log --stat
二、撤销回退
1. 撤销提交
(1) 撤销提交
如果发现提交有误想撤销已添加到缓存区的文件,输入下面命令即可。
该命令用于撤销已 commit
但未 push
的文件,soft
表示只撤销提交,hard
表示撤销提交并删除本地文件中本次提交内容。
git reset --soft HEAD^
(2) 删除文件
git rm test.txt # 同时从暂存区和本地目录下删除文件。
git rm --cached test.txt # 只删除缓存区文件,保留本地文件
2. 版本回退
(1) 回退为上个版本
一个 ^
表示退回到上个版本,两个则退回到上上个版本提交。
其中 --hard
表示回退并移除本地变化,--soft
则只移除 Git
提交但保留本地变更。
git reset --hard HEAD^
(2) 回退到指定版本
我们需要先查看每次提交命令对应的 ID
,显示的最前面 7
位字符就是对应命令的 ID
了。
在输入 ID
的时候可以不用完整输入七位编码,正常情况 4
到 5
位即可,系统会自动匹配。
git reflog # 查看ID
git reset --hard <ID> # 回退指定版本
(3) 撤销编辑
如果文件修改了但尚未通过 add
添加到暂存区,则会回退到你上次 commit
一样的状态;若在添加到暂存区后进行了修改文件,则会回到添加到暂存区后的状态。
git checkout -- test.txt
三、分支操作
1. 查看分支
用于查看存在哪些分支,以及当前在哪个分支上,在初始化仓库时会自动创建 master
分支。
git branch
2. 分支管理
(1) 创建分支
其中 branch-name
为你创建的分支名。
git branch <branch-name>
(2) 切换分支
通过 checkout
命令切换当前所在分支。
git checkout <branch-name> # 创建分支
git checkout -b <branch-name> # 创建分支并切换到该分支
(3) 删除分支
通过 -d
表示删除分支。
git branch -d branch-name
3. 合并分支
将对应分支的内容合并到当前分支,如要将 分支a
合并到 分支b
,则需要先切换到 分支b
再输入命令。
git merge <branch-name>
四、标签操作
通过上面的 git reflog
可以看到每次提交命令都有对应唯一的 ID
码,但它是系统随机生成在记忆方面十分困难,所谓打标签就好比给其取一个更好记的别名。
1. 标签创建
在当前位置打标签,其中 v1.0
可以换成你需要的标签。
git tag -a v1.0 -m "标签备注"
给之前提交的打标签,将其中 id
替换成对应提交记录的 id
。
git tag -a v1.0 <id>
2. 查看标签
通过 show
命令即可查看对应标签的详细信息。
# 列出所有标签
git tag
# 查看指定标签信息
git show v1.0
五、常见异常
1. 连接重置
提示 OpenSSL SSL_read: Connection was reset, errno 10054
。
git config --global http.sslVerify "false"
2. 文件名过长
提示 Filename too long
说明提交的文件名称过长,需要设置放行长文件。
git config --global core.longpaths true
3. 大小写忽略
在 Git
仓库中默认是不区分文件大小写的,如文件 aa.txt
和 AA.txt
系统默认是同一个文件,若需要开启大写识别需要进行配置。
打开 .git/config
文件,将文件中的 ignorecase
设置为 false
即可。
repositoryformatversion = 0
filemode = false
bare = false
logallrefupdates = true
symlinks = false
# 是否忽略大小写,设置为 false
ignorecase = false