目录
3.3.2 git status 检测是否有未提交到暂存区的文件
3.3.6 git reset HEAD 从暂存区移除指定文件
一、Git的安装
1.1 Git是什么
Git是一个开源的[分布式][版本控制系统],用于敏捷高效地处理任何或小或大的项目;
版本控制器
CVS/SVN/Git
类似的代码托管网站还有:github/码云gitee/阿里云Code源码管理;
1.2 注册Gitee账号
gitee官网:Gitee - 基于 Git 的代码托管和研发协作平台
注册一个账号
1.3 在电脑中安装Gitee
我们需要在官网上下载安装gitee,Leaf这里把下载地址粘贴出来;
Git下载地址:Git - Downloads
选择适合自己的版本下载就好了;
下载好后,我们就把它安装到电脑中,
傻瓜式安装,
记得不要安装到C盘里,Win10可能会有权限问题;
检测安装:
我们安装后右键,如果出现了这两个选项就代表我们安装成功。
二、Gitee的基础使用
2.1 Git与SVN的区别
① 去中心化;
【Git是分布式的,SVN不是:这是Git和其它非分布式的版本控制系统,例如SVN,CVS等,最核心的区别。】
② Git仓库的任何一个拷贝都可以独立作为一个服务器来使用;
③ 在Git中文件有四种状态:
未跟踪(untrack):表示文件为新增加的
已修改(modified):表示修改了文件,但还没保存到git仓库中。
已暂存(staged):表示对一个已修改文件的当前版本做了标记,使之包含在下次提交的快照中
已提交(committed):表示文件已保存在git仓库中。
④ Git存在分支
2.2 gitee网站的实践操作
1、创建仓库
初始化
等我们初始化后,就可以将仓库改为公有的了;
点击右角的管理
改为开源仓库
2、添加文件
接着我们一起来看看如何在仓库直接添加文件;
编辑文件内容
还有一种建立文件的方式,可以在建立文件的同时建立文件夹;
就是输入/
并且建立一个文件:
提交看看结果:
3、删除文件
删除也很简单,点击我们要删除的文件,右上角删除。
4、删除仓库
删除仓库也差不多,只是严谨一点而已;
点击右上角的管理,左侧菜单选择删除菜单;
删除仓库需要填写确认要删除的仓库名、用户密码。
删除成功:
三、项目组长与组员的Git使用
接下来我们就以项目开发中,项目组长与组员之间关于Git的使用为场景。
3.1 关于将文件上传至gitee仓库
本地电脑
代码区:工作区间,放代码的地方;
暂存区:git所管理的暂存区域
本地仓库:git所管理的本机的硬盘区域
远程电脑
远程仓库:gitee
明确使用Git命令提交文件至远程仓库的大致流程:
代码区 ---> 暂存区 ---> 本地仓库 ---> Git远程仓库
代码区 ---> 暂存区 ---> 本地仓库:这个过程是不需要联网的;
本地仓库 ---> Git远程仓库:需要联网的
提交三部曲:
add,commit,push三部曲。
3.2 配置Git账号
我们在使用Git的常用命令之前需要先配置账号;
输入命令git config --list 可以查看git的配置列表
里面并没有我们的gitee的账号,所以我们需要配置一下:
配置命令:
git config --global user.name "账号名"
git config --global user.email "邮箱号"
3.3 Git的基本命令
我们根据上面的学习,建立一个开源仓库、并且添加一个文件;
3.3.1 git clone 克隆
这个命令就是用来把git仓库的项目导入本地的;
首先我们找到一个目录位置,用来存放要下载的项目,
然后右键,选择 Git Bash Here
打开黑窗口后,输入指令git clone + 要下载的项目链接
项目链接:
点击克隆/下载,开源项目选择HTTPS复制;
然后在黑窗口需要右键 ---> 选择Paste 进行粘贴;(Shift + Insert 也可以)
下载成功
克隆成功后,我们的文件夹中就有了对应的项目;
我们手动建立一个文件 User.java
然后在黑窗口输入 ll ,查看当前项目下的所有文件。
可以看到我们刚刚新建的文件:User.java
3.3.2 git status 检测是否有未提交到暂存区的文件
我们可以通过这个指令测试一下刚刚建立的文件User.java,
输入指令git status User.java
3.3.3 git add 交予gitee(暂存区)
我们将未跟踪的文件添加到暂存区,然后再次检测;
这个指令有两个写法,还有一个就是:'git add .'
3.3.4 git commit 提交到本地仓库
我们输入指令git commit,将暂存区的文件提交到本地仓库;
-m是附加注释的意思;
3.3.5 git push 将本地仓库上传至远程仓库
直接输入git push,就好了。
3.3.6 git reset HEAD 从暂存区移除指定文件
我们先新添加两个文件,查询状态:
可以看到,新添加了两个文件,接着我们把它们直接加入暂存区中:
然后我们输入git reset HEAD 文件名,然后再次查询它们的状态:
3.3.7 git pull 拉取远程仓库的数据
情景:组长修改了项目的内容,组员在本地仓库需要更新最新的项目数据;
我们现在gitee中编辑一下其中一个文件
并且还删除一个文件;
然后我们输入ll,再次查询一下:
接着我们就利用指令:cat User.java 来看看文件的内容,看看是否是组长刚刚编辑过后的内容;
果然,内容并没有更新;所以,我们就需要用到我们的指令:git pull,来进行更新。
然后我们输入两个指令来看看,是否更新成功;
输入ll:
输入cat User.java:
3.3.8 git init 初始化项目,交予git托管
在现实开发中,我们不可能一个个的手动的在git上建立文件,一般都是把项目环境都搭建好了再上传给git管理;
所以我们就需要利用到git init
1、创建一个文件夹,当做一个搭建好的项目;
2、上传到gitee上(git init)
3、与远程仓库建立关联
3.1 新建仓库
先输入指令
git remote add origin https://gitee.com/Leaf1217/leaf-0920.git
我们在关联之前必须要先实现它们之间的合并!
git pull --rebase origin master
然后再提交
git push -u origin "master"
提示没有提交没有关系,是因为我们还没有把那些文件添加到暂存区中去;
然后我们把没有添加到暂存区的文件都添加进去:
然后就是git三部曲:
最后我们一起去gitee中看看是否成功把项目上传上去;
注意:我们发现文件夹没有创建成功,是因为git是不允许文件夹为空的。
总结一下步骤:
组长:
1、搭建项目环境,测试没有问题;
2、执行 git init 命令,标记该目录由git所管理;
3、在 gitee 中新建仓库
4、通过 git remote add origin 仓库路径,将本地仓库与远程仓库进行关联;
5、将本地仓库与远程仓库进行文件同步
git pull --rebase origin master
6、执行git三部曲 add、commit、push将搭建好的项目推送给远程仓库;
组员:
1、通过 git clone 把组长搭建好的项目克隆本地;
2、测试组员修改、新增代码是能够推送到远程仓库中去
测试git add、commit、push是否有用;
四、Git冲突
4.1 冲突产生背景
修改的文件的版本与远程仓库的文件版本不一致
4.2 演示组员克隆项目流程
输入 ”git clone 克隆的项目路径 取个项目名“:
然后我们再打开一个git黑窗口,当做为组长;
场景:组长编辑readme.java文件:
输入指令:vi(编辑文件)
按 i 键 黑窗口才允许输入
按 i
输入Esc退出
再输入 :wq
然后组长再把这个编辑了的文件利用 git 三部曲上传;
查询一下gitee仓库是否更新:
场景:组员合并最新版本的项目;
可以看到组员也已经更新最新版本;
场景:组长再次修改readme.java文件
输入 vi readme.java
修改内容后:
git add、git commit -m、git push三部曲上传到远程仓库
git push的时候遇到一个错误:
fatal: unable to access 'https://gitee.com/Leaf1217/leaf-0920.git/': Could not resolve host: gitee.com
在网上查了一下,查到本机的ip地址 加上gitee.com,然后添加到git安装目录的git/etc/hosts中就行了
解决方法:
Win + R,输入cmd出现命令行,输入ipconfig -> 找到当前使用的ipv4 (也就是IP地址)
然后添加到git安装目录的git/etc/hosts的最后一行
例如:127.0.0.xx gitee.com
重新打开gitpush输入git push提交就好了
然后继续我们前面想演示的场景;
场景:这个时候,组长又对readme文件进行了一次更新,这时,组员Leaf在没有更新的情况下又直接对readme文件进行编辑操作;
组员添加一条:
然后git三部曲,在push的时候就出现了错误
就是因为组长修改的文件,在组员这里还没有同步,所以我们输入git pull
然后输入cat readme.java进行查看:
可以看到,我们之前做的修改内容都有了,但是,其中就多了我们铺垫了这么久的:"冲突"
解决:
输入 vi readme.java 编辑冲突
删除后
然后git 三部曲提交到远程仓库
远程仓库中就保留了组长和组员共同修改的代码了
4.3 总结
冲突的产生就是因为修改的文件的版本与远程仓库的文件版本不一致
解决方法:
现象:git push 推送失败
体现形式:
。。。。。。。
===therys===
。。。。。。
======>
git pull更新远程
处理删掉冲突文件()
处理完毕后再进行git三部曲
OK,今天关于gitee入门的也是最常用的一些命令使用的分享就到这里啦,我们下次再见!