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学习笔记/