git介绍

git介绍

工作git流程

1.两类版本控制工具

常用版本形式版本管理方式优点缺点
svn集中式增量式1、管理方式在服务端配置好,客户端只需要同步提交即可 2、在服务端统一控制好访问权限,利用代码的安全管理 3、所有的代码已服务端为准,代码一致性高1、存在单点故障问题 2、分支管理不灵活 3.需要联网
git分布式文件快照1、git分支的本质是一个指向提交快照的指针,分支操作非常快捷流畅 2、大部分操作在本地完成,不需要联网 3.可以对团队外开发者贡献的代码进行审核1、git没有严格的权限控制 2、工作目录只能是整个目录

2.结构与工作流程

在这里插入图片描述

在这里插入图片描述

3.本地状态

  1. 已修改 (modified)

    ​ 工作区修改了某个文件,但还没放到暂存区

  2. 已暂存 (staged / cached)

    ​ 把已修改的文件放在暂存区,即下次提交时要提交的清单中

  3. 已提交 (committed)

    ​ 该文件已经被安全地保存在本地版本库中了

4.命令行操作

4.1初始化

git init

注:.git目录中存放的是本地库相关的子目录和文件,不要删除,也不要随便修改

4.2设置签名

作用:区分不同开发人员的身份

4.2.1项目级别/仓库级别:仅在当前本地库范围内有效

信息保存的位置:./.git/config

git config user.name [name]
git config user.email [email]

4.2.2系统用户级别:登录当前操作系统的用户范围

信息保存的位置:~/.gitconfig

 git config --global user.name [name]
 git config --global user.email [email] 

两者级别优先级

  1. 就近原则:项目级别优先于系统用户级别,二者都有时采用项目级别的签名
  2. 如果只有系统用户级别的签名,就以系统用户级别的签名为准
  3. 二者都没有是不允许的
  4. 通常为了省事只设置系统用户级别的

4.3基本操作

1.状态查看命令

git status                  #作用:用来查看工作区,暂存区的状态

2.添加及提交操作

git add [file name]         #作用:将工作区的新建/修改提交到暂存区
git commit –m “commit message” [file name]           #作用:将暂存区提交到本地库

3.查看历史记录

git log
git log -p -n       		#显示n次提交所引入的差异
git log --pretty=oneline	#每条日志的输出为一行,只显示版本号和提交时的备注
git log –oneline
git reflog					#可以查看所有分支的所有操作记录
                            #HEAD@{移动到当前版本需要多少步}

4.搜索git日志

git log --author yourname      #通过作者搜索
git log --grep keywords        #通过提交关键字搜索
git log -p -- RELEASE-NOTE.md  #通过文件名搜索

5.删除文件并找回

前提:删除前,文件存在时的状态提交到了本地库

git reset –hard[指针位置]

注:删除操作已经提交到了本地库:指针位置指向历史记录

删除操作尚未提交到本地库:指针位置使用HEAD

6.比较文件差异

git diff[文件名]       				
#将工作区中的文件和暂存区进行比较

git diff [本地库中历史版本][文件名]    
#将工作区中的文件和本地库历史记录比较
#不带文件名比较多个文件

5.历史记录的前进后退操作

git reflog  					#查看局部索引值

显示示例

在这里插入图片描述

例如第一行 d725802就是局部索引值

git reset --hard [局部索引值]	 #基于索引值操作,“推荐使用”
git reset --hard HEAD^          #只能后退,注:一个^表示后退一步,n个表示n步
git reset --hard HEAD~n         #只能后退,表示后退n步

6.reset命令的三个参数对比

–soft仅仅在本地库移动HEAD指针
–mixed在本地库移动HEAD指针,另外也会重置暂存区
–hard在本地库移动HEAD指针,重置暂存区,重置工作区

6.分支管理

1.分支

​ 在版本控制过程中,使用多条线同时推进多个任务

分支的好处:

  • 同时并行推进多个功能的开发,提高开发效果
  • 各个分支在开发过程中,如果某一个分支开发失败,不会对其他的分支有任何影响,失败的分支删除重新开始即可。
git branch [分支名]		#创建分支
git branch –v 		      #查看分支
git checkout[分支名]       #切换分支
2.合并分支步骤
#第一步:切换到接受修改的分支(被合并,增加新内容)上
git checkout [被合并的分支名]

#第二步:执行merge命令
git merge [有新内容分支名]
3…解决冲突

冲突原因:两个已经提交的分支的相同文件相同位置的的不同操作进行了合并

冲突的表现:

在这里插入图片描述

冲突的解决:

  #第一步:编辑文件,删除特殊符号
  #第二步:把文件修改到满意的程度,保存退出
  #第三步:git add [文件名]
  #第四步:git commit –m “日志信息”

注意:此时commit一定不能带具体文件名

4.git的推送·克隆·拉取
#推送
git push [别名][分支名]      #推送
-
#克隆
git origin [远程地址]		 #1.完整的把远程库下载到本地
	                        #2.创建origin远程地址别名
							#3.初始化本地库
#拉取
git fitch[远程库地址别名][远程分支名]
git merge[远程库地址别名/远程分支名]

git pull <远程主机名> <远程分支名>:<本地分支名>

注:pull=fetch+merge

解决冲突要点:如果不是基于github远程库的最新版所做的修改,不能推送,必须先拉取。拉取下来后如果进入冲突状态,则按照“分支冲突解决”操作解决即可。

6.哈希概念

哈希是一个系列的加密算法,各个不同的哈希算法虽然加密强度不同,但是有以下几个共同点:

  1. 不管输入数据的数据量有多大,输入同一个哈希算法,得到的加密结果长度固定
  2. 哈希算法确定,输入数据确定,输出数据能够保证不变
    支名>:<本地分支名>

<u>注:pull=fetch+merge</u>

​         <u>解决冲突要点:如果不是基于github远程库的最新版所做的修改,不能推送,必须先拉取。拉取下来后如果进入冲突状态,则按照“分支冲突解决”操作解决即可。</u>



## 6.哈希概念

哈希是一个系列的加密算法,各个不同的哈希算法虽然加密强度不同,但是有以下几个共同点:

1. 不管输入数据的数据量有多大,输入同一个哈希算法,得到的加密结果长度固定
2. 哈希算法确定,输入数据确定,输出数据能够保证不变
3. 哈希算法确定,输入数据有变化,输出数据一定有变化,而且通常变化很大

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值