在客户端操作之前,需要安装git,可以查看连接→→git的下载安装
一、客户端操作
1.1 界面说明
这边有三个选项:
Clone a repository from the Internet...
从互联网复制仓库到本地。
由于Git是一个分布式版本控制软件,中央服务器会创建资源仓库,本地也有一个资源仓库。将中央服务器的仓库拷贝到本地的操作叫克隆。
Create a New Repositiry on your hard drive...
在本地创建一个新的仓库。
Add an Existing Repository from your hard drive...
如果当前存在仓库,将本地的仓库导入到当前工具当中。
1.2 创建仓库
填写完仓库名称、路径,创建仓库。
1.3 移除仓库
从软件中移除
从git窗口中移除,但该文件夹还依然存在。可以恢复。
从系统中移除
文件夹被删除。
1.4 文件创建
在当前仓库的目录下创建文件,就可以被动态识别到。 但此时的文件并不是存储在仓库中。
1.5 分支branch
由于Git是一个分布式的版本控制软件,所以用户在作业提交的时候,需要定位到每一次提交的版本,且不同的作业之间可能存在冲突。为了解决这个问题,Git提供了分支branch操作。
分支相当于提供了一个副本,不同的用户针对不同的副本进行操作。不同的分支可以进行合并,如果存在作业之间的冲突,那么只需要在最后做一次处理就可以。
任务提交时文件冲突提示:
1.6 README & IGNORE
readme:在初始化仓库的时候增加 readme 文件
git工具有比对功能,新增文件会自动识别,图片、word文档、压缩包等无法进行比对,所以git软件本质上是用于代码文件的版本控制。git可以用来保存word文档,只是没有自动比对功能。
忽略备份文件,可以用于忽略本地的配置文件。
1.7 文件图标和比对
比对功能:
-0:旧的文件没有内容;
+1:新的内容增加了1行。
-1:旧的文件为第一行;
+2:新的文件第一行,第二行
二、GitHub远程仓库
登录成功之后会进入到如下页面:
填写完仓库基本信息后,得到当前仓库。远程操作和客户端操作基本一致。
远程仓库内容下载到本地。 File -> Options -> Sign in 就可以关联到客户端工具。
需要将仓库的内容下载到本地,可以选择 File -> Clone repositiry,相当于下载的操作。
本地仓库中增加文件之后,远程仓库里并没有相应文件,选择 Push 推送,将当前文件推送到远程仓库当中。
三、gitee
GitHub由于是国外的网站,访问较慢、且容易出现访问中断、访问延迟等,我们可以使用国内第三方代码托管平台 gitee。和 GitHub 界面大同小异,新建一个远程仓库。
远程仓库下载到本地:
打开本地仓库,选择 File -> Clone repositiry -> URL ,将地址复制到里面。
四、Git 集成
在 GitHub 中共享项目
配置完成后,就可以将当前项目发送到远程仓库。在发送之前,需要在本地仓库中添加如下内容:
将文件提交到本地仓库:
commit:将文件提交到本地仓库
commit and push:将文件提交到本地仓库后,再上传到 GitHub 仓库
将远程仓库的文件同步到本地:
fetch - 抓取;pull - 合并
git 拉取远程仓库代码:
在 Gitee 中共享项目
安装 gitee插件
其他操作和 GitHub 一样
版本号
git 会把每次提交记录下来,形成历史记录。每次的提交 git 软件都会生成一个版本号,是40位长度的16进制数字字符串。
在 Git 中,版本号是git根据当前提交内容采用了一种特殊加密函数算法 SHA-1(40位)。由于 git的版本库可能会有多个,但版本号是针对某一个库的,就意味着每一个库中会有一个版本号,但git可以把多个版本库合并成一个库,在合并的过程中,不同库中的相同的版本号合并后会产生冲突。
但如果采用加密算法SHA-1,版本号基本不可能重复。
另外,由于长度有40位,所以也可以用于定位仓库中的文件位置(2+38)。
2-文件夹;38 - 文件名
五、版本号
文件操作
查看文件
git cat file -p 文件版本号 // -p 是一个参数,表示友好的查看某一个文件
git 在一次提交中创建了很多版本号。 当前为 初始化commit
文件新增后,修改后的文件也会关联源文件
文件修改
文件删除
相当于文件状态不指向文件,本质上并没有把文件真正的删除。文件依然保存在仓库中,作为历史操作中的文件。
分支操作
在 git 中有一个HEAD文件,指向一个目录。里面放置的是一个版本号,指向最后一次提交。head文件可以用于指向不同的分支。而不同的分支可以指向相同的提交。
这样就可以实现不同的分支指向不同的版本。,互相之间互不影响。
git 中分为工作区域、存储区域 和 比对区域(暂存区)。不同区域的功能不同,文件状态也不同。
在工作区域,可以针对不同分支进行操作;在存储区域,可以比对文件的变化如新增、删除。在三个区域中,文件的状态都是不一样的。
比如,新增了文件之后,git 需要对当前文件进行比对(如果文件ignore则不需要比对),文件比对完成之后commit到了存储区域,所以文件的状态是不一致的,可以通过指令来进行控制。
六、 Git 命令
版本查看
git -v 或 git --version
查看git当前版本
创建仓库
git init
初始化git仓库
git clone [git远程仓库地址]
克隆git远程仓库
git clone [git远程仓库地址] remote-git-rep
克隆git远程仓库 并更改名称
仓库配置
git config user.name five
git config user.email xxx.com
配置git的名称 和 email
git config --global user.name five
git config --global user.email xxx.com
添加全体配置
文件操作
git status
git暂存区的状态
git add [文件名称]
git add *.txt
放到暂存区做比对操作
git rm --cached [文件名称]
将文件从缓存区删除
git commit -m 新增文件
文件提交,其中 -m表示消息
git log
查看提交历史记录
git log --oneline
用一行显示当前提交
git add b.txt
git commit -m 删除文件
删除文件。由于删除的本质也是一次提交,只是仓库在引用时不再引用该文件。
文件误删除
文件的删除是在工作区域删除,但是由于已经commit操作,存储区域保留有该文件,所以把存储区域的文件恢复到工作区就可以。
git restore a.txt
恢复误操作文件
如果当前文件在仓库中的最新版本也被删除,就无法恢复。可以通过查看git提交的历史记录,将git当前的版本库重置到某一次提交。
git log --oneline
git reset --hard [版本号]
但是reset会导致丢失提交过程。我们希望提交版本都能够保留,可以通过revert命令
git log --oneline
git revert [下一次提交的版本号]
将版本还原到当前版本号之前的版本
分支操作
分支基于提交
git branch [分支名称]
创建新分支
git branch -v
查看当前分支
git checkout [分支名称]
切换当前分支
git checkout -b [分支名称]
将创建分支、切换分支两步合并
git branch -d [分支名称]
删除当前分支
分支合并
当前有两个分支,如果希望分支合并,需要切换到master分支下,将order分支合并到master分支下。
git checkout master
git merge order
// 对冲突文件c.txt进行处理
git add c.txt
git commit -m c3
此时会发现出现提示,master和order中都出现了c.txt文件,需要进行比对。 打开c文件,里面出现了 比对的内容,需要人工进行比对。
标签操作
git log [某一次的提交版本]
查看某一次的历史提交记录
我们可以通过上面的操作来进行历史提交记录的查看。但是版本号太长不方便,我们可以通过标签来对我们的操作增加别名。
git tag
查看当前标签
git tag uptfile [版本号]
将这次提交改别名
git log uptfile
查看当前标签下的历史记录
git tag -d uptfile
删除标签
标签同样也可以用来创建分支。分支其实就是引用了一个版本号,而标签就是给这个版本增加了别名。
git checkout -b [标签名称]
切换到该标签名称的分支目录下
远程仓库
基础操作
git remote add origin [远程仓库地址]
关联到远程仓库
git remote remove origin
删除远程仓库
git remote rename origin
重命名远程仓库
文件的上传
git push origin
将本地的文件上传到远程仓库
如果是SVN方式,需要进行认证操作
ssh-keygen -t rsa -C[远程仓库地址]
将生成的公钥放到git远程仓库中,重新上传本地文件,就可以完成提交操作
文件的拉取
git pull origin
拉取远程仓库中的文件
七、GitLab 极狐
启动 GitLab
gitlab-ctl start
启动
gitlab-ctl stop
停止
访问 GitLab
使用浏览器访问 GitLab,输入网址:http://[虚拟机主机名]/users/sign_in
初始化时,软件会提供默认管理员账户:root,密码为随机生成。随机生成的密码在 /etc/gitlab/initial_root_password 文件中查找密码。
与idea集成
安装相应插件
配置gitlab