天天看点

分布式版本控制工具——Git

一、写在前面

Git是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。发明人就是大名鼎鼎的Linus ,发明初衷为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。需要知道的是Git底层文件验证采用的是SHA-1,(SHA-1)哈希算法可以被用来验证文件。哈希算法有如下特点:

1、不管输入数据的数据量有多大,输入同一个哈希算法,得到的加密结果长度固定

2、哈希算法确定,输入数据确定,输出数据能够保证不变

3、哈希算法确定,输入数据有变化,输出数据一定有变化,而且通常变化很大

4、哈希算法不可逆

二、Git的优势

  1. 大部分在本地完成,不用联网
  2. 完整性保证
  3. 尽可能添加数据而不是删除和修改数据
  4. 分支操作非常快速刘闯
  5. 和Linux命令全面兼容

三、Git的基本结构

工作区:写代码的地方

暂存区:Git临时存储的地方

本地库:Git存放的历史版本

四、本地库和远程库

局域网:GitLab

外网:GitHub、码云

1、团队内部协作:

push:本地库提交到远程库

pull:拉取远程库代码到本地库,包括两个操作fetch(拉取)+merge(合并)拉取并合并,就是将远程库的代码更新到本地库

clone:将远程库所有东西下载到本地,并且建立本地库

2、跨团队协作

如需要在被人的GitHub仓库提交自己的修改,跨团队协作

fork:复制一份别人的代码在自己的远程库

pull request:拉取请求,发送自己的修改

merge:合并保存

五、本地库初始化

”命令:git init

注意:.git目录不能删除

六、设置签名

1、作用:在你提交代码的时候作为一个标识,代表这是你提交的代码,这里的签名和远程库上面的账号和密码没有任何关系

2、命令

命令
git comfig user.name 你的签名
git config user.email 你的邮箱
           

3、注意:签名分两种:

项目级别:也叫仓库级别,仅在当前本地库范围内有效,git gonfig命令

系统级别:当前操作系统的用户有效,git config --global

**优先级:就近原则

4、查看签名

仓库级别:
cat .git/config
系统级别:
cat `/.gitconfig           

七、常用命令

git status:查看工作区、暂存区状态
git add 文件名:添加文件到暂存区
git add *:添加所有文件到暂存区
git rm --cached 文件名:将暂存区恢复到工作区
git commit -m"提交日志" 文件名:提交文件到本地库
git commit -a -m"提交日志" :添加所有文件到本地库
           

八、历史记录

1、查看历史记录

git log

git reflog 简洁的查看历史记录,HEAD值简单化

2、多层显示控制方式

空格向下切换

b向上翻页

q退出

九、版本前进后退

1、基于索引值操作

git reset --hard 索引值

git help 具体命令:查看帮助

2、reset命令的三个参数对比

--sert:仅仅在本地库移动HEAD指针

--mixed:从本地库移动指针,重置暂存区

--hard:本地库移动指针,重置暂存区,重置工作区

## 十、删除后找回

一定要明确一点就是,你从本地库或者工作区删除了文件,一定要将删除的操作add和commit 到本地库才可以找回相关文件。

git reset--hard 指针位置

## 十一、比较文件差异

git diff:工作区和暂存区比较

git diff HEAD 文件名:本地库和历史版本比较,不带文件名是比较多个文件

## 十二、git的分支

1、什么是分支

版本控制中, 使用多条分支同时推进多个任务

2、查看所有分支

git branch -v

3、创建分支

git branch 分支名

4、切换分支

gitcheckout 分支名

5、合并分支

第一步L切换到被合并分支

第二步:执行git merge 分支名

6、解决分支冲突

删掉相关标记

git add 文件名:标记为已解决

git commit -m“”“”:提交解决冲突

注意:提交的时候不能带文件名

## 十三、GitHub

1、给远程库URL新建别名

git remote add 别名 远程仓库URL

2、查看远程仓库地址别名

git remote -v

3、推送到远程库

git push 别名 分支名

4、克隆远程仓库内容到本地

git clone 远程地址别名

注意:克隆会晚会智能的把远程库下载到本地,创建origin远程地址的别名,并且会初始化本地库

5、抓取:将远程分支放到本地

git fetch 别名 分支名

6、合并

将远程分支合并到本地库

git merge 悲鸣/分支名

7、抓取并合并

git pull 别名 分支名

## 十四、ssh免密登录和eclipse下的git操作

这个可以直接访问仓库,对应资源可以下载

https://github.com/freestylefly/javaStudy/tree/master/Git%26GitHub

## 十五、写在最后

如果有想要学习资源的话欢迎评论咨询!

继续阅读