二 『现学现忘』Git分支 — 41、分支基本操作

目录

  • 6、新建一个分支并且使分支指向指定的提交对象
  • 7、思考:
  • 8、项目分叉历史的形成
  • 9、分支的总结
提示:接上篇
6、新建一个分支并且使分支指向指定的提交对象使用命令:git branch branchname commitHash
我们现在本地库中只有一个 master 分支 , 并且在 master 分支有三个提交历史 。
需求:创建一个 testing 分支 , 并且testing 分支指向 master 分支第二个版本 。
# 1.查看提交历史记录L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/learngit (master)$ git log --graph --oneline* b97ccfd (HEAD -> master) 第3次提交,新增内容:branch test v3* f72a9fe 第2次提交,新增内容:branch test v2* fa2439a 第1次提交,新增readme.txt文件# 2.创建testing分支L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/learngit (master)$ git branch testing f72a9fe# 3.查看提交历史记录,此时我们还在master分支上L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/learngit (master)$ git log --graph --oneline* b97ccfd (HEAD -> master) 第3次提交,新增内容:branch test v3* f72a9fe (testing) 第2次提交 , 新增内容:branch test v2* fa2439a 第1次提交 , 新增readme.txt文件# 4.切换到testing分支L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/learngit (master)$ git checkout testingSwitched to branch 'testing'L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/learngit (testing)$ git log --graph --oneline* f72a9fe (HEAD -> testing) 第2次提交 , 新增内容:branch test v2* fa2439a 第1次提交,新增readme.txt文件# 5.再来查看readme.txt文件内容L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/learngit (testing)$ cat readme.txtbranch test v1branch test v2如上,我们看到新创建的 testing 分支,创建在master分支的第二个版本上了 。
HEAD 指针的移动状态如下图:
执行git branch testing f72a9fe命令,创建testing 分支后:
二 『现学现忘』Git分支 — 41、分支基本操作

文章插图
执行git checkout testing命令,切换分之后:
二 『现学现忘』Git分支 — 41、分支基本操作

文章插图
总结:
在日常工作中,我们可以这样的操作 , 切换到之前的版本,或者其他人之前写过的版本 。我们把自习需要的代码进行保存,然后就可以在切换到自己开发的分支上 , 应用这些代码,同时把刚才创建的分支删除掉即可 。
(该操作在工作中非常的实用)
7、思考:git checkout -b branchname commit-Hash命令,
【二 『现学现忘』Git分支 — 41、分支基本操作】能否代替下面两个命令:
  • git branch branchname commitHash
  • git checkout branchname
答案是可以的 。
示例如下:
# 1.查看本地库中所有的分支L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/learngit (master)$ git branch* master# 2.查看当前分支的提交历史L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/learngit (master)$ git log --onelineb97ccfd (HEAD -> master) 第3次提交,新增内容:branch test v3f72a9fe 第2次提交,新增内容:branch test v2fa2439a 第1次提交,新增readme.txt文件# 3.创建testing分支 , 并切换L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/learngit (master)$ git checkout -b testing f72a9feSwitched to a new branch 'testing'# 4.查看testing分支的提交历史L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/learngit (testing)$ git log --onelinef72a9fe (HEAD -> testing) 第2次提交,新增内容:branch test v2fa2439a 第1次提交,新增readme.txt文件# 5.查看readme.txt是否是V2版本L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/learngit (testing)$ cat readme.txtbranch test v1branch test v28、项目分叉历史的形成查看当前版本库的如上,此刻正在 testing 分支的上工作,在 readme.txt 文件在第二个版本 。
需求:我需要在 testing 分支的上 , 修改 readme.txt 文件,并提交新版本 。
# 1.查看版本库状态# 分支情况L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/learngit (testing)$ git branchmaster* testing# 分支的提交历史L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/learngit (testing)$ git log --onelinef72a9fe (HEAD -> testing) 第2次提交,新增内容:branch test v2fa2439a 第1次提交,新增readme.txt文件# 2.修改readme.txt文件并提交L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/learngit (testing)$ echo "branch test v333 testing" >> readme.txtL@DESKTOP-T2AI2SU MINGW64 /j/git-repository/learngit (testing)$ git commit -a -m 'testing 分支的提交'warning: LF will be replaced by CRLF in readme.txt.The file will have its original line endings in your working directory[testing 7ba443e] testing 分支的提交 1 file changed, 1 insertion(+)# 3.查看testing分支历史提交L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/learngit (testing)$ git log --oneline --graph* 7ba443e (HEAD -> testing) testing 分支的提交* f72a9fe 第2次提交,新增内容:branch test v2* fa2439a 第1次提交,新增readme.txt文件# 4.查看所有分支的历史提交L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/learngit (testing)$ git log --oneline --graph --all* 7ba443e (HEAD -> testing) testing 分支的提交| * b97ccfd (master) 第3次提交,新增内容:branch test v3|/* f72a9fe 第2次提交,新增内容:branch test v2* fa2439a 第1次提交 , 新增readme.txt文件

推荐阅读