当前位置: 首页 > java >正文

git学习笔记

git clone

clone仓库:

git clone <仓库地址>

递归clone项目:

git clone --recurse-submodules <repo-address>

git checkout

从当分支上创建新分支:

git checkout -b <new-branch>

切换分支:

git checkout -b <other-branch>

从指定远程仓库中指定分支上创建新的分支:

git checkout -b <new-branch> <remote-repo>/<branch-name>

git branch

查看分支:

git branch # 默认查看本地分支
  • -v:显示commit sha以及commit title
  • -r:显示远程分支
  • -a:查看所有分支
  • -d:删除本地分支,-d <loccal-branch-name>

git stash

查看stash区内容:

git stash list

将所有更改加入到stash:

git stash

弹出stash栈顶:

git stash pop

清空stash:

git clear

git add

将指定文件加入到暂存区:

git add <filename>

将当前目录所有文件加入到暂存区:

git add .

git commit

显式指定作者名字邮箱:

git commit --author="<author-name>" -c <commit-sha>

对commit签名:

git commit -S -m <commit-message>

git reset

撤回未push的commit:

git reset --soft HEAD^ # 撤回一次
git reset --soft HAED2 # 撤回两次

git remote

添加新的远程仓库:

git remote add <local-remote-repo-name> <repo-address>

git fetch

抓取新分支:

git fetch <branch-name>

git push

push的同时设置上游分支:

git push -u <local-repo-name> <branch-name>
  • 当第一次推送本地分支到远程仓库时,使用git push -u会将本地分支与远程分支关联,这样以后就可以直接用git pushgit pull
  • 通过设置上游分支,git会知道该使用哪个远程分支来同步操作

git revert

如果想单独撤销某个commit修改,可以使用git revert

git revert <commit-hash>

同样的,如果不想立马提交,想要修改commit log,添加选项-n

git revert -n <commit-hash>

git bisect

1. 开始二分:

git bisect start

2. 标记初始坏commit:

git bisect bad

3. 标记好的commit:

git bisect good <commit-hash>

之后git会自动切换到中间commit

4. 开始查找:

如果是好的commit,标记:

git bisect good

否则:

git bisect bad

5. 结束查找:

最后git会给出错误的commit信息

执行命令结束查找

git bisect reset 

git format-patch

如果想要把最近提交的commit打包成patch方便别人使用,可以使用该命令:

git cherry-pick

如果想把远程仓库的某个commit应用到当前分支,可以使用以下命令:

git cherry-pick <commit-hash>

在新的commit中自动添加签名(Signed-off-by),这是一个git用来标识提交作者并确认对提交内容的合法性的一种方式

git cherry-pick -s <commit-hash>

如果不想立马提交,想要修改commit log,添加选项-n

git cherry-pick -n <commit-hash>

git tag

想知道哪些tag包含了某个commit

git tag --contain <commit-sha>

git log

查看一个文件提交时间线:

git log --oneline -- <文件路径>

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

http://www.xdnf.cn/news/9027.html

相关文章:

  • matlab实现激光腔长计算满足热透镜效应
  • JAVA 学习日志
  • 防火墙的SD-WAN功能
  • JAVA基础编程练习题--50道
  • 【Webtrees 用户手册】第 2 章 - 访客须知
  • 网易互娱游戏研发实习一面
  • ubuntu脚本常用命令
  • 海外呼叫中心优势与挑战分析
  • Bota Systems与Kinova合作:赋予AI机器人触觉能力
  • 如何给自研MCP加上安全验证
  • 类的设计模式——单例、工厂以及建造者模式
  • java-单列集合list与set。
  • 前端移动端上传图片pc端如何实时获取
  • 2 的 4 次方到 10 次方
  • android安卓模拟器中访问宿主机的开发接口服务
  • Axure元件动作七:移动、旋转、启用/禁用效果、置于顶层/底层详解
  • 芋道框架 - 接口设置匿名访问
  • 鸿蒙OSUniApp 实现的短信验证码登录功能#三方框架 #Uniapp
  • Numba模块的用法(高性能计算)
  • 类和对象(2)
  • LlamaFirewall:开源框架助力检测与缓解AI核心安全风险
  • C++项目中调用C#DLL的的方式
  • 人工智能工程师学习路线总结(下)
  • pytorch 15.2 学习率调度在PyTorch中的实现方法
  • 0526漏洞原理:漏洞验证-信息收集笔记(BurpSuite Professional,fofa,BUUCTF)
  • 互联网大厂Java求职面试:AI大模型与云原生架构融合中的挑战
  • ai学习--python部分-1.变量名及命名空间的存储
  • django三级联动
  • MongoDB 快速整合 SpringBoot 示例
  • 系统架构中的限流实践:构建多层防护体系(二)