git 基础二

××××××××××××××版本回退××××××××××××××××
每一次git commit 就把文件的当前状态存储下来,这称为快照;
方便回退到不同的版本状态;

git log 
查看版本库不同的版本,日志信息

git log --pretty=oneline
简化日志信息
返回信息结构:
commit的id号(版本号) commit时阐释

git reflog
比上两种命令多要好用,同样是返回版本库不同版本的信息
返回信息结构:
简化版本号 HEAD@{编号} 操作类型:该操作时的信息

注意:操作类型,一般是commit,reset(退回到某个版本库的命令)



注意:HEAD和简化版本号相同,都是版本号,形式不同而已

注意:此命令和git log 不同,在退回到某个版本时,
git log 不会显示全部的日志信息,显示到当前版本位置;

git reflog 会记录每一次

回退到某个版本
git reset --hard 版本号
或者
git reset --hard HEAD@{编号} ------- 通过git reflog 查看

版本号通过git log;git reflog;查看


注意:理解关键字HEAD,相当于指针,指向不同的版本库所在的存储位置

版本如何方便的回退到最新版本位置?
1.第一步,通过git reflog查看
2.第二步,通过git reset --hard 版本号 回到指定版本

如何查看当前所在的版本?
1. 第一种方法:
通过 git log 方式,只会显示从最初的版本到目前版本的日志

2. 第二种方法:
git reset --hard HEAD
HEAD是指针,表示当前所处的版本
××××××××××××××××××××××××××××××××××

修改撤销

1. 撤销暂存区中的修改
git reset HEAD 文件名
这是暂存区没有了该文件,该文件回到了工作区

注意:git reset不仅可以版本回退,还可以撤销暂存区中的修改
HEAD表示最新版本

2. git checkout --文件名
2.1 如果文件在工作区,即将修改撤销,回到最新版本状态
这种情况,直接打开文件修改即可
2.2 文件在暂存区,没什么变化

注意:
即使文件在暂存区也不一定撤销所有的修改,这是可以在工作区再次打开该文件,
修改后,再次add,即可;这是暂存区的该文件是刚刚更改的文件

**********************************
删除文件

*********************************
远程仓库

在服务器中建立仓库,各个客户端可以clone仓库到本地;
git本地仓库 与 github仓库 传输需要ssh加密

本地仓库与github仓库交互,为何要配置ssh文件?
客户端与github之间的通信遵循ssh协议,所以需要在客户端,服务器端设置
1.在git本地设置ssh秘钥
2.在github中将git本地设置的秘钥填写在相应的设置中
这样,github就知道在与哪个用户交互

别人可以克隆你的仓库,但是无法提交修改等;即只读不写

在本地设置git的ssh文件
1.设置ssh key
在home/xubiao目录下查看是否存在.ssh文件
【.ssh表示该文件是隐藏的,在显示时,需要使用ls -a】

在.ssh目录下是否有id_rsa id_rsa.pub文件

如果不存在,创建这两个文件,这是存储秘钥的文件
创建语句: ssh-keygen -t rsa -C 邮箱

一直下一步就可以,不需要输入任何东西;
命令语句在.ssh目录下输入,这是在.ssh目录下生成以上两个文件

2. 将id_rsa.pub中的秘钥填入github中
在github中填写秘钥后,要验证github密码

连接远程仓库?
前提:必须配置ssh

1.远程仓库存在,直接在客户端克隆
git clone 远程仓库地址

此时客户端克隆的仓库已经和远程仓库建立了联系;
提交时,可以直接执行以下语句:
git push -u origin master
-u表示首次提交时,客户端master分支与远程master分支合并


2.在本地创建仓库,服务器中是个空仓库
首先,本地仓库,远程仓库建立联系
git remote add origin 远程仓库地址

其次,提交
git push -u origin master

在于远程仓库建立联系时,有两种方式:
1.通过ssh协议的地址 2.通过https协议的地址
ssh协议方式在提及时不需要输入github的用户名/密码

注意:
不管本地仓库是克隆远程仓库,还是新建本地仓库然后和远程仓库建立连接,
只要是通过ssh协议,在提交时,就不需要输入github的账号/密码
通过https协议,需要输入github的账号/密码

与远程仓库交互有两中协议:https,ssh
建议使用ssh,速度快

原文地址:https://www.cnblogs.com/RocketV2/p/5379917.html