Git使用总结(廖雪峰git)
安装
$ sudo apt-get install git
### 配置
```
# 配置用户名和邮箱
$ git config --global user.name "Your Name"
$ git config --global user.email "email@example.com"
# 查看用户和邮箱配置
$ git config user.name
$ git config user.email
# 或者
$ git config --list
配置PGP签名私钥
git config --global user.signingkey
# 解决乱码问题
$ git config --global core.quotepath false
# 颜色配置
$ git config --global color.ui true
```
### 创建及删除版本库
```
# 创建版本库
$ git init
# 删除版本库
把.git文件删除
```
### 添加文件及删除文件
```
# 添加一个文件
$ git add readme.txt # 工作区-->暂存区
$ git commit -m "wrote a readme file" # 暂存区-->版本库
# 添加所有文件
$ git add .
$ git commit -m "add all files"
# 删除文件
$ git rm test.txt
# 根据私钥提交
$ git commit -S -m "GPG-sign"
```
### 查看工作区状态、修改内容及日志
```
# 查看工作区状态
$ git status
# 查看修改内容
$ git diff readme.txt
# 查看日志
$ git log
# 查看日志(可以显示出PGP签名)
git log --show-signature
$ git log --pretty=oneline
# 查看以往的命令记录
$ git reflog
```
### 时光穿梭
```
# 版本库回到上一个状态
$ git reset --hard HEAD^
# 版本库回到其他状态(可以重返之后的状态,配合git log或git reflog使用)
$ git reset --hard 3345674
```
#### 用版本库里的版本替换工作区的版本
```
# 1.还没有git add
# 把工作区的修改丢弃,回到最近一次git commit或git add时的状态,to discard changes in working directory
$ git checkout -- readme.txt
# 2.已经git add
# Git同样告诉我们,用命令git reset HEAD file可以把暂存区的修改撤销掉(unstage),重新放回工作区:
$ git reset HEAD readme.txt
# 然后
$ git checkout -- readme.txt
```
### 连接远程库
```
# 创建sshkey
$ ssh-keygen -t rsa -C "youremail@example.com"
# 登陆GitHub,打开“settings”,“SSH Keys”页面:然后,点“Add SSH Key”,填上任意Title,在Key文本框里粘贴id_rsa.pub文件的内容
# 添加远程库
$ git remote add origin git@github.com:saitama233/lxf-gitlearning
# 把本地内容推送到远程库(第一次需要加-u参数,之后就不需要了)
# 如果git push有冲突,可以先git pull解决冲突,再git push
$ git push -u origin master
# 把远程库克隆到本地
$ git clone git@github.com:saitama233/lxf-gitlearning
# 查看远程库
$ git remote
# 查看远程库(显示更详细的信息)
$ git remote -v
指定本地dev分支与远程origin/dev分支的链接
$ git branch --set-upstream dev origin/dev
```
### 分支管理
```
# 创建分支
$ git branch
# 切换分支
$ git checkout
# 创建+切换分支
$ git checkout -b
# 删除分支
$ git branch -d
# 强行删除分支(即删除还没有合并过的分支)
# 查看分支
$ git branch
合并某分支到当前分支
1.Fast forward模式,但这种模式下,删除分支后,会丢掉分支信息。
$ git merge
2.加上--no-ff参数就可以用普通模式合并,合并后的历史有分支,能看出来曾经做过合并
$ git merge --no-ff -m "merge with no-ff" dev
#### 分支中的冲突
先查看状态
$ git status
然后修改冲突文件
$ vi readme.txt
#### stash功能(把当前还未提交的工作现场“储藏”起来,然后切换到其他分支工作,之后回来再恢复现场)
暂存
$ git stash
恢复现场
1.一种方式是用git stash pop,恢复的同时把stash内容也删了
(这种貌似只能恢复到最后一个)
$ git stash pop
2.另一种方式是用git stash apply恢复,但是恢复后,stash内容并不删除,你需要用git stash drop来删除
这种可以指定恢复到哪个stash状态
$ $ git stash apply stash@{0}
### 标签管理
tag就是一个让人容易记住的有意义的名字,它跟某个commit绑在一起。
创建标签(为当前commit)
$ git tag v1.0
创建标签(为其他commit)
$ git tag v0.9 6224937
创建带说明文字的标签
$ git tag -a v0.1 -m "version 0.1 released" 3628164
用PGP私钥签名一个标签
1.-s使用默认私钥
$ git tag -s v0.2 -m "signed version 0.2 released" fec145a
2.-u指定私钥
$ git tag -u FCC61057 v0.2 -m "signed version 0.2" 3a367e8
推送某个标签到远程服务器
$ git push origin v1.0
推送所有标签到远程服务器
$ git push origin --tags
删除标签
$ git tag -d v0.1
删除远程的标签
$ git tag -d v0.1
$ git push origin :refs/tags/v0.9
显示某个标签
$ git show v0.9
显示所有标签
$ git tag
### 设置别名
--global参数是全局参数,也就是这些命令在这台电脑的所有Git仓库下都有用。
用st来代替status
$ git config --global alias.st status
用lg来代替那一长串
$ git config --global alias.lg "log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit"
Git使用总结(廖雪峰git)的更多相关文章
- git学习笔记——廖雪峰git教程
OK,先附上教程--廖雪峰的官方网站 友情连接:git官网 简介 这里我只想引用他的原文: Linus可以向BitMover公司道个歉,保证以后严格管教弟兄们,嗯,这是不可能的.实际情况是这样的: L ...
- 【学习总结】Git学习-参考廖雪峰老师教程-总
公元2018-10-21 实验室台式机 win7 64位 参考教程: 廖雪峰Git教程 其他资料:Git-book 北大一只总结的笔记,最终整理的时候可以参考:Git笔记 评论区看到的另一个人,总结在 ...
- 廖雪峰Git入门教程
廖雪峰Git入门教程 2018-05-24 23:05:11 0 0 0 https://www.liaoxuefeng.com/wiki/00137395163059296 ...
- 廖雪峰 Git 教程 + Git-Cheat-Sheet 学习总结
廖雪峰 Git 教程 + Git-Cheat-Sheet 学习总结 本教程主要是个人的 Git 学习总结. 主要参考博客: 廖雪峰 Git 教程 Git-Cheat-Sheet 文章目录 廖雪峰 Gi ...
- 【学习总结】Git学习-参考廖雪峰老师教程六-分支管理
学习总结之Git学习-总 目录: 一.Git简介 二.安装Git 三.创建版本库 四.时光机穿梭 五.远程仓库 六.分支管理 七.标签管理 八.使用GitHub 九.使用码云 十.自定义Git 期末总 ...
- git入门(廖雪峰老师)
根据廖雪峰老师的git教程进行学习总结: 1.之前上班用的都是svn进行管理,那么svn和git有什么区别呢? svn是集中式的版本控制系统,而git是分布式版本控制系统,那么集中式和分布式版本控制系 ...
- [廖雪峰] Git 分支管理(3):分支管理策略
通常,合并分支时,如果可能,Git 会用 Fast forward 模式,但这种模式下,删除分支后,会丢掉分支信息. 如果要强制 禁用 Fast forward 模式,Git 就会在 merge 时生 ...
- 《廖雪峰 . Git 教程》学习总结
基本上,Git就是以下面的命令顺序学习的.文中笔记是从廖雪峰老师的 Git教程 中总结出来的,方面查阅命令. 1.基础 git config --global user.name "Your ...
- 【学习总结】Git学习-参考廖雪峰老师教程三-创建版本库
学习总结之Git学习-总 目录: 一.Git简介 二.安装Git 三.创建版本库 四.时光机穿梭 五.远程仓库 六.分支管理 七.标签管理 八.使用GitHub 九.使用码云 十.自定义Git 期末总 ...
- 【学习总结】Git学习-参考廖雪峰老师教程四-时光机穿梭
学习总结之Git学习-总 目录: 一.Git简介 二.安装Git 三.创建版本库 四.时光机穿梭 五.远程仓库 六.分支管理 七.标签管理 八.使用GitHub 九.使用码云 十.自定义Git 期末总 ...
随机推荐
- 统计tophat map上的read数量
samtools flagstat /SRA111111/SRR111222/accepted_hits.bam 78406056 + 0 in total (QC-passed reads + QC ...
- GDOI2017 五一游玩记
GDOI2017 到辣! 在五一比赛,成功躲了两天文化课. Day 0 早上睡到挺晚,想着同学在上课,我在睡觉,暗爽... 动车上,拿起电脑就是颓废,打模板!(然而真相是打了两个模板就开始颓了) 一天 ...
- poj 3461 - Oulipo 经典kmp算法问题
2017-08-13 19:31:47 writer:pprp 对kmp算法有了大概的了解以后,虽然还不够深入,但是已经可以写出来代码,(可以说是背会了) 所以这道题就作为一个模板,为大家使用吧. 题 ...
- Angular如何给动态生成的元素绑定事件
在AngularJS中,操作DOM一般在指令中完成,事件监听机制是在对于已经静态生成的dom绑定事件,而如果在指令中动态生成了DOM节点,动态生成的节点不会被JS事件监听. 举例来说: angular ...
- 【nginx】一台nginx服务器多域名配置
Nginx 多域名配置 nginx绑定多个域名可又把多个域名规则写一个配置文件里,也可又分别建立多个域名配置文件,我一般为了管理方便,每个域名建一个文件,有些同类域名也可又写在一个总的配置文件里.一. ...
- Android--------工具类StatusBarUtil实现完美状态栏
很早就想写这篇博客了,直到前几天有人问我这方面的问题才想起. 沉浸式状态栏是从android Kitkat(Android 4.4)开始出现的,顶部状态栏的颜色可以根据开发需求改变,使得APP风格更加 ...
- Android------第一次启动出现白屏或者黑屏
APP开发中,第一次运行启动app时,会出现一会儿的黑屏或者白屏才进入Activity的界面显示. 当打开一个Activity时,如果这个Activity所属Application还没有在运行, 系统 ...
- torch 深度学习 (2)
torch 深度学习 (2) torch ConvNet 前面我们完成了数据的下载和预处理,接下来就该搭建网络模型了,CNN网络的东西可以参考博主 zouxy09的系列文章Deep Learning ...
- 获取url参数,替换特殊字符
function GetQueryString(name){ var reg = new RegExp("(^|&)"+ name +"=([^&]*)( ...
- UVA-10537 The Toll! Revisited (dijkstra)
题目大意:每经过一个地方就要交出相应的货物作为过路费,问将一批货物从起点运到终点,最少需要携带多少货物? 题目分析:在每一站交的过路费由当前拥有的货物量来决定,所以,要以终点为源点,求一次单源最短路即 ...