1. 为什么需要git?
个人在工作或者学习的时候会遇到这种事情:
写论文:一个论文可能要修改很多次,可能会产生很多个版本
- Java入门到精通.word 原版
- Java入门到精通.word 原版2019.4.20 XXXX.修改了 java历史
- Java入门到精通.word 修订版2019.5.20 XXXX.修改了 名字错误
- Java入门到精通.word 终极版2019.6.20 XXXX.修改了 名字错误
- Java入门到精通.word 最终版2019.7.20
- 辞职信,…
我们需要一个东西来进行版本的控制管理;
那么这个问题如果发展到一群人?
比如说我们公司协同开发一个网站:
- 总共的代码就一份
- 但是会有多个人去共同开发
- 每个人都有每个人的事情,我们无法做到统一;
解决方案: 集中式处理;
-
每个人修改完毕,就提交到一个大家都能访问到的服务器;
-
每个人要增加或者修改代码,需要同服务器上拿来最新的代码;
-
修改完毕后,再次提交,保证服务器中有最新的代码;
解决方案优化: 分布式处理; -
每个人写完代码后,立马将更新的东西告知所有人;
-
每个人都拥有全部的代码;
-
每个人都是一个独立的服务器代码库;
-
假设一个人的代码丢了,直接从别人那个拷贝一份即可;
版本控制
在开发或者工作中,你每一次修改都会产生一次对应的记录,记录修改者,修改的内容,修改的时间等等。
方便开发人员及时获取最新的动态,并且知道更新了什么地方。
简单的说,就是多人协同开发的一个基础
分布式 VS 集中式
分布式: 开源项目
- 不会被服务器限制
- 所有人可以拿到最新的源代码
- 不安全。
集中式: 公司内部项目
- 只有一个公共的服务器
- 所有人写代码之前,需要去拿最新的代码过来
- 写完之后,要及时提交代码到服务器
- 安全。
Git与SVN的区别
SVN是集中式版本控制系统,版本库是集中放在中央服务器的,而工作的时候,用的都是自己的电脑,所以首先要从中央服务器得到最新的版本,然后工作,完成工作后,需要把自己做完的活推送到中央服务器。集中式版本控制系统是必须联网才能工作,对网络带宽要求较高。
Git是分布式版本控制系统,没有中央服务器,每个人的电脑就是一个完整的版本库,工作的时候不需要联网了,因为版本都在自己电脑上。协同的方法是这样的:比如说自己在电脑上改了文件A,其他人也在电脑上改了文件A,这时,你们两之间只需把各自的修改推送给对方,就可以互相看到对方的修改了。
下载使用GIt
官网下载地址:https://git-scm.com/ 官网下载十分的漫长;
淘宝Git镜像下载地址:http://npm.taobao.org/mirrors/git-for-windows/ 【推荐】
下载完之后,就可以直接安装,一直点击下一步,直到安装完成,然后我们打开,就是下面的界面
注意: 文件夹名字总好是英文名,不然每次打开总是提示找不到文件
按住ctrl+鼠标滚动可以调节自己想要的窗口大小
4. Linux常用命令
- pwd:查看当前所在目录
- cd:切换文件夹
- cd~:切换到用户所在目录
- cd/:切换到根目录
- ls:列出清单
- 清空屏幕:clear
- 创建一个文件夹:mkdir 文件名
- 删除一个文件夹:rm -r test
- 创建一个文件:touch 文件名
- 向文件中写入内容:echo 内容>文件名
- 查看历史记录:history
- 查看命令帮助文档:命令 --help
git设置用户名和邮箱
git安装完之后第一步就应该是这是用户名和邮箱;相当于一个标识,你之后每次一提交项目,都会附带这个信息;
git config --global user.name “自己设置一个名字”
git config --global user.email 你的邮箱账号
必须要配置这两个属性
查看Git全部的配置;
git config -l # 查看git的全部配置
git config --global --list #查看当前用户的配置
git配置文件存放地址:
-
用户配置的global文件。 c盘:/用户/${当前用户}/ .gitconfig
-系统配置文件; \Git安装路径下面\mingw64\etc\gitconfig
Git 工作理论 -
工作目录 : 就是自己电脑上的一个属于git的文件夹;
-
暂存区 :我们看不到,提交的信息暂存在这里
-
Git本地仓库 :我们看不到 , 通过暂存区提交过来
-
Git远程仓库 : GitHub、码云等等,负责托管我们的项目 , 需要从Git本地仓库提交过来;
获得一个Git仓库
本地搭建一个仓库 -
随便在一个位置建立一个文件夹
-
在文件夹中右键 , git bash here ,在这个文件夹下打开git命令行
-
- 输入命令 git init ;
-
发现在文件中多了一个隐藏的文件夹 .git
-
至此,一个本地的git仓库就搭建成功了。
-
我们先在工作目录下创建一westos.txt , 写入一段话,Hello,git
-
通过git add命令将这个文件添加到暂存区 , 通过 git status 查看当前状态
-
- 暂存区对应 :.git隐藏文件下的 index文件
-
我们通过 git commit -m “注释” 提交到本地仓库
-
通过git status 查看是否提交成功!
-
本地测试OK;
-
远程克隆一个仓库 git clone []
-
我们可以github或者码云上去克隆一个项目;
搭建自己的远程仓库
我们这里使用码云 : https://gitee.com/ -
注册账号,注册的时候可以写自己的个性域名
-
比如说我的叫 : https://gitee.com/kuangstudy
-
登录成功后可以浏览一会;
什么是码云
码云是开源中国社区2013年推出的基于 Git 的完全免费的代码托管服务,这个服务是基于 Gitlab 开源软件所开发的,我们在 Gitlab 的基础上做了大量的改进和定制开发,目前已经成为国内最大的代码托管系统,致力于为国内开发者提供优质稳定的托管服务。
创建你的第一个仓库
https://gitee.com/help/articles/4122
任务: -
搭建一个远程仓库
-
克隆一个远程仓库到本地
-
push到码云远程仓库
-
查看提交之后到远程的信息
将本地电脑码云连接起来 -
打开用户目录下,找到id_rsa.pub
-
码云中填写SSH连接内容
解决问题:没有id_rsa文件
ssh-keygen -t rsa -C "youremail"
IDEA中使用Git
选择设置
配置git
打开项目
在IDEA中配置项目集成到Git中;
配置完这一步,项目文件中,产生了一个 .git文件夹,说明项目成立一个git项目
我们可以选择手动提交,也可以使用IDEA提交,我们选择使用IDEA
填写提交信息
努力加载中
远程仓库:===网盘
可以多个人协同开发;
注意:
Git提示error setting certificate verify locations解决办法
我提交的时候,总是报错,令人非常不爽
打开git bash,键入以下命令,从而关闭证书校验。
git config --system http.sslverify false
当我们输入远程仓库的密码和账号时,我们可以打开git bash输入以下命令
git config --system --unset credential.helper
注意账号是你的账号拼音拼写,