git学习指南(初阶)
哈喽uu们,你们开心到爆炸的栗子又活过来啦,在新公司呆的第一个月顺利又紧张,又菜又刺激。
为什么菜呢?因为我不会使用git,
不会使用git的后果是什么呢?leader让我看代码,我不知道从哪里看。那这不就一下子就显得我很low?
不!不可以这样。我一定要学会这个git,不能让别人一开始就觉得我们菜。如果你也还不知道这个工具,那么接着往下看吧。我把我学到的所有git知识都分享给你~
什么是git和github
首先既然工作中要用git,我们就要知道git是什么,干嘛的,为什么要用它。可以给我们带来什么好处。
git:简而言之------代码管理工具
- 是一个开源的分布式版本控制系统
- 可以有效、高速地处理从很小到非常大的项目版本管理
- 更好的管理程序代码:例如提交修改后的代码,查看原来的代码的
github:简而言之----代码托管
- GitLab是由GitLabInc.开发,使用MIT许可证的基于网络的Git仓库管理工具
- 且具有wiki和issue跟踪功能。
- 使用Git作为代码管理工具,并在此基础上搭建起来的web服务。
为什么要学习git(git真的很重要)
接下来呢我们从两个方面来解释为啥使用git很重要:
- 上班后的工作流程
我是一名前端开发人员:我每天上班的工作流程是这样的:
打开电脑,启动Mac操作系统 —> 打开vscode和mac终端 —> 通过命令行输入命令 npm run serve启动我的本地调试环境 ---->开发一天的内容------>通过命令行git commit ;git push提交我一天的工作代码 ------> 结束工作。
在工作中,我们必须使用git来提交我们的代码。这是必备技能。如果你不会最基本的操作。你可能就会被你的同行认为你很菜(一旦形成他们对你的不好的印象,这一点是很难改变的) - 同步开发git带来的好处
我近两天完成了我在新公司的第一个业务需求,业务需求结束了。我要将我的内容提给我的leader看,给测试看,给其他开发人员看,怎么看?把他们请到你的座位看?提交线上代码给他们共享是很有必要的。但是:
我们必须明白软件开发这件事一定是由一个团队进行开发的,所以就存再着成员之间的分工,那么就会出现这种情况,成员A对项目进行了数据增加逻辑的操作的同时,成员B也在对项目进行数据删除逻辑的操作,两者执行操作之前的项目蓝本肯定都是一样的,但是假设A先完成了操作并且上传服务器,之后B也完成了操作并且上传服务器,请问这是会出现什么情况呢?显然B上传的文件会将A的文件覆盖,那么A编写的逻辑就会失效,那么岂不是A做的工作全都凉…拉取线上代码也是同样的逻辑。
因此正确使用代码版本管理工具真的非常非常有必要。
git工作原理
1、git的工作原理大概如下图所示:
2、git主要分为以下部分
- 工作区(workspace):在当前文件夹通过git init 命令初始化(或者通过克隆的方式)之后,都会生成一个 .git的隐藏文件夹,那么这些我们可以直接修改的文件所在空间就是工作区
- 暂存区(stage/index):当我们使用 git add [文件名]或者git add .命令的时候,就是把我们在工作区添加、删除或者修改等等在工作区对文件的操作,同步到暂存区(暂存区的内容变得跟工作区一样)
- 本地仓库(repository):我们在工作区对代码操作完后,把它提交到本地仓库
- 远程仓库(remote):我们提交到网络上面的仓库,就是远程仓库
- 分支(branch):git可以为每个程序员创建⼀个侧分⽀,开发⼈员在⾃⼰的分⽀上进⾏开发、提交。等项⽬开发完成后,程序员将⾃⼰的分⽀合并⾄主分⽀上,就实现了协同开发的⼯作
git操作步骤及常用命令
图示:
流程示
1、进入公司后第一件关于git操作的事
// 1)先创建⼀个项⽬所在的⽂件夹
mkdir <文件夹名字>
//2) git仓库初始化命令
git init
//3)查看当前git的状态
git status
//4)拉取线上的代码===我们进入公司肯定是已经有了项目文件了,所以要从线上拉取项目代码
git clone (https的代码地址/ssh的代码地址)
//5)添加项目组
//找项目的管理人员将自己的账号添加到项目组才有权限开发代码,对代码进行推送和拉取
//6)创建分支===》在本地分支上创建新的开发分支完成开发,完成开发后上传到远程分支
//6.1)检查自己所属分支
git branch 查看本地所属分支
git branch -a 查看所有的分支
//6.2)在master分支上面创建relase分支
git checkout -b release:创建并切换到release分支上
git checkout “分支名” 切换到目标分支
//6.3)在relese分支上创建dev分支和pre分支
git checkout -b dev 创建并切换到dev分支
git checkout -b pre 创建并切换到pre分支
//6.4)假设开发功能页面,需要在dev分支上面创建开发分支
git checkout -b <分支名称(尽量与本地分支名一致)>
2、功能开发完毕后提交代码到dev分支
//git pull --rebase origin dev(选用)----用来将线上的dev分支最新代码合并到本地分支代码(在你开发的过程中,线上dev分支如果有人提交了代码,那么,你是不是就得同步dev的分支到自己的分支,以保持代码的最新状态)
//1)上传代码到自己的分支
// 推送代码到暂存区: git add .
//从暂存区将代码存到本地仓库
//第一次提交使用:git commit -m "提交分支的描述"
//第n次提交: git commit --amend ===》使用 ***:wq*** 退出
//git commit -m尽量只使用一次,追加内容或后面提交尽量用it commit --amend追加
//推送至自己的线上分支 git push -f origin <自己的分支名>
//2)提交合并申请====>在网页上提交合并请求到dev分支(询问组长测试分支的名称)---》交由组长审核
//3)在网页上提交合并请求到pre分支(询问组长pre分支的名称)---》交由组长审核
以上就是我们在工作中常用的git命令及流程啦~
希望也对你们的工作有帮助~~
常用git工具使用
vscode自带代码提交功能
Sourcetree
这两个工具都是git代码常用的提交工具,安装使用都可以很方便直接的上手。有兴趣的同学可以多学习使用一下。
即使有再快捷的上传方式,也建议大家用命令的习惯,不会导致太严重的合并问题或者代码冲突问题。
希望以上的分享能够对你们有帮助哦~