前言
作为从一个 svn
转过来的 git
前端开发,在经历过git的各种便捷好处后,想起当时懵懂使用git的胆颤心惊:总是害怕用错指令,又或者遇到报错就慌的场景,想起当时查资料一看git指令这么多,看的头晕眼花,根本不知道从何下手。
为了给一些小白以及初学者少走点弯路,我会根据在实际开发中,可能出现的场景,用实例结合部分理论。写一篇关于git在多人开发中的操作解决指南,全文通俗易懂,很适合上手。
安装Git
第一步肯定是先安装呀,直接下载到电脑,一直下一步即可,如果遇到下载失败等问题,这里直接百度即可,不做过多描述。
新建项目
至于为什么要讲这一步,为了照顾到有些连这一步都不懂的小白(会的可以跳过)。假设你现在有了一个新项目,就需要在Gitee或者Github上新建一个仓库,以下拿Gitee举例(当然是Gitee是中文啦!),包括本人目前内部团队也是用的Gitee企业版。
这里只做个人新建教学,如果你是公司内部负责人,你也可以免费新建企业版本(可以最多支持5个成员,如果有需求可以自行购买,企业新建项目流程跟个人差不多)
关于下面那三个选项:初始化仓库、设置模板、选择分支模型,这里就不做设置。
创建成功后就可以看到以下内容
部分小白看到这里可能就懵了:“怎么突然多了这么多指令,我到底要做哪个?”
好,那我们一步步去理解
HTTPS跟SSH的区别
这里为了方便演示,我们直接初始化 readme 文件
(后续再删)
在初始化之后,会自动生成两个md文件,这里先不用管。我们直接点击克隆/下载
有些初学者想把别人的项目代码克隆到本地的时候,因为没有学过git操作,通常可能选择最直观的方式:下载ZIP!,确实是最方便的操作,但是我们这里是为了多人开发去不断修改代码并提交到仓库,所以我们要选择HTTPS/SSH去拉取代码。
这里的区别只讲操作的区别,可以看到Gitee也提示我们在使用HTTPS的时候:
使用 HTTPS 协议时,命令行会出现如下账号密码验证步骤。总结就是,如果不设置私人令牌,那你修改代码后,推送代码到仓库/分支,每次都要都要输入一次你的gitee账户密码,特别麻烦!
切换到SSH
可以看到提示:初次使用SSH需要配置。看到这里有些初学者也有点懵:“这些指令又是什么意思?”
这里解释一下什么是SSH协议作用(大概了解就行):通过SSH操作远程仓库时,gitee/github需要对你的电脑的公钥做一个校验认证,只要你在你电脑设置过公钥,以后每次操作都不需要做任何的认证校验了。
总结就是:
HTTPS:操作简单,复制https url然后到git Bash里面直接用clone命令克隆到本地。
缺点:每次fetch和push代码都需要输入账号和密码。很麻烦!
SSH: 需要在克隆之前配置和添加好SSH。
优点:SSH默认是每次fetch和push代码都不需要输入账号和密码。
所以这里强烈推荐在你电脑上配置你的账户SSH!
配置SSH
我们可以在上面的弹窗中点击打开你的SSH公钥
可以看到我这里已经有了SSH公钥了,分别对应我设置过的电脑,如果你的电脑还未配置过,可以查看SSH 公钥设置
看到这里,有些小白还是不知道怎么配置,一看又是一大堆看不懂的指令,但其实就是跟着文档全部敲一遍就可以了。
在跟着敲完后,复制你电脑输出的SSH公钥(注意是你电脑的,不是文档的)
在复制完后就可以跟着继续操作添加
再在你电脑上的Windows PowerShell 或者 Git Bash输入:
ssh -T [email protected]
如果看到以下结果,就证明你的SSH配置成功了!
温馨提示,SSH是根据机器识别的,也就是说,如果你在公司电脑配置了,但是你在家里电脑还未配置,就要再跟着上面的操作配置一遍即可。
配置Git用户名和邮箱
我们可以看到在gitee克隆下载/弹窗中,不断提示我们:为确保你提交的代码身份被 Gitee 正确识别,请执行以下命令完成配置
。
首先是为什么要配置用户名跟邮箱?其实这两个主要是用于本地修改代码后commit信息会显示修改人以及邮箱地址,也就是说这样谁写了这段BUG,在日后查找的时候一目了然!
创建用户名和邮箱(同样用于修改)
git config --global user.name "username"
git config --global user.email "xxx@xxx"
在你输完以上两行代码后,可能发现没反应?那就是好事,没反应就是成功了!
所以你可以输入以下两行指令查看你刚才设置的用户名跟邮箱
查看git用户名和邮箱
git config user.name
git config user.email
如果你最后的指令跟上图差不多,那说明你的用户名跟邮箱已经设置成功!
但是虽然说用户名跟邮箱可以随意设置(极其不建议这样做!),最好是user.email跟你的Github邮箱或者gitee邮箱一致。
-
如果本地设定的user.email值与GitHub上的账户的邮件地址相同,GitHub会认定推送代码的操作是账户拥有者自己做的,跟直接登录到GitHub,从网站上修改,是相同的。此时,修改人是一样,就是账户拥有者。
-
如果本地设定的user.email值与GitHub不同,也能把代码推送到GitHub(只要密码或者ssh正确),GitHub会记录这次的修改是另一个人做的。
克隆代码
这个较为简单,就是把远程代码克隆到本地(这里使用SSH)
git clone git@你的项目地址.git
这样就可以把你远程的代码克隆到本地啦
分支管理
在讲到分支时,很多初学者可能不理解分支的作用,那我就根据在实际项目中的使用场景进行不同的解释,其实分支基本算是Git的最大的作用了。
分支作用
在我们创建项目的时候,会有一个默认分支:master
(生产环境),但在实际项目中,一般都需要一个dev
分支(开发环境主分支)。而分支的作用通俗一点就是,相当于把你的项目拷贝各个子目录,这些子目录相互独立。
那我们直接上场景!
场景1:公司已经有了项目,但是想使用git去管理
实际操作1:
刚才不是在Gitee新建了仓库?但是仓库什么都没有(已把刚才那两个md文件删了,右键手动删除即可)。
进入到你本地代码目录中空白处右键打开Git Bash
,在该目录中,我就用3个文件来模拟即可。