Git 的正确使用姿势与最佳实践(二) | 青训营笔记

88 阅读3分钟

Git 的正确使用姿势与最佳实践(二) | 青训营笔记

参加 [第六届青训营] 笔记创作第八篇

Git分支与历史版本管理

Git分支的代码使用

  • 分支创建:

windows先打开git bash,然后先直接输入 git branch 指令来查看所有分支和当前所处分支

image.png

可以看到当前就只有一个主分支master,那么这个时候可以说输入 git branch branch_name 来创建一个新的分支,并给这个新分支命名为branch_name

image.png

可以看到新建了一个exe1的分支,再次通过git branch查看可以看到新增的exe1分支

  • 分支切换:

通过 git checkout branch_name 切换到branch_name这个分支,当然也有一个快捷操作,可以通过 git checkout -b branch_name 创建并切换到branch_name这个分支。

image.png

  • 分支合并:

通过 git merge branch_name 可以将分支branch_name合并到当前分支上

image.png

  • 分支删除:

通过 git branch -d branch_name 删除本地仓库的branch_name分支

image.png

Git提交

代码不是等待功能全部写完了才去提交到版本库里面的,而是可以自己完成了某个部分之后,阶段性的去提交,并且附上相应自己看得懂的版本注释以方便出错回滚到对应历史版本

通过 git status 可查看仓库状态,看文件有无存进暂存区等

image.png

如此处我没有做任何改动,所以这里没有东西需要commit,但是当我随意创建了一个哪怕是空txt文件,通过git status都能看到有新的文件被添加进来了

image.png

这个时候可以通过git add + 文件名来将指定文件加入暂存区,然后再通过git status查看一下是否添加成功

image.png

如果每次有一堆新加的文件,那一次一次指定岂不是很麻烦?所以这里还有一种方法,就是 git add . 可以将所有新增文件全部加进去暂存区,事实上我日常用的多的也是这个指令。这里新增了几个 NewCreate txt文件用于演示。

image.png

通过上面可以成功把新做的改动全部丢进暂存区,那么下面就是如何将当前版本合乎规范的丢尽版本库里。可以通过 git commit -m “备注” 这条指令改动永久存下来。这里认证没有通过,因为是随意下的一个git文件现改的,如果是连接到自己的仓库的话可以commit成功。

image.png

Git版本管理

如果上述有一些操作添加进了暂存区不过还没有commit,在你后面发现并经过思考后发现不该加,那么可以通过 git rm --cached xxx 来进行删除,也可以通过 git restroe --stage指令进行删除。两者的区别在于,前者属于不希望管理该文件,将文件从列表中删除出来,后者输运仍管理文件,但从暂存区中取出。

image.png

image.png

这里通过新建一个 NewCreate_d.txt 进行演示,开始是将NewCreate_d添加进了暂存区,但是后来又将其从中删除掉了

Git通过上述的操作其实就建立起了一套历史版本的逻辑,你的每一次操作,每一次commit都git内部都专门有一个指针用以状态维护,可以通过 git log 查看当前分支(从最初起点走到当前head的路径)的所有版本

image.png

如果需要往前回滚到某一个历史记录的话,可以通过以下代码实现

git reset --hard HEAD^
git reset --head HEAD ~

一个~一个版本,两个^^两个版本,~与^相同,回滚并不会将内容删掉

若要将版本实现回退回来的话,那么可以先通过 git reflog 查看HEAD指针的所有的移动记录,在给出的移动记录中,会有每一个点的编号,即哈希值前7位。通过 git reset --head 版本号 就可以回滚到任意结点。