git branch 高级用法

新建一个分支并且使分支指向指定的提交对象

使用命令:git branch branchname commitHash

我们现在本地库中只有一个 master 分支,并且在 master 分支有三个提交历史。

需求:创建一个 testing 分支,并且testing 分支指向 master 分支第二个版本。

# 1.查看提交历史记录
$ git log --graph --oneline
* b97ccfd (HEAD -> master) 第3次提交,新增内容:branch test v3
* f72a9fe 第2次提交,新增内容:branch test v2
* fa2439a 第1次提交,新增readme.txt文件

# 2.创建testing分支
$ git branch testing f72a9fe

# 3.查看提交历史记录,此时我们还在master分支上
$ git log --graph --oneline
* b97ccfd (HEAD -> master) 第3次提交,新增内容:branch test v3
* f72a9fe (testing) 第2次提交,新增内容:branch test v2
* fa2439a 第1次提交,新增readme.txt文件

# 4.切换到testing分支
$ git checkout testing
Switched to branch 'testing'

$ git log --graph --oneline
* f72a9fe (HEAD -> testing) 第2次提交,新增内容:branch test v2
* fa2439a 第1次提交,新增readme.txt文件

# 5.再来查看readme.txt文件内容
$ cat readme.txt
branch test v1
branch test v2

如上,我们看到新创建的 testing 分支,创建在master分支的第二个版本上了。

HEAD指针的移动状态如下图:

执行git branch testing f72a9fe命令,创建testing 分支后:

执行git checkout testing命令,切换分之后:

git checkout -b branchname commit-Hash

相当于:

git branch branchname commitHash
git checkout branchname 

git branch -vv 

命令 `git branch -vv` 会列出所有本地分支及其跟踪信息和最新提交信息。它显示每个本地分支跟踪的远程分支(如果有的话),并指明该本地分支是领先、落后还是与跟踪的远程分支发生了分歧。

命令格式

git branch -vv

此命令将显示当前仓库中所有分支的详细信息,如下所示:

* master       ac609b2 [origin/master] Commit message
  branch1      81575e8 [origin/branch1] Commit message
  branch2      d16e5f3 [origin/branch2] Commit message

以上示例显示了当前仓库中的三个分支:master、branch1和branch2。其中带有”*”标记的是当前所在的分支。括号中的内容表示对应的远程分支。

查看某个分支的详细信息

$ git branch -vv branch1

此命令将只显示指定分支(branch1)的详细信息,如下所示:

 branch1      81575e8 [origin/branch1] Commit message

`git branch -vv` 输出状态

* master       ac609b2 [origin/master] Commit message
  branch1      81575e8 [origin/branch1: behind 20] Commit message
  branch2      d16e5f3 [origin/branch2: behind 29] Commit message

输出状态包括:

  • behind:表示该分支落后于其跟踪的远程分支,未包含远程分支上的一些提交。
  • ahead:表示该本地分支有一些提交未推送到远程分支。
  • diverged:表示该本地分支和远程分支都有各自的新提交,相互之间不同步。

这些状态帮助你了解本地分支与远程分支的同步情况。

git branch -vv -r

命令 `git branch -vv -r` 用于列出 Git 仓库中的所有远程分支,并显示它们的跟踪信息。以下是各部分的含义:

  • `-v`: 显示每个分支的最新提交。
  • `-r`: 只显示远程分支。
  • `-vv`: 提供详细输出,包括每个分支的跟踪信息。

这个命令有助于你了解有哪些远程分支及其相对于本地分支的状态。

posted @ 2024-09-15 00:29  李小菜丶  阅读(477)  评论(0)    收藏  举报