一、Git概述
1.1 Git简介
Git 是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。
Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。(命令行和Linux很像)
Git 与常用的版本控制工具 CVS, Subversion 等不同,它采用了分布式版本库的方式,不必服务器端软件支持。
特点:
- 速度
- 简单的设计
- 对非线性开发模式的强力支持(允许成千上万个并行开发的分支)
- 完全分布式
- 有能力高效管理类似 Linux 内核一样的超大规模项目(速度和数据量)
1.2 Git和SVN的区别?
-
SVN:是集中式版本控制系统,版本库集中放在中央服务器,而开发人员在开发过程中,首先要从中央服务器下载最新版本,开发完成后,再将自己开发的的代码提交到中央服务器。
集中式版本控制工具缺点:服务器单点故障、容错性差
-
Git:是分布式版本控制系统,分为两类仓库:本地仓库、远程仓库
本地仓库:是在开发人员自己的电脑上的仓库
远程仓库:是在远程服务器上的Git仓库
代码托管中心:维护远程库
- 局域网下:GitLab
- 互联网下:GitHub(国外)、Gitee(码云国内)
Clone:克隆,将远程库复制到本地
Push:推送,将本地仓库代码上传到远程库
Pull:拉取,将远程仓库代码下载到本地仓库
1.3 Git工作流程
-
从远程仓库中克隆项目至本地仓库
-
从本地仓库checkout代码进行代码修改
-
在提交前将代码add至暂存区
-
commit至本地仓库,保存修改的各个历史版本
-
修改完成后,需要和团队成员共享代码时,将代码push到远程仓库
1.4 Git下载与安装
-
下载:https://git-scm.com/downloads
-
下载完成,双击安装文件,开始安装,步骤如下:
-
开始安装,next
-
自定义安装位置,下一步
-
默认,按需求打钩,下一步
-
创建开始菜单目录名称,默认,下一步
-
选择默认的vim编辑器,下一步
-
可以自定义分支名字,这里选择Let Git decide:使用默认分支名字,下一步
-
调整path环境,如何通过命令行控制Git,选择默认,就是可以用Git Bash或是Window PowerShall(第三方工具),下一步
-
选择HTTPS传输连接SSL/TLS,默认OpenSSL,下一步
-
处理文本文件的换行符,默认(签出windows风格,提交unix风格)
-
选择终端模拟器,默认,下一步
-
git pull 默认行为,选择默认,下一步
-
选择凭证管理,默认,下一步
-
额外配置
-
实验配置选项,可以不用选,下一步
-
安装中
-
安装完成,桌面右击
Git GUI:Git提供的图形界面工具
Git Bash:Git提供的命令行工具
-
初始设置,打开Git Bash,每一次提交时使用此用户,输入:
git config --global user.name “your name”
git config --global user.email “your email”
-
config一些基本指令(增删改查),注:configname为配置名,configvalue为配置值
增加:git config --global --add configname configvalue
删除:git config --global --unset configname
修改:git config --global configname configvalue
查询:git config --global configname
查全部:git config --list
二、Git至码云(国内),GitHub(国外)
简介,可以将自己的笔记或是项目放上去。
2.1 打开Git Bash生成SSH公钥
命令行:ssh-keygen -t rsa -C “您的邮箱地址”,回车三次
通过路径找到公钥位置,以记事本或文本编辑器打开id_rsa.pub文件,复制
或使用命令行:cat ~/.ssh/id_rsa.pub 将文件打印至终端,复制
2.2 注册码云进入设置找到ssh公钥
点击确定,输入码云密码,添加成功
打开Git Bash测试,命令行:clear(清除窗口)
命令行:ssh -T git@gitee.com
连接成功!
2.3 在码云上新建一个仓库获取仓库地址
-
在码云首页找到仓库旁边有个+号,点击,新建测试仓库
-
进入仓库,如图,复制仓库地址
-
在团队开发中,会有多名成员,在仓库管理中可以通过仓库成员管理添加成员
2.4 本地文件上传到码云
-
打开需要上传的文件夹,右击打开Git Bash窗口
-
初始化一个本地仓库
命令行:git init
-
添加至暂存区
命令行:git add 文件全称(可以是文件夹,也可以是多个文件,空格隔开)
提交全部:git add .
-
commit提交至本地仓库
命令行:git commit -m “first commit”
-
添加远程仓库,码云上的测试仓库的地址
命令行:git remote add origin “远程仓库地址”
命令行(查看远程仓库):git remote -v
-
将本地仓库push至远程仓库
命令行:git push origin master
发生冲突,远程仓库也有readme文件,处理冲突,在第8点
选择舍弃线上文件,强制推送,git push origin master -f
-
远程仓库查看,成功上传
-
同步冲突
本文在码云平台创建仓库上已经存在readme文件,在提交时可能会存在冲突,这时您需要选择的是保留线上的文件或者舍弃线上的文件;
-
如果您舍弃线上的文件,则在推送时选择强制推送(加上-f)
git push origin master -f
-
如果您选择保留线上的readme文件,则需要先执行
git pull origin master
然后才可以推送
-
2.5 Git常用指令
-
将远程仓库克隆到本地
命令行:git clone 远程仓库地址
-
远程仓库
-
从远程仓库获取最新版本到本地仓库,不会自动merge,先初始化本地仓库,再添加远程仓库
命令行:git fetch origin master
-
从远程仓库获取最新版本并merge到本地仓库,先初始化本地仓库,再添加远程仓库
命令行:git pull origin master
-
-
本地仓库,查看仓库状态,修改了测试.txt里的内容由test1改为test2,(提示要提交至本地仓库,先add至暂存区,commit至本地仓库)
命令行:git status
简洁:git status -s
-
查看版本号
命令行:git log
简化信息命令行:git log --pretty=oneline
-
版本回退
在 Git 中,用 HEAD 表示当前版本,也就是最新的提交 commit id,上一个版本就是 HEAD^,上上一个版本就是 HEAD^^,当然往上 100 个版本写 100 个 ^ 比较容易数不过来,所以写成 HEAD~100。
命令行:git reset --hard HEAD^ (回退上一个版本)
测试.txt文件内容回退为test1
-
删除文件
命令行:git rm 文件全称
-
继续学习,分支的学习等
菜鸟教程:https://www.runoob.com/git/git-tutorial.html
Git官方参考文档:https://git-scm.com/docs
三、在IDEA中配置Git
先到这里,后续上,嘿嘿,在此致歉!