Git使用笔记笔记
一. 走入Git
1.Git介绍
Git 是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。
Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。
版本控制
版本控制(Revision control)是一种在开发的过程中用于管理我们对文件、目录或工程等内容的修改历史,方便查看更改历史记录,备份以便恢复以前的版本的软件工程技术。
团队协作
从单兵作战转换为团队开发。
2.Git对比SVN
SVN是集中式版本控制系统,版本库是集中放在中央服务器的,而工作的时候,用的都是自己的电脑,所以首先要从中央服务器得到最新的版本,然后工作,完成工作后,需要把自己的代码推送到中央服务器。集中式版本控制系统是必须联网才能工作。
Git是分布式版本控制系统,没有中央服务器,每个人的电脑就是一个完整的版本库,工作的时候不需要联网了,因为版本都在自己电脑上,可以离线工作。
3.Git安装
下载好以后,直接双击进行安装就行
一直下一步就可以,安装再默认路径就行
安装完毕后检测一下安装是否成功
方法一: 打开
cmd
窗口,输入指令检查1
2检测 git 是否安装
git --version- 出现版本号,说明安装成功
安装完毕,接下来我们就可以开始使用了
二.Git常用命令
1.设置用户签名
签名的作用就是用来标识用户,以区分不同的开发人员。
1 | git config --global user.email "you@example.com" |
2.初始化本地库
我们希望一个文件夹被
git
管理的话,那么就要在一个文件夹下进行 git 初始化找到一个希望被
git
管理的文件夹在文件夹内单击鼠标右键,点开
Git Bash Here
输入指令
1
2git 初始化的指令
git init然后文件夹内会多一个
.git
的文件夹(这个文件夹是一个隐藏文件夹)这个时候,我的这个
git_demo
文件夹就被git
管理了git
不光管理这一个文件夹,包括所有的子文件夹和子文件都会被管理
注意: 只有当一个文件夹被 git 管理以后,我们才可以使用 git 的功能去做版本管理
- 也就是说,我们必须要把我们电脑中的某一个文件夹授权给
git
git
才能对这个文件夹里面的内容进行各种操作- 而
git init
就是在进行这个授权的操作
- 也就是说,我们必须要把我们电脑中的某一个文件夹授权给
3.Git工作区、暂存区和版本库
托管平台
- 局域网(内网)
- gitlab
- 公网(外网)
- gitlab
- github
- gitee 码云
4.git add
我们要放入暂存区,要使用
git add
指令把单独一个文件放在暂存区
1
2把文件夹下的 index.txt 文本放在暂存区
git add index.txt把单独一个文件夹放在暂存区(暂存区不能存放空文件夹)
1
2把文件夹下的 ceshi文件夹 放在暂存区
git add ceshi/把所有文件都放在暂存区
1
2
3
4
5把文件夹下所有的内容都放在暂存区
git add --all
git add --all 有一个简单的写法
git add .- 全部存放的时候使用上面两个指令哪个都行
5.git commit
1 | 把暂存区的内容放到历史区 |
我们使用 git log
这个指令查看版本信息
1 | 查看当前历史区版本信息 |
我们使用
git reset --hard 版本编号
进行历史回退1
2
3
4
5
6回退到上一次提交的版本
git reset --hard HEAD^
回退到上上次提交的版本
git reset --hard HEAD^^
git reset --hard HEAD~2
6.git revert 与 git reset
- git reset 是回滚到对应的commit-id,相当于是删除了commit-id以后的所有的提交,并且不会产生新的commit-id记录,如果要推送到远程服务器的话,需要强制推送-f
- git revert 是反做撤销其中的commit-id,然后重新生成一个commit-id。本身不会对其他的提交commit-id产生影响,如果要推送到远程服务器的话,就是普通的操作git push就好了
三. Git 分支
1.初识分支
git
分支,就是我们自己把我们的整个文件夹分成一个一个独立的区域比如我在开发 登录 功能的时候,可以放在
login
分支下进行开发- 开发 列表 功能的时候,可以放在
list
分支下进行开发 - 大家互不干扰,每一个功能都是一个独立的功能分支
- 开发 列表 功能的时候,可以放在
这样开发就会好很多
git
在初始化的时候,会自动生成一个分支,叫做master
是表示主要分支的意思
我们就可以自己开辟出很多独立分支
2.创建分支
开辟一个分支使用
git branch 分支名称
指令1
2开辟一个 login 分支
git branch login查看一下当前分支情况
1
2查看当前分支情况
git branch- 会看到,当前有两个分支了
- 一个是
master
,一个是login
- 前面有个
*
号,并且有高亮显示的,表示你当前所处的分支
3.切换分支
我们对 登录 功能的开发要移动到
login
分支去完成我们切换所处分支使用
git checkout 分支名称
1
2切换到 login 分支
git checkout login然后我们在整个分支上进行 登录 功能的开发
开发完毕以后,我们就在当前分支上进行提交
提交以后我们进行分支切换
- 发现
master
上面还是最初始的状态 - 而
login
分支上有我们新写的 登录 功能的代码
- 发现
我们按照分支把所有功能都开发完毕了以后
- 只要把所有代码都合并到
master
主分支上就行了
- 只要把所有代码都合并到
4.合并分支
git
的合并分支,只能是把别的分支的内容合并到自己的分支上使用的指令是
git merge
1
2
3
4
5切换到 master 分支
git checkout master
把 login 的内容合并到自己的分支
git merge login这个时候,我们刚才在
login
上开发的东西就都来到了master
主分支上如果是有多个分支的话,那么所有的最后都合并到
master
分支上的时候我们的主分支上就有完整网站的所有页面
- 各个分支上都是单独的页面和功能
5.删除分支
这个时候我们开辟的分支就没有什么用了,就可以删除分支了
先切换到别的分支
使用指令
git branch -d 分支名称
来删除1
2
3
4
5先切换到别的分支
git checkout master
删除 login 分支
git branch -d login
四.远程仓库
- 我们的所有内容已经全部保留在了本地历史区
- 理论上是不会丢失了
- 但是如果把文件夹删除了,还是没有了
- 所以我们要使用
git
把我们所有的内容推送到github
上面保存起来 - 那么就本地文件夹就算删除了,那么远程上面还有一份,还可以拿回来使用
- 所以我们现在就要把本地内容推送到远程
- 这个时候我们接需要一个
github
的账号了 - 先去 github官网 注册一个账号
1.创建一个远程仓库
有了
github
账号以后我们就登录
github
网站,开辟一个远程仓库github
的远程也是以一个仓库一个仓库的形式来保存代码- 我们可以在一个
github
上保存很多的项目 - 只要一个项目一个仓库就可以了
- 我们可以在一个
按照下面步骤开辟仓库
先点击新建仓库
2.添加仓库地址
接下来,要使用
git
上传代码了我们先要告诉
git
上传到哪里也就是给
git
添加一个上传的地址我们还是来到我们的项目文件夹
使用
git remote add origin 仓库地址
来添加1
2
3在项目文件夹下打开 git base
添加仓库地址
git remote add origin *********************- remote:远程的意思
- add:添加的意思
- origin:是一个变量名(就是指代后面一长串的地址)
3.git push
上传到哪里的地址我们已经添加好了
接下来就是上传内容了
- 上传要保证 历史区 里面有内容
- 上传的过程会把 历史区 里面所有的内容上传到远端
我们使用
git push
指令来上传1
2
3
4上传内容
git push -u origin master
表示把内容上传到 origin 这个地址
master 是上传到远程的 master 分支- 如果当前分支与多个主机存在追踪关系,则可以使用-u选项指定一个默认主机,这样后面就可以不加任何参数使用git push。
第二次上传
第二次上传的时候,因为有刚才的记录,就不需要再写
origin
和master
了会默认传递到
origin
这个地址的master
分支上除非你要传递到别的分支上的时候再进行书写
1
2第二次上传
git push
到这里,就完成了一次
git
推送这个时候本地的文件夹就真的可以删除了
因为远程有一份我们的内容,本地的删除了,可以直接把远程的拉回来就行
4.git clone
git
克隆是指把远程仓库里面的内容克隆一份到本地可以克隆别人的 公开 的仓库,也可以克隆自己的仓库
克隆别人的仓库,我们只能拿下来用,修改后不能从新上传
克隆自己的仓库,我们修改后还可以再次上传更新
输入克隆指令
git clone 仓库地址
1
2直接克隆仓库
git clone *************
5.git pull
当人家的代码更新以后,你想获得最新的代码
我们不需要从新克隆
只要拉取一次代码就可以了
直接在项目文件夹里面使用指令下拉
1
2拉取远程最新代码
git pull这样一来,你本地的仓库就可远程的仓库同步了
五.VScode集成Git
VSCode内置版本控制机制,并自带对Git和Github的支持,你也可以安装插件以支持其他控制软件,如SVN(需要先安装 SVN )等。
初始化
可视化界面管理项目
六. gitignore
在一些项目中,我们不想让本地仓库的所有文件都上传到远程仓库中,而是有选择的上传,比如:一些依赖文件(node_modules下的依赖)、bin 目录下的文件、测试文件等。一方面将一些依赖、测试文件都上传到远程传输量很大,另一方面,一些文件对于你这边是可用的,在另一个人那可能就不可用了,比如:本地配置文件。
空行不匹配任何文件;
如果本地仓库文件已被跟踪,那么即使在 .gitignore 中设置了忽略,也不起作用。
.gitignore 文件也会被上传的到远程仓库,所以,同一个仓库的人可以使用同一个.gitignore 文件。
1 | # See https://help.github.com/articles/ignoring-files/ for more about ignoring files. |