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

Git相关命令

SSH密钥文件

Github里面S设置SH公钥有两者选择方式

  1. 账号下的每个仓库都设置一个公钥,因为GitHub官方要求每个仓库的公钥都不能相同,所以每个账号都要搞一个密钥(很麻烦)
  2. 给账号分配一个公钥,然后这个公钥就可以在这个账号下的每个仓库中使用(推荐)

生成密钥

ssh-keygen -t rsa -C "your_email@youremail.com"

验证密钥是否添加成功

ssh -T git@github.com

本地仓库处理

创建仓库

git init

将文件添加到仓库

git add .

将文件提交到仓库

git commit -m "message"

修改最新提交的commit

git commit --amend

回滚到特定版本

git reset --hard HEAD^	#回滚到上一版本
git reset --hard HEAD~3	#回滚到3次版本之前,以此类推可回到n次版本之前
git reset --hard commit_id

查看仓库当前状态

git status

更改分支名称

git branch -m oldNme newName

远程仓库处理

删除远程分支

git push --delete origin oldName

克隆仓库

git clone <repo>

连接远程仓库

git remote add origin git@github.com:yourName/repositoryname.git
or
git remote add origin https://github.com/yourName/repositoryname.git

从远程仓库pull到本地仓库

git pull origin main//因为黑命贵,所以master改main了。。。。这里好坑

从本地push到远程仓库

git push origin main

.gitignore文件

当文件已经提交后才记起来没有写.gitignore文件的处理方法:

git rm -r --cache . #不要忘了后面的那个"."
git add .
git commit -m "重新添加.gitignore文件"

git rebase命令

情景再现:commit太多次,想要将其合并(广义上的删除)

如图,共有4此提交

git log命令可以看到,共有4次提交,想要合并其中的“增加4.1和4.2文件”和“加入3.1和3.2文件”,将其表达为“增加3.1,3.2,4.1,4.2文件”。(可以使用git log --pretty=oneline命令让commit一行一行输出)

操作

git rebase -i commit_id(commit_id只需要简写前面六位字母即可,不需要全部填上去)

以上命令的commit_id表示的是将其前面的commi_id列入编辑状态,例如此处我输入git rebase -i 88480a ,则可以对411b015a9bb68f0dd1这三个commit进行编辑。(也就是说分支最少会剩余2个commit)

进入编辑页面

image-20220331003630124

前缀的意思:

  1. pick保留该commit,缩写:p
  2. squash使用该commit但是合并到前一个的commit之中去,缩写:s,在某种意义上来说就是删除。该步骤结束后会弹出窗口对合并后的commit进行编辑
  3. reword类似于pick,但是会弹出窗口,可以修改commit的信息,缩写:r
  4. edit类似于reword可以修改commit,会将commit的修改放置在接下来的amending中,也比较方便,缩写:e
  5. fixupsquash类似,但是会直接舍弃其commit信息,缩写:f
  6. exec执行shell命令(没用过)
  7. drop删除某一commit

此处将“增加4.1和4.2文件”前的pick更改为squashfixup也可以,就不会弹出窗口了),关闭编辑器,会弹出以下窗口

image-20220331111257663

默认最后的commit会有两个合并的commit共同组成,也可以在这里进行修改,例如我改成这样一行显示的:

image-20220331111455061

合并结果就会变成

image-20220331111542047

PS:每次操作之后记得都要ctrl+s保存

关于noop

当我们选取了最新的commit之后,就会显示noop,表示在这之前没有更新的commit可供操作,例如在本例中我输入git rebase -i fb083c,则会显示noop:

image-20220331111830269
http://www.lryc.cn/news/135662.html

相关文章:

  • 《HeadFirst设计模式(第二版)》第八章代码——模板方法模式
  • RESTful API,以及如何使用它构建 web 应用程序
  • Git+Gitee使用分享
  • 【3D激光SLAM】LOAM源代码解析--transformMaintenance.cpp
  • DiscuzQ 二开教程(7)——二次开发版本部署文档
  • u盘数据丢失但占内存如何恢复?不要着急,这里有拯救方案
  • springboot日志文件名称为什么叫logback-spring.xml
  • Mysql 开窗函数(窗口函数)
  • 计算机视觉之图像特征提取
  • 【面试经典150题】移除元素·JavaScript版
  • Cesium 相机的三种放置方式
  • 看了我这篇帖子,你还会觉得制作电子杂志很难吗?
  • SRE 与开发的自动化协同 -- 生产环境出现 bug 自动生成异常追踪
  • 【简单认识Docker基本管理】
  • 设备管理系统是什么?的修设备管理系统有什么功能?
  • Docker安装并配置Pushgateway
  • 汽车OTA活动高质量发展的“常”与“新”
  • C++信息学奥赛1121:计算矩阵边缘元素之和
  • Android Selector 的使用
  • k8s集群中service的域名解析、pod的域名解析
  • Shell 编程快速入门 之 数学计算和函数基础
  • 学习php中如何获取pdf文件中的文本内容
  • 分布式数据库架构:高可用、高性能的数据存储
  • Python工具箱系列(四十)
  • 【Hibench 】完成 HDP-Spark 性能测试
  • 【C++奇遇记】内存模型
  • Debootstrap 教程
  • MySQL之InnoDB引擎
  • API自动化管理: 从繁琐到轻松
  • Databend 开源周报第 107 期