Git使用集锦(常见命令及使用场景)

基础(本地仓库)

git commit(提交)

  • 创建一个新的提交记录:git commit

git branch(分支)

  • 使用分支=我想基于这个提交以及它所有的父提交进行新的工作:git branch newName
  • 切换到新的分支:git checkout <name>git
  • 创建新的分支并同时切换到该新分支:git checkout -b <your-branch-name>

git merge(分支合并)

  • 合并两个分支时会产生一个特殊的提交记录,它包含两个父节点
  • 合并分支=我要把这两个父节点本身及它们所有的祖先都包含进来
  • 将bugFix合并到main里:git merge branchName(前提是当前分支为main分支)完整过程如下图所示:

image.png

 git rebase(分支合并)

  • 取出一系列的提交记录,复制它们并在另一个地方逐个的放下去,可以创造更线性的提交历史
  • 转移分支内容:git rebase main(将bugFix分支的内容复制到main分支下,看起来是顺序开发,实际上还是并行开发)
  • 分支内容转移后,提交记录依然在原来的位置,main下方的记录只是一个副本

image.png

 在提交树上移动(head) 

  • 对当前检出记录的符号引用:指向正在其基础上进行工作的提交记录
  • 总是指向当前分支上的最近一次提交记录(通常指向分支名),大多数修改提交树的git命令都是从改变head的指向开始的

相对引用

  • 查看提交记录的哈希值:git log
  • 向上移动一个提交记录:^

image.png

  • 向上移动多个提交记录:~<num> 不跟数字时默认值向上移动一次
    • 如:git checkout HEAD~4
  • 强制修改分支位置:-f

image.png

撤销变更(git reset/git revert)

  • git reset(本地变更,对远程分支无效)
    • 向上移动分支,原来指向的提交记录就跟从来没有提交过一样
    • 当reset将main分支移回到c1提交之后,c2做的变更还在,只是处于了未加入暂存区的状态
  • git revert(可远程变更)
    • revert之后的更改可以推送到远程仓库与别人分享
    • revert变更之后会多一个新的提交记录,这个新的提交记录实际上是用来撤销原来的提交的,也就是说这个新的提交的状态与原来提交的上一级提交是一样的。如下图中,c2'的状态和c1的状态其实就是相同的

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值