git命令再学习(文中有宝藏)

50 阅读2分钟

目录

git.png

今天朋友推荐了一个学习git的可视化网站,我跟着重新学习了一遍git,相关目录做成了思维导到,接下来我们一起看一下吧

远程

远程分支

远程分支o/main反映了远程仓库的状态(上次通信),远程分支的命名规范<remote name>/<branch name>,

git fetch

  1. 从远程仓库下载本地确实的提交
  2. 更新本地的o/main
  3. git fetch 并不会改变你本地仓库的状态。它不会更新你的 main 分支,也不会修改你磁盘上的文件

git pull

git pull == git fetch + git merge git pull --rebase == git fetch + git rebase

git push

git push不带任何参数的行为取决于git的一个名为push.default配置有关 git push <orgin> <place>连接远程仓库,把本地的place代表的分支提交推送上去,place可以是source:destination,代表本地的分支source推送到远程的destination分支 source如果为空则会删除远程分支

锁定的main

当分支被设置为只能通过pull request来更改,我们就不能直接push到main上,需要新建分支push后,再拉取push request(MR)。 锁定分支:在代码仓库-setting-branches-Lock branch

远程追踪

  1. git checkout -b <branchname> <o/branchname> 新建本地分支并绑定远程的分支,一般不用第二个参数
  2. git branch -u <orginname> <localbranchname>将本地的分支和远程分支对应

主要

交互式rebase

rebase命令后加--interactive,缩写-i,可以提供一个交互式UI界面,界面里可以进行如下操作:

  • 调整提交记录的顺序(通过鼠标拖放来完成)
  • 删除你不想要的提交(通过切换 pick 的状态来完成,关闭就意味着你不想要这个提交记录)
  • 合并提交。 遗憾的是由于某种逻辑的原因,我们的课程不支持此功能,因此我不会详细介绍这个操作。简而言之,它允许你把多个提交记录合并成一个。

cherry-pick

将某些提交复制到HEAD下面,比如git cherry-pick C1 C2

git commit

git commit --amend修改最近的提交

git tag与git describe

git tag一般用来打版本标识,在git里可以对hash进行标记,不可修改 git describe <branchname>用来显示当前最近的标签和提交次数

移动HEAD

git checkout main~^2~2,~代表向上,^后面加数字代表移动到其他父节点

网站

链接