git学习笔记
git clone
clone仓库:
1 | |
递归clone项目:
1 | |
git checkout
从当分支上创建新分支:
1 | |
切换分支:
1 | |
从指定远程仓库中指定分支上创建新的分支:
1 | |
git branch
查看分支:
1 | |
- -v:显示commit sha以及commit title
- -r:显示远程分支
- -a:查看所有分支
- -d:删除本地分支,
-d <loccal-branch-name>
git stash
查看stash区内容:
1 | |
将所有更改加入到stash:
1 | |
弹出stash栈顶:
1 | |
清空stash:
1 | |
git add
将指定文件加入到暂存区:
1 | |
将当前目录所有文件加入到暂存区:
1 | |
git commit
显式指定作者名字邮箱:
1 | |
对commit签名:
1 | |
git reset
撤回未push的commit:
1 | |
git remote
添加新的远程仓库:
1 | |
git fetch
抓取新分支:
1 | |
git push
push的同时设置上游分支:
1 | |
- 当第一次推送本地分支到远程仓库时,使用
git push -u会将本地分支与远程分支关联,这样以后就可以直接用git push和git pull - 通过设置上游分支,git会知道该使用哪个远程分支来同步操作
git revert
如果想单独撤销某个commit修改,可以使用git revert
1 | |
同样的,如果不想立马提交,想要修改commit
log,添加选项-n
1 | |
git bisect
1. 开始二分:
1 | |
2. 标记初始坏commit:
1 | |
3. 标记好的commit:
1 | |
之后git会自动切换到中间commit
4. 开始查找:
如果是好的commit,标记:
1 | |
否则:
1 | |
5. 结束查找:
最后git会给出错误的commit信息
执行命令结束查找
1 | |
git format-patch
如果想要把最近提交的commit打包成patch方便别人使用,可以使用该命令:
git cherry-pick
如果想把远程仓库的某个commit应用到当前分支,可以使用以下命令:
1 | |
在新的commit中自动添加签名(Signed-off-by),这是一个git用来标识提交作者并确认对提交内容的合法性的一种方式
1 | |
如果不想立马提交,想要修改commit
log,添加选项-n:
1 | |
git tag
想知道哪些tag包含了某个commit
1 | |
git log
查看一个文件提交时间线:
1 | |
git hook
- pre-commit:在提交之前运行。可以用来检查代码格式、运行单元测试等
- prepare-commit-msg:在提交信息编辑器打开之前运行。可以用来自动生成提交消息模板
- commit-msg:在提交信息编辑器关闭之后运行。可以用来验证提交信息的格式
- post-commit:在提交完成之后运行,可以用来发送通知或执行其他后续任务
- pre-rebase:在变基操作之前余小宁,可以用来检查变基之前的状态
- post-checkout:在git checkout命令执行之后运行,可以用来设置特定文件的状态
- post-merge:在合并操作完成之后运行,可以用来重新编译项目或执行其他合并后的任务。
git 签名
参考资料:https://docs.github.com/zh/authentication/managing-commit-signature-verification/about-commit-signature-verification#gpg-commit-signature-verification
git学习笔记
http://example.com/2025/05/26/git学习笔记/