Git系列-分支
Git学习不应该只是学会使用Git语法,更要理解其中的思想。
最近也一直遇到Git的问题,打算重新梳理下所学所想,分支是Git中最重要且不同于其他VSC管理工具的地方,Git 分支背后的实现比其他版本控制系统模型要轻量得多,且使用场景也大相径庭。简单说Git分支实际上是指向更改快照的指针。
这个图,表示3个分支,你也可以理解为3个指针,且其中每个节点都有指向父提交的指针,这样就构成了一个有向的提交历史记录,这使得 Git 可以轻松地跟踪和管理分支、合并等复杂的版本控制操作。
创建分支
从如下所示的存储库开始
使用 git branch crazy-experiment ,创建一个新的分支,Git 需要做的就是创建一个新的指针,存储库历史记录保持不变。得到的只是指向当前提交的新指针:
这个分支的后续提交会新增指针并指向父节点,可以说分支是一系列提交的指针组成的,当然你还可以通过HEAD来操作这个指针,HEAD可以指向任何提交,当 HEAD 指向不是分支中最后一个提交的提交时,它就是一个“游离的 HEAD”。
使用分支可以使 main 分支免受有问题的代码的影响,一个分支代表一条独立的开发线。所以当您想要添加新功能或修复错误(无论多大或多小)时,都需要会生成一个新分支来封装更改。
常用的语句
-
查看分支 git branch 、 git branch --list、git branch -a
-
创建分支
- 本地分支 git branch <branchname>
- 远程分支 git remote add <branchname>
https://example.git
-
切换分支
- git checkout <branchname> 切换分支
- git checkout -b <new-branch> 该方法将创建新分支并立即切换到它
-
删除分支
- 安全删除 git branch -d Git 会阻止您在分支具有未合并的更改时删除该分支
- 强制删除 git branch -D 强制删除指定的分支,即使它具有未合并的更改
- 删除远程分支 git push origin --delete
-
重命名分支 git branch -m 重命名当前分支