Git:独立开发者应该如何管理仓库分支?
Git:独立开发者应该如何管理仓库分支?
xxfer写在前面
前段时间考试比较多,今天终于有空可以整理有关Git分支的管理使用技巧,相信大家对Git应该都不陌生,所以直接进入正题。
如果大家觉得看书面材料太无聊,推荐大家视频学习:
蛋蛋老师的视频真心不错,大家可以学习了这个视频以后再看下面的内容,别忘了关注 + 一键三连。
其实我觉得蛋老师的视频已经足够大家学习一阵子了。
这篇图解Git操作,一篇就够写得很不错,还有图例。
什么是分支?
在任何代码管理工具中, 分支都是一个非常重要的概念。
分支是主线某个状态的一个复制, 在不影响主线情况下, 可以有新的变化。
实际生活中,我们的工作一般都是在一条主线(master/main)上进行,每一次提交会形成一个commit对象。客户提出了一个新的需求,而这个需求的开发需要一段时间才能完成。为了不影响主线的稳定性和持续进行。 我们会怎么做?我们可以把整个项目复制一份,在复制的项目上开发新功能,开发完成通过测试后,再将改动的代码整合回主线。那么,这个复制出来的项目就是一个分支。
重要的分支操作
相信大家看了蛋老师的视频以后,至少对Git已经有了入门级的了解。那么现在,让我们整理一下Git的常用命令。
Git工作流基本可以参考下面这张图:
一定要搞清楚远程仓库、本地仓库、暂存区和工作区的概念
克隆项目
从服务器上进行克隆项目到本地
1 | git clone git@github.com:JJLibra/Astar.git |
执行git clone
就会生成一份副本,在本地仓库和工作区都会同步副本
提交代码
- git status:查看文件状态。
- git add .:文件添加进暂存区。
- git commit -m “提交信息”:文件添加进本地仓库,-m参数改为-am可以直接推向本地仓库。
- git push:文件推向远程仓库。
- git log:查看文件提交日志,每一个commit都会有自己的commit的ID。
运行git commit -a
相当于运行git add
把所有文件加入暂存区,然后再运行git commit
把文件提交本地仓库。
代码回退
- git fetch:从远程仓库拉取代码到本地仓库。
- git reset –files:用本地仓库覆盖暂存区中修改,也就是覆盖最后一次git add的内容,即撤销提交到暂存区的内容。
- git checkout –files:把文件从暂存区复制到工作区,用于放弃本地的修改。
- git checkout HEAD –files:回退最后一次的提交内容。
版本回退
- git reset –hard HEAD^:回退上一个版本。在Git中HEAD表示当前版本,HEAD^表示上一个版本。
删除文件
- git rm filename:在工作区删除,如果需要从版本库中删除文件可以使用git rm命令进行删除,然后提交。
如果删除错了,可以使用git checkout -- filename
进行恢复,其原理就是使用版本库的文件替换工作区的文件。
分支管理
- git branch <分支名字>:新建一个分支。
- git checkout <分支名字>:新建立后分之后,切换分支。
- git branch:查看本地的分支情况,分支前面带有*号的表示当前的分支。
- git merge <分支名字>:合并指定的分支到当前分支。
- git branch -d <分支名字>:删除分支,假如分支删除不了,可以通过:git branch -D <分支名字>,强制删除分支。
- git remote:查看远程仓库的情况,加上-v参数可以查看详细情况。
- git push origin master:将本地master分支推送到远程库。
- git pull:拉取远程仓库的分支到本地仓库。相当于执行git fetch和git merge命令。
最后
可以在VScode中安装Git插件,方便使用。
分支的操作其实还有很多,常用的都已经罗列在上面了,使用时结合图例和git结构,熟能生巧,慢慢就能掌握。