【二】Git操作指南:分支操作

【二】Git操作指南:分支操作

查看存储库现有分支

分支是独立于其它分支的副本,任何分支的修改都无法影响其他分支。除非修改的分支和其他分支合并。

查看本地创建的分支

 git branch
  • 查看本地现有的分支
    •  * master
         testHead
      
    • 此时我们本地有两个分支,因为我之前创建了一个。

查看本地创建的分支和本地远程副本分支

简单的讲就是查看全部分支,这里暂时没有说 github 就写在这了

 git branch -a

查看更多的分支信息

 git branch -vv
  • 此命令能够查看分支更多的信息

创建分支

当我们以某个分支为基础修改时,可以在生成该分支的分支,然后在修改合并。

 git branch newBranch
  • 这里我们创建了一个newBranch分支,运行git branch 查看本地分支
    •  * master
         newBranch
      

切换分支

 git switch newBranch
 git checkout newBranch
  • 这两个命令都是切换到newBranch分支,切换后在输入 git branch
    •  master
       * newBranch
      
    • 此时就在newBranch分支中工作,* 表示当前处于哪个分支。

创建分支并切换分支

 git switch -c newBranch2
 git checkout -b newBranch2
  • 这两个命令都能创建分支并同时切换到创建的分支中,在执行这个命令后git branch查看

删除分支

 git branch -d 分支名
 git branch -D 分支名
  • -d 只能删除已经合并的分支,-D 强制删除指定分支

游离分支

我就这样说吧,有好的称呼评论告诉我

 git checkout commitId
  • 当我们需要查看之前提交的快照,我们可以使用该命令,commitId 为之前提交的hash值。这个命令会创建一个游离的分支
    • 游离分支:它不会被存储。也就是说它只在内存中存在,只要不使用就会被删除。

如果需要保存该游离分支可以使用如下方法

 git switch -c 新创建的分支名
  • 在游离分支上执行上面的命令即可将其保存在新创建的本地分支中。

合并分支

快进合并

如果以main分支创建一个分支 feature,那么只要在创建过后 main分支没有发生变化,合并的时候即使快进合并。快进合并并不会创建新的提交,只是将HEAD,移动到需要合并的分支提交上。

 git merge feature
  • 我们在主分支上执行该命令会将feature合并到main上。在对比快进和并的特点,我们可以看到在 HAED -> master 上的提交hash值是和feature分值上提交hash值一样的,这进一步验证了,快进合并不会创建新的提交,只移动HEAD到要合并的新的提交上。

非快进合并

如果以main分支创建一个分支 feature,那么只要在创建过后 main分支发生发生变化。那么这种情况下会合会默认创建一个新的提交。

 git merge feature
  • 这种情况下执行合并命令,会创建一个新的提交。且分支的提交记录也存在。

将分支的提交合并成一个提交

 git merge --squash 分支名
  • 此命令会把分支上所有提交的内容合并,并添加到当前分支暂存区中。需要手动执行提交。

重置当前分支的父分支

 git rebase master
  • 将当前分支以master分支为基础,重新执行之前的提交。这常用于非快进合并上。

捡樱桃合并

 git cherry-pick commitId
  • 让某一个提交记录和当前分支合并,常用于合并子分支的部分提交,这些提交会在当前分支上合并成一个提交记录。commitId 是 提交记录Hash值
git
141 views
Comments
登录后评论
Sign In
·

笔记的逻辑还算清楚,但讲了好多概念和操作,还需要好好梳理一下,不然不会Git的人看完文章就晕了,最好是抓重点然后配点图👻

·

啊啊啊,终于看到了git的使用帖子了。 sob