8、项目分叉历史的形成查看当前版本库的如上 , 此刻正在 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文件
我们可以看到 , 现在这个项目的提交历史已经产生了分叉 。
在实际工作中 , 是因为你创建了一个新分支 , 并切换过去进行了一些工作 , 可能随后又切换回 master 分支进行了另外一些工作 , 这样针对的是不同分支进行改动 , 就会在工作目录中产生项目的分叉历史 。此时
你可以在不同分支间不断地来回切换和工作 , 并在时机成熟时将它们合并起来 。而所有这些工作 , 你需要的命令只有branch
、checkout
和commit
。
HEAD
指针的状态如下图:文章插图
9、分支的总结【二 『现学现忘』Git分支 — 41、分支基本操作】由于 Git 的分支实质上仅是包含 , 所指对象校验和(长度为 40 的 SHA-1 值字符串)的文件 , 所以它的创建和销毁都异常高效 。创建一个新分支就相当于往一个文件中写入 41 个字节(40 个字符和 1 个换行符) , 如此的简单能不快吗 。
这里简单说明一下:
# 1.查看.git/refs/heads目录L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/learngit (testing)$ ll .git/refs/heads/total 2-rw-r--r-- 1 L 197121 414月 16 22:07 master-rw-r--r-- 1 L 197121 414月 17 11:26 testing# 可以看到.git/refs/heads目录存放的是版本库中的分支 。# 2.查看testing文件只呢个中的内容给L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/learngit (testing)$ cat .git/refs/heads/testing7ba443e4f6591631af4276bd3aa7356ff0f61fac# 可以看到是一个提交的索引 , 对比上图中的`7ba443e`提交 , 你就明白了 。# 3.在往深说一点 , 查看.git/HEAD文件L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/learngit (testing)$ cat .git/HEADref: refs/heads/testing# .git/HEAD文件就是之前说的HEAD指针 , 指向了当前正在工作的分支 。# 是不是一切都非常的简单高效 。
经验总结扩展阅读
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 2023年腊月二十三给灶王上香怎么上 腊月二十三给灶王爷上几根香
- 2023年闰二月年景好不好 闰二月什么说法
- 2023年腊月二十三送灶王爷怎么送 腊月二十三送灶王爷上天贡品有哪些
- 2023小年腊月二十四出生的男人命运怎么样
- 2022年农历十二月腊月最适合结婚的日子
- 2022年腊月中哪天适合店铺开业 2022年农历十二月开业吉日
- 2023年九月二十九号财神方位 2023年9月29日财神方位查询
- 治疗二型糖尿病偏方
- 12月你好简单文案 12月你好句子
- 《庆余年》第二季将开机是真的吗 言冰云会是谁来演