Git基操
Git介绍
了解的话可自行跳过
我第一次学习的时候是在哔哩哔哩上看到的,他给我做的介绍是:
是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理。我听着一头雾水,到底是啥东西?
后来通过基本的学习,你可以把Git理解为一个高级版的SVN,svn是我们学习见习是用到的项目提交工具,我们做好的项目就提交到里面。但是也只是一部分的基本学习,没有深入操作。
讲到这里你可能可能还是不太清楚Git是用来干什么的?你可以试着这样理解:
我们常常需要合作完成一个工作,所以我们需要划分工作任务,每个人完成一部分,最后再拼接起来,这就是一个工作,所以就诞生了像就SVN和Git这样的工具了。通过这样的工具可以整合每个人完成的任务的那一部分放到位置和目录下,同时也可以把别人的已经提交的部分下载下来。相比我们用QQ传文件更好整理和发布,省去了更多的麻烦。
SVN和GIt最大的差别就在于Git是分布式,而Svn是集中式,同时在完整性上git是优于SVN的;GIT把内容按元数据方式存储,而SVN是按文件。
准备工作
1. Git 工具
2. Git远程仓库提供商账号
1. github
2. gitee,我这里是用码云也就是gitee,因为是国内访问更方便,而且是中文,相比github更便捷。github是面向全球的,所以开源的项目可能会更多。
3. gitlab自己搭建
3. 手和不太聪明的脑子
基本配置
安装
下载git,官网<https://git-scm.com/ > 不推荐这里下载
镜像下载,推荐这里,下载最新版本即可https://npm.taobao.org/mirrors/git-for-windows/
工具类选择新的就好,在最下面。工具类是重在体验,所以选择最新的一般不会出现问题,编程类的工具因为要考虑别人的用户以及配置,所以需要选择大众的,比如编程语言的jdk
下载之后一直点next就好,如果看得懂英文可以适当选择,因为基本的使用用不着设置别的东西。
默认是安装好了三个界面的
- Git Bash
- 用的最多的命令行工具,一般就用这个,大部分的操作都是通过这个工具来完成,命令语法基本和Shell差不多
- Git GUI
- 图形化界面,基本没用,因为有它自带更优秀的图形化界面,同时因为用命令更快捷
- Git CMD
- 基本没啥用,就和winodws自带的没差,我目前还没用过一次
基本使用
初始化版本库
- 创建一个文件夹,鼠标右键弹出一个对话框,选择
git bash - 在命令行中输入
git init,可以看到已经在文件夹下面创建了一个.git文件夹 - 这个文件夹是是用来存储关于git与这个文件相关的所有版本信息以及你对这个文件夹所有的改动以及配置的,就是你在这个文件夹有关通过git改动和设置的东西都在这个文件夹下,所以不要乱动这个文件夹,也不要删除,产生了这个文件夹
- 这样就初始化好了本地的版本库了
查看版本库库的状态
git status
可以看到这个文件夹的改动情况
因为是第一次创建,所以没有任何东西和改动
设置用户信息
通过设置用户邮箱和名字,可以在之后的连接远程仓库中,当你把你的文件上传到服务器上的仓库后,可以在里面看到是谁上传的
git config --global user.name "你的昵称"
git config --global user.email "你的邮箱"
查看本地的配置
git config --global --list #查看全局配置
git config -l #不加参数的查看配置,更加详细
git config -l的就不贴图了,太长了,而且很多的设置平时我没有用到,你可以自行查看
可以看到就已经配置好了基本的邮箱和昵称了,这里的邮箱和昵称都是本地的,和你在服务器设置的可以不一样,只是昵称在你提交到服务器端仓库的时候,可以看到提交的是你的昵称
这里设置的用户你可以在电脑的user也就是用户文件夹下的.gitconfig文件里查看,可以删除掉重新配置
本地基本操作
操作介绍
在git里有几个比较重要的词语
-
远程仓库:就是你在gitee里创建账号后,搭建在服务里的仓库,仓库用来存放你提交的文件
-
本地仓库:你每次的提交的远程仓库的东西都必须先放到本地仓库后才能提交上去
-
暂存区:从工作区放进去的东西
-
工作区:就是你的文件夹里才改动的内容
过程:工作区-->暂存区-->本地仓库-->远程仓库
你每次修改之后的内容就是工作区的内容,你需要把内容放进(add)暂存区说明你改动了,然后提交(commit)到本地仓库,本地仓库最后上传(pull)到远程仓库。
当然,你也可以把远程仓库的东西下载(push)下来或者克隆(clone)下载
提交到暂存区
git add . #提交到当前所有的内容到工作区 git add #某个具体的文件或文件夹,支持一部分的通配符- 创建一个文件
- 查看哪些没有状态,可以看到没有放进区,提示add
- 提交到暂存区后,查看状态,可以看到有一个新文件提交到暂存区
- 创建一个文件
提交到工作空间
git commit -m "提交的备注"
可以把你放在暂存区的内容全部放到工作空间
查看和回溯历史版本
当我们commit之后,就会在本地的日志里面写入一次历史版本,之后所做的修改,都可以回到过去的版本,前提是你有commit过。
查看日志
git log #查看详细的日志,可以看到改动
git log --oneline #查看日志,每一条日志用一行来表示
建议用第二个,因为可以直接的看到版本号
回溯版本
回溯版本,就是你改动之后,发现改错了,想要回到过去的某一个版本。
先用git log --oneline查看你想回到过去的版本号
如上图可知,版本号就是一行最前面的那一串数字与字母组成的字符串
tips: 在里面复制,不要用windows的复制快捷键,选取之后用右键打开对话框选择copy
同样,在命令行里面复制也不是ctrl v,而是shift +insert,如果你是笔记本,还需要加上Fn键
输入命令回滚
git checkout 版本号
例子
我先在文件夹里面又创建了一个文件,然后用git add .和git commit -m "内容"提交了一次用来看出回溯版本的区别,在下图可以看到里面有两个图片文件
查看一下版本号,最新的在最上面,现在需要回到提交图片的时候,head就是指针目前的版本
我们回溯checkout回去
这里最后一排可以看到,目前指针就是指回到了过去第一次的版本,就回去了。
回溯版本就好像历史记录一样,你可以回到过去。
远程仓库操作
这里开始学习在实际应用中更多的远程仓库操作
当我们在使用远程仓库的时候,远程仓库就是你在gitee或者github之类的服务器端仓库的时候,常常需要同步或者上传下载等等,所以学习这一部分才是精髓,不然前面的也没多大的实际用处。
由于我第一次学习的时候,是看的别人的教程,他先讲的是克隆远程仓库,我晕,克隆虽然有用,但是更多人用来是连接远程仓库,所以还是先说连接吧。
基本命令
git remote add 别名 仓库地址 #关联远程仓库
git remote remove 别名 #删除别名仓库关联
git remote -v #查看已经连接的原地仓库状态
git push -u 别名 分支名 #提交到远程仓库,分支名一个人用的时候就是master,-u参数就是指定默认仓库和分支名
git pull #拉取远程仓库的内容,直接合并到本地内容,一般用这个
git fetch #也是拉取远程仓库的内容,但是要检查之后再考虑是否合并内容
连接远程仓库
-
和上面一样,创建一个空文件夹
git init初始化仓库 -
然后找到远程仓库中的地址,怎么找呢,这里以gitee为例
- 先新建一个仓库
- 找到仓库地址
把这个仓库地址复制下来,一般使用的是https的这个仓库地址
- 先新建一个仓库
-
使用命令
git remote 别名 仓库地址,这里的别名就是你给你仓库随便取个本地的名字,这个名字只会保存在本地 -
没有弹出错误信息就说明成功了,可以使用一下命令查看已经连接的仓库
git remote -v拉取远程仓库到本地
- 拉取远程仓库的内容
git pull,第一次使用需要再末尾加上别名和分支名就可以把远程仓库的内容拉取
pull下来
上传本地仓库到远程仓库
- 先在文件夹里添加好需要上传的内容,然后
git add .,git commit之后,就把修改保存到了本地仓库 - 使用
git push 仓库别名 分支名,上传到远程仓库 - 在网站上查看已经上传的内容与修改
- 可以看到已经上传成功了
注意
- 拉取远程仓库的内容
远程仓库账户
第一次连接远程仓库修改和拉取的时候,是会提示登录远程仓库的账号的
只需要填入你的账号用户名和密码就好了,这里的账号和用户名是你远程仓库平台注册的用户名和密码。
这里的信息保存在Windows的凭据管理器里面
依次打开Windows控制面板-->用户账号-->凭据管理器即可查看
pull和fetch
在上面提到了关于pull,却没有提到fetch的相关内容
如果你的本地仓库有的内容与远程仓库不一样,或者出现了内容不一致的情况,就需要考虑是哪个需要保存,你可以把本地的和远程仓库的都保存,也可以只保留一样。所以,这就是pull和fetch的用途了。