Git小知识——branch基本常识 & 重置branch
in 学习日记 with 0 comment

前两次对Git的基本用法有了一个了解后,我逐渐开始了解了Git的强大之处了,越来越觉得这是一个很强大的工具,很适合于团队协作。

随着我使用的增加,我也理解了一些理解。

Branch的使用

一个Git仓库可以有多个branch,用来区分不同的开发任务,方便多位开发者进行协作。

比如默认的main分支用于主线更新,存放的代码都是功能正常,可以运行的代码;同时我们新创建一个dev分支用于开发新功能。这样,当我们的项目仓库实际交付给他人使用的时候,我们可以保持一个干净的main分支,而繁杂的开发任务可以放在dev分支中,保证仓库的整洁干净。
2024-02-26T14:17:06.png

并行开发

Branch的功能不止是这个,了解了一下,还可以实现并行开发。

我们要针对一个项目进行多个功能或者需求的开发,我们可以创建多个branch,让每个功能的开发拥有整洁的无干扰的代码仓库,最后要推出的时候,我们进行所有仓库的merge就可以提高我们工作的效率,不会遇到文件、依赖等的冲突。

其实总结下来,branch的功能主要是能够提供一个代码隔离的环境。如果多位带着不同开发目的的开发者要在一个仓库不断进行commit和push,难免会有冲突,造成凌乱的commit记录。同时,由于不同branch间相互隔离,因此提供了良好的容灾性,不会对仓库代码的持续交付造成很大的影响。

另外,当我们创建多个branch的时候,也可以将其作为版本的迭代。每一个版本创建一个branch,这样就可以方便的查看不同版本直接commit的内容,增加的功能等,这一个功能有点类似于tag吧,不过也是一种alternative的方案了。

测试代码的方法

今天写代码的时候,突然想要测试一下腾讯云云API的SDK使用,测试一下。由于腾讯云的API调用需要机密信息SecretIDSecretKey,所以如果放到git仓库的根目录,多少有点冒昧和风险。如果一不小心,将我们用于测试的机密信息push到仓库了,多少还是有点害怕。所以我在想如何能够在不创建新项目的情况下,编写一些测试代码呢?

我使用的是.gitignore文件,在我的本地目录下创建了一个apitest文件夹,作为测试代码和机密文件的测试目录,并提前在.gitignore文件中添加apitest/字段,告诉git不必跟踪这个目录,我们就可以放心的把测试代码和机密文件放到这个目录中,而不必担心隐私泄露。

同时,它仍然处于当前项目开发中,所以IDE的功能,插件等均可正常使用。

如何重置一个branch

有时候我总是忘记git checkout 来切换到合适的分支进行开发,破坏了要交付的代码,这时候就希望重置一个branch到与另一个branch一致,恢复最开始的状态。这个操作可以这样实现(比如要把dev分支重置为和main一致)

  1. 切换到要重置的branch

    git checkout dev
  2. 重置分支

    git reset --hard main
  3. push到仓库

    git push origin dev --force

这样,你的dev仓库就和main仓库一致了,一模一样,你可以从头再来了哈哈哈

小Tip

如果用zsh作为终端的话,cd进入一个git仓库目录的时候,有的主题会显示当前仓库的状态。比如这样:

2024-02-26T14:31:45.png

main是分支名,旁边有一个x,意思就是当前有文件被更改了,但是没有commit或者push,这个working tree不是clean的,咱们就该检查下IDE看看是不是没有commit或者push。或者也可以在命令行中执行git status来看看哪些文件没有保存。


我是六六,欢迎评论,交换想法和意见,一起加油!

主页

Responses