git branch的详细理解

1.git checkout 哈希值,这种情况下会进入游离状态,HEAD会指向本次提交

git checkout c2

  • c2 是分支名时:执行 git checkout c2 会将你的工作目录和 HEAD 切换到 c2 分支的最新提交,效果等同于 git checkout c2git checkout main 是一样的,因为 c2main 指向同一个提交。

  • c2 是提交哈希时:执行 git checkout c2 会使 HEAD 指向这个具体的提交 c2,你会进入一个“游离头指针”(detached HEAD)状态。此时,你的工作目录会更新为 c2 提交的内容,但你不在任何分支上工作。如果你创建新的提交,它们不会被 main 分支引用,除非你创建一个新的分支来保存这些更改。

git checkout main

  • 执行 git checkout main:无论 main 分支指向哪个提交(在这个情况下是 c2),执行这个命令会将你的工作目录和 HEAD 切换到 main 分支的最新提交。如果 main 分支最新的提交是 c2,你实际上会看到与 git checkout c2 相同的文件状态和内容。

2.git rebase

  • git rebase <base>:将当前分支上的提交“移动”到 <base> 分支上。在合并操作时,<base> 分支会作为基点,重新应用当前分支的提交。

git checkout feature-branch git rebase main​​​​​​
  • 这将把 feature-branch 的提交重新应用到 main 的最新提交之上。

  • git rebase <分支1> <分支2> 把2分支变基到1分支上,

使用 git rebase bugFix side,会将,c4,c5,c6都变基到bugFix上,而最后git rebase side another,只会将another移动到side后,rebase和cherry pick的区别,rebase是变基,是将一系列提交的基础更改为另一个分支的最新状态,

3.git branch -f

git branch -f main HEAD~3 是一个 Git 命令,用于强制将 main 分支的指针移动到当前分支的前三个提交的位置。

4.git reset 和 git revert

git reset(后面跟想要回到的id)

  • 作用:用于重置当前分支的指针到指定的提交。可以修改暂存区和工作目录。

  • 用法

    • git reset --soft <commit-id>:重置指针到 <commit-id>,但保留暂存区和工作目录中的更改。

    • git reset --mixed <commit-id>(默认选项):重置指针到 <commit-id>,保留工作目录中的更改,但清空暂存区。

    • git reset --hard <commit-id>:重置指针到 <commit-id>,并丢弃暂存区和工作目录中的所有更改。

  • 影响:历史记录被修改,不适合已推送到共享仓库的分支。

git revert(后面跟想要撤销的id

  • 作用:创建一个新的提交,以反向操作指定的提交。不会改变历史记录。

  • 用法

    • git revert <commit-id>:生成一个新的提交,该提交撤销 <commit> 的所有更改。

  • 影响:保持历史记录不变,适合撤销已推送到共享仓库的更改。

5.git cherry-pick

1.切换到目标分支

git checkout main

2.应用特定提交

git cherry-pick abc1234

这将把 abc1234 这个提交的更改应用到 main 分支,并创建一个新的提交。如果发生冲突,你需要解决冲突,然后使用 git cherry-pick --continue 继续操作。

6.git describe

git describe 的语法是:

git describe <ref>

<ref> 可以是任何能被 Git 识别成提交记录的引用,如果你没有指定的话,Git 会使用你目前所在的位置(HEAD)。

它输出的结果是这样的:

<tag>_<numCommits>_g<hash>

tag 表示的是离 ref 最近的标签, numCommits 是表示这个 reftag 相差有多少个提交记录, hash 表示的是你所给定的 ref 所表示的提交记录哈希值的前几位。

ref 提交记录上有某个标签时,则只输出标签名称

7.git branch bugWork HEAD~^2~

HEAD后跟^2,表示回退到其第二个父节点

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值