本文作为git入门指南,比较详细的介绍了git的使用,帮助读者可以更快的上手git,文章采用大白话形式,方便理解,文中若有不恰当或者可以改进的地方请与我进行联系或者在下面留言。感谢大家的信赖!
1.git基础
git是什么?
Git是一个版本管理控制系统(缩写VCS),它可以在任何时间点,将文档的状态作为更新记录保存起来,也可以在任何时间点,将更新记录恢复回来。
下载地址
点击这里下载Git 注:一直点击默认配置即可
后续的操作都用git bash here
点击进入。输入命令git -v
查看版本信息
出现对应的版本信息,就说明安装成功了
工作流程
git仓库 | 暂存区 | 工作目录 |
---|---|---|
用于存放提交记录 | 临时存放被修改文件 | 被Git管理的项目目录 |
这里做一下简要说明,方便大家理解:
git仓库:可以理解为本地仓库,当你本地代码确定无误之后就可以上传到git仓库中,可以理解为代码的最终提交场所。
暂存区:设想一下如果你想加一个新功能,但是又怕功能没加成功,之前的代码还不能运行,为了防止这种情况你是不是会备份当前的文件,暂存区就是这个功能,可以暂时存储当前状态的代码,当你需要可以恢复到任意时刻之前的状态。
工作目录:当你使用git init进行初始化后,当前目录就处于git托管状态,当前的所有文件就处在工作目录下。
方便理解:可以这样比喻,第一步先在工作目录编辑文件,第二步上传到暂存区,第三步确认无误提交到git仓库。
git使用
当你第一使用git需要对git进行配置,告诉git你的名字还有你的邮箱。配置命令如下:
- 配置提交人姓名:
git config --global user.name 提交人姓名
- 配置提交人邮箱:
git config --global user.email 提交人邮箱
- 查看配置信息是否正确:
git config user.name / git config user.email
注意:
1.只需要配置一次,以后不再需要配置
2.若发现配置信息出错,重复使用1和2进行配置即可
提交步骤
step1. git初始化:git init
step2.查看文件状态:git status
step3:提交到暂存区:git add 文件名
step4:提交到git仓库:git commit -m 提交注释
step5:查看提交记录:git log
这里也做一下解释,方便理解:
首先切记首先要进行git初始化,如果不进行初始化,后续操作都会报错。查看文件状态是为了查看当前有哪些文件没有被git管理。git commit -m 后面的注释一般会写第几次提交。
撤销
用暂存区中的文件覆盖工作目录中的文件: git checkout 文件
将文件从暂存区中删除: git rm --cached 文件
将 git 仓库中指定的更新记录恢复出来,并且覆盖暂存区和工作目录:git rest --hard commitID
这里也做一下解释,方便理解:
开头就说过:暂存区就是防止新功能添加失败,之前的代码又不能使用。当需要恢复之前的状态可以使用git checkout 文件进行恢复。当确认不需要某个文件时,可以直接删除,使用git rm --cached 文件名。可以使用git rest --hard commitID将项目恢复到对应的提交状态时。这里的ID就是使用git log时查看的ID
2.git进阶
首先说明这部分内容初学者可以了解即可,主要是讲解git分支。那么为什么要分支呢?说白了就是任务量太大,要实现的功能太多,一般是企业级开发,我们不能所有的任务都在主分支master上开发,那么开发流程不方便管理,规范的做法是,先在开发分支上开发,最后合并到主分支,这样比较规范,在日常开发中,我们自己做项目使用master分支足矣。
分支概念
目的:使用分支,可以让我们从开发主线上分离出来,以免影响开发主线。
分支分类:
- 主分支(master):第一次向 git 仓库中提交更新记录时自动产生的一个分支。
- 开发分支(develop):作为开发的分支,基于 master 分支创建。
- 功能分支(feature):作为开发具体功能的分支,基于开发分支创建
比较正式的开发流程:
功能分支 -> 开发分支 -> 主分支
分支命令
git branch
查看分支git branch 分支名称
创建分支git checkout 分支名称
切换分支git merge 来源分支
合并分支git branch -d 分支名称
删除分支(分支被合并后才允许删除)(-D 强制删除)
暂时保存分支
为什么要暂时保存分支?那是因为在git中,切换分支的时候需要保证当前工作区是干净的,也就是像暂缓区没有文件等等,使用git status命令没有提示。
在git中,可以暂时提取分支上所有的改动并存储,让开发人员得到一个干净的工作副本,临时转向其他工作。
使用场景:分支临时切换
- 存储临时改动:
git stash
- 恢复改动:
git stash pop
3.gitee
git与github的关系是什么?gitee又是什么?
git是我们的本地仓库,也就是存储在我们自己计算机上。gitHub是远程仓库,也可以理解为公共仓库,多人制作项目时,可以将项目上传到Github这个公共的代码托管平台,由于是公共的大家都可以参与项目的上传和下载。但是由于GitHub是国外的服务器,访问速度比较慢,国内程序员一般都使用gitee,简称码云。他也是一款优秀的代码托管平台,使用方法和Github几乎一模一样,这里博主更愿意推荐大家使用gitee.
本地仓库推送到远程仓库(重点)
git push
远程仓库地址 分支名称git push
远程仓库地址别名 分支名称git push
-u 远程仓库地址别名 分支名称(推荐)
-u 记住推送地址及分支,下次推送只需要输入git push即可git remote add
远程仓库地址别名 远程仓库地址
-(设置远端地址别名)
如何新建仓库?
这里做一下简要说明:远程仓库地址是什么?
仓库建好之后,就会出现克隆按钮,选择htttps,出现https地址,点击旁边的复制即可。
克隆仓库(重点)
克隆远端数据仓库到本地:git clone 仓库地址
拉去仓库中的最新版本:git pull 仓库地址 分支名称
跨团队协作(了解)
- 程序员 C fork仓库
- 程序员 C 将仓库克隆在本地进行修改
- 程序员 C 将仓库推送到远程
- 程序员 C 发起pull reqest
- 原仓库作者审核
- 原仓库作者合并代码
解决冲突(了解)
在多人同时开发一个项目时,如果两个人修改了同一个文件的同一个地方,就会发生冲突。冲突需要人为解决。
git push -f 远端地址 master
强制提交,可以尝试
ssh免登陆操作(掌握)
- 生成秘钥:
ssh-keygen
- 秘钥存储目录:C:\Users\用户\.ssh
- 公钥名称:id_rsa.pub
- 私钥名称:id_rsa
git忽略清单(了解)
将不需要被git管理的文件名字添加到此文件中,在执行git命令的时候,git就会忽略这些文件。
git忽略清单文件名称:.gitignore
只需要将你不需要托管的代码写在这里即可,这里我选择不托管1.html和2.html
将工作目录中的文件全部添加到暂存区:git add .
添加项目说明(掌握)
我们可以对我们的项目做一个简要的说明。README.md
方法1:可以在gitee客户端自己创建。(推荐使用此方法,因为会自动生成模板,只需要往里面直接加内容就行)
方法2:可以先在typeora自己编辑好,然后进md文件放在自己的本地仓库中,最后上传到远端即可。(可以个性化编辑)
这里便是md文件,也就是项目描述文件
最后提示:切换分支务必要保证当前分支工作区是干净的,不然会脏其他工作区,出现意外,务必保证当前分支工作区干净!!!