Git的使用
欢迎来我网站www.xuanworld.top
版本控制
每一次更新都需要保存以前的版本,基本上不管学习还是工作中都需要这个东西,如果不用的话一旦新版本出现问题,就很难回到老版本,所以我们一定要学习git的使用。
版本控制的软件很多,但主要用的就是git。
版本控制的分类
1、本地版本的控制
记录文件每一次的更新,可以给每一个版本做一个快照,适合个人用。
2、集中版本控制
所有的版本数据都放在服务器上,协同开发者从服务器上同步更新或上传自己的修改
所有的版本都在服务器上,用户本地只有自己以前的版本,需要联网才能看到。
3、分布式版本控制
每个人拥有全部的代码,所有版本信息仓库全部同步到本地的每个用户,这样就可以在本地查看所有的历史版本,可以离线在本地提交,联网时再push,这增加了存储的成本,但不会因为服务器挂掉而导致不能工作。
git与SVN的区别
git是分布式,SVN是集中式的版本控制,git是世界上最先进的分布式版本控制系统。
git的下载
直接去官网下载即可,或者去找镜像下载
https://git-scm.com/
安装的话无脑点下一步就可以了,然后记得如果之前安装过git,请先删除相关的环境变量。
然后我们开始使用,你会发现出现了启动目录出现了三个东西
Git Bash:这个是类似Linux的命令窗口
Git CMD:这个是类似windows命令行的命令窗口
Git GUI:这个是图形化的Git
你可以在文件夹内右键,就可以发现git bash,至于Linux命令这里就不细讲了。
查看当前用户git配置信息
git config --global --list
他会显示你的名字与邮箱,你必须要进行一个用户的配置,要不然不知道是谁上传的文件
在C盘users里面打开你自己名字的文件夹,然后就可以发现一个.gitconfig文件,这就是你当前的文件的信息。
不过还是建议通过命令来进行更改,以防出现什么幺蛾子。
在git bash中通过以下命令进行修改用户名和用户邮箱
git config --global user.name "<你的名字>"
git config --global user.email <XXX@X.XX>
这样就配置完成了
Git的基本使用
git的操作其实很简单,也就是3个主要的上传命令和3个主要的下载命令
上传
add:从工作目录上传到暂存区
commit:从暂存区上传到本地仓库
push:从本地仓库上传到远程的仓库
下载
pull:从远程仓库下载到本地的工作区
clone/fetch:从远程仓库下载到本地仓库
checkout:从本地仓库下载到工作区
git本地仓库
-
在一个文件夹中,输入下面命令,可以生成一个隐藏的git文件
git init
-
然后可以发现这个文件夹中出现了一个新的隐藏文件,也就是.git目录,关于版本控制的所有信息都会在这个文件夹里面。
git远程仓库
-
另一种方式是克隆远程的目录,将远程服务器上的仓库完全拷贝一份到本地
git clone [url]
-
一般可以在GitHub上或者gitee上进行克隆
Git的文件操作
文件的四种状态
- **Untracked未跟踪状态:**没有加入到git仓库,不参与版本的控制,通过git add将状态变成Stage暂存态
- **Unmodify未修改状态:**文件已经入库,未修改。就是刚刚加入到仓库中,还没进行任何操作。可以通过修改文件将其变成modified修改态。或者使用git rm将其移除变成Untracked未跟踪态。
- **Modified修改态:**文件已经被修改,可以通过git add将其转化未Staged暂存态。或者通过git checkout丢弃修改,将库中的文件取出,覆盖当前的修改,返回Unmodify状态。
- **Staged暂存状态:**执行git commit则将修改同步到库中,这时库中的文件和本地文件变为一致,文件状态变为Unmodify状态。执行git reset HEAD filename取消暂存,文件状态为Modified。
文件的简单操作命令
查看文件状态的命令
# 查看指定文件状态
git status [filename]
# 查看所有文件的状态
git status
文件的简单操作
# 添加所有文件到暂存区
git add .
# 提交暂存区中的内容到本地仓库 -m 是提交了信息
git commit -m "版本修复了一些bug"
忽略文件
有的时候我们不想把一些东西给保存了,比如一些依赖的图片什么的
可以在主目录下建立".gitignore"文件,此文件会有如下规则:
- 文件中的空行或以#号开始的行被忽略
- 可以使用linux通配符。such as 星号(*)代表多个字符,问号(?)代表一个字符,方括号代表可选字符([abc]),大括号代表可选字符串({string1,string2})
- 如果名称前面有(!),表示是例外的字符,这些将不会被忽略。
- 如果名称最前面有个路径分隔符(/),表示只忽略当前文件下的这个文件,其他目录的不管。
- 如果名称后面是一个路径分隔负(/),表示要忽略的是这个名称的目录下的所有文件
such as
# 忽略所有的txt文件但是lib.txt除外
*.txt
!lib.txt
设置远程仓库
我们首先设置以下ssh公钥
输入命令
ssh-keygen -t rsa
可以得到你的C:\Users\ 你的名字 文件下出现了.ssh的一个文件夹,这个文件夹好像是隐藏的,记得打开隐藏文件才能看到。
我们要有一个gitee的账号,然后找到安全设置中的公钥SSH公钥,将这些东西放进去
然后点击确定就可以了
之后我们新建一个仓库
这样我们就有一个仓库了
PyCharm集成git
首先我们创建一个项目,然后直接git以下,把仓库中的东西复制到我们的工程文件夹里,就会发现我们的PyCharm发生了一点点变化
然后我们就成功上传文件了
们就有一个仓库了