Git教程
工作必学git
git是一种版本管理器(版本迭代),是一种版本控制工具。
版本控制是一种在开发过程中用于管理我们对文件。目录或工程内容的修改历史,方便我们查看记录和备份以便恢复以前的版本的软件技术
git的优点:
实现多区域多人协同开发
追踪和记载一个或者多个文件历史记录
组织和保护你的源代码和文档
统计工作量
并行开发,提高开发效率
跟踪记录整个软件的开发过程
减轻开发人员的负担,节省时间,同时降低人为错误
简单来说就是管理协同多人开发的技术
主流版本控制器
主流版本控制器有git,svn,cvs,vss,tfs
三种版本控制分类
一.本地版本控制
二.集中版本控制(svn)
所有的版本都存在服务器上,用户本地只有自己的以前所同步的版本,如果不联网,用户看不到历史版本,也无法切换版本验证问题,代表产品:svn,vss,cvs
三。分布式版本控制(git)
所有的版本控制都同步到本地的每个用户,每个人都拥有全部的代码,不会因为服务器损坏或者网络问题在成不能工作的情况
Git和svn的区别
Svn是集中式的版本控制系统,版本库是集中放在中央服务器的而工作的时候,用的都是自己的电脑所以必须联网更新到最新的版本,然后工作,完成工作后需要把自己做完的活推送到中央服务器,对网络宽带要求较高
而git是每个人的电脑就是一个完整的版本库,工作的时候不需要联网,因为版本都在自己的电脑上,如果两个人同时改了一个文件只需要把自己修改的推送给对方就可以互相看到对方的修改了,git可以直接看到更新了那些代码和文件
Git详解
git介绍
Git是目前最先进的分布式版本控制,linux和git之父是linus Bendic Torvalds
右键桌面空白处有命令行
git bash是 linux和Unix风格的命令
Git GUI是图形界面
git是由c语言编制而成
git下载
在官网上下载及其慢,我们需要一些镜像下载
git环境配置
用户配置文件是在c盘里面的自己文件命名的文件夹里有一个.gitconfig的文件
系统配置文件是在安装软件的文件夹/etc/gitconfig的文件
第一步.环境配置:设置所有系统用户的权限
第二步.查看环境配置
系统配置如下
用户配置如下
环境变量的配置只是为了在任意位置使用
查看提交日志
# 只能看到当前版本之前的版本
git log或者git log --pretty=online
# 可以查看到所有的版本变化
git reflog
跳转到原来的版本(来回跳转)
# 只能跳转原来的版本
git reset --hard HEAD^
想要跳转新的版本
# 可以来回跳转
git reset --hard 版本号#可以是前面几位版本号
撤销修改
- 1.在工作区进行了修改,但是尚未加入暂存区
撤销修改—将工作区中的文件恢复到最近一次add或者commit之前的状态
git checkout -- test.txt
- 2.在工作区完成了修改,并已经加入了暂存区,尚未提交到分支区,将分支区中对这个文件的记录删除掉
git reset HEAD test.txt
通过tag制定版本标签名
# 添加当前分支的别名
git tag v1.0
# 查看所有标签
git tag
# 给历史版本打上标签
git tag 标签名 版本号
# 添添加带有说明的附加标签
git tag -1 v0.1 -m "新增的标签" 版本号
# 查看某一个标签信息
git show 标签名
# 删除标签
git tag -d 标签名
git工作区域
git本地有三个区域:工作目录,暂存区,资源库(分支区)和git仓库就可以分为四个区域
下面是一些git的基本原理
git工作流程
一.在工作目录中添加,修改文件git init
二.将需要进行的版本管理的文件放入暂存区 git.add
三.将暂存区的文件提交到git仓库 git commit
四.提交到远程仓库 git push 一般的远程仓库有两种github,gitee
1.本地仓库的搭建
本地仓库的搭建有两种方式
第一种创建全新的仓库
第二种克隆远程仓库
Git文件中的四种状态
Unstacked 未跟踪,此文件在文件夹中,但并没有加入到git中,不参加版本控制,通过git add状态变为staged
Unmodify:文件已经入库,未修改,即版本库中的文件快照内容与文件夹中完全一致,这种类型的文件有两种去处,如果他被修改而变为Modified,如果使用git rm移出版本库,则成为untarcked文件
Modified文件已经修改,仅仅是修改,没有进行其他操作,这个文件也有两个用处,通过git add 可以进入暂存staged状态,使用git checkout则丢弃修改过的,返回到unmodify状态这个git checkout即从库中取出文件覆盖当前修改
Staged:暂存状态:执行git commit则修改同步中,这时库中的文件和本地文件又变为一致,文件为unmodify状态,执行git reset HEAD filename 取消暂存,文件状态为Modified
Git提交步骤
Git提交步骤
第一步创建全新的仓库,先建立文件夹,在文件夹中git bash
Git init 创建全新的仓库
会生成一个文件夹,这个文件夹是存放暂存区和本地仓库的
在这里创建一个文件
查看文件状态,没有被提交时如图下所示,git status “文件名”
添加文件到暂存区
提交到本地仓库
忽略文件
创建一个.gitlgnore
格式规范
/在最后表示文件夹
demo01.txt:忽略git仓库下所有的叫做demo.txt文件
/demo.txt:忽略git仓库根目录下所有的叫做demo01.txt文件
demo/:表示忽略所有demo的文件夹和其中所有内容
/demo/:表示忽略根目录下demo的文件夹
glob格式
取反的顺序一定要在最后,否则会被忽略覆盖掉
利用git建立远程连接
这里我们用的是gitee远程连接为例
1.注册过程就不说了,进入码云我们可以先设置个人信息
2.设置本机绑定实现ssh免密码登录,这个是非常重要的,打开c盘中的本用户中有一个.ssh文件,打开用git bash命令行,生成公钥
3.将公钥信息添加到码云的设置中的SSH公钥中,注意这里的信息是id_rsa.pub中的全部内容复制到公钥中,这个时候需要输入你的登录密码
4.用码云创建一个新仓库
注意这时候有一个公开还是私有,私有只能自己看见二公开可以选择多种许可证
,这时候你必须查阅文档来选择许可证,点开这样的图标就能查看,这个时候我们就能使用命令来克隆到本地文件中
git push提交到远程出现错误
连接到远程可能会出现password和username错误的问题
链接:https://blog.csdn.net/qq_44494957/article/details/108615840.
在idea中运用git
有时候我们不想将idea中的某些文件纳入版本控制中,比如数据库文件,临时文件,设计文件,我们需要在主目录中建立”.gitignore”文件,此文件有以下规则
1.忽略文件中的空格或以#号开头的
2.可以使用linux通配符,例如*代表任意多个字符,?代表一个字符,方括号[abc]代表可选范围,大括号代表{String1,string2}道标可选字符串
如果前面加一个!则表示例外规则,将不被忽略
3./在前面,则忽略/前面的内容
4./在后面,则忽略/后面的内容
单人操作
第一种方法:
1.新建一个项目,绑定git
2.将我们刚才的远程克隆下来的git文件目录拷贝到项目中
这个时候我们发现会有红色字体说明未提交,上面也会有一个git的图标
3.点击提交会出现,这个时候必须填写提交信息
4.当我们新写一个文件的时候,先提交到暂存区,然后提交到本地仓库,再提交到远程仓库
5.可以查看提交的信息,选log
多人操作
git branch 列出本地分支
git branch -r 列出所有的分支
git branch 文件名 新建一个分支
Git checkout -b新建一个分支,并切换到该分支
Git merge 分支名 合并指定分支到主分支
删除分支 git branch -d 分支名
删除远程分支 Git push origin --delete 分支名
第二种方法
**
**
远程库有:gitHub,gitee,gitLab,gitblit
git远程版本管理
远程仓库地址两种形式
HTTPS和SSH两种方式
SSH可以实现免密登录
创建一个新的仓库
将本地仓库关联到远程仓库
git remote add 服务器名称 远程仓库地址
git remove add origin https://gitee.com
将本地仓库推送到远程
git push -u 服务器名称 本地分支
git push -u origin master
删除本地仓库到远程仓库的关联
git remove rm 服务器名称
使用SSH连接
使用SSH连接相对于HTTPS的优势是通过非对称加密保护以实现免密登录
防止我们电脑改变gitee上面的密码后不能使另外一人连接上我们的电脑