Git学习小结
版本控制工具
集中式:
- CVS
- SVN 集大成者
分布式:git
- 创始人:inux Towards 2005年
工具
- 最好使用linux(oh-my-zsh)
- gitbash -> cygwin
- git service :gitolite
工作区 --> 暂存区 --> 服务器
基本命令:
#当前仓库配置文件路径:.git/config
#当前用户配置文件路径:当前用户主目录下隐藏的 .gitconfig
#配置全局用户名、邮箱, global是作用于当前用户的,不加则只作用于当前仓库,
$ git config --global user.name "mbq"
$ git config --global user.email "mbq6060@qq.com"
#配置全局显示颜色
$ git config --global color.ui tru
#为命令配置别名alias.<别名>
$ git config --global alias.st status
#配置全局日志输出样式别名
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 init
#添加文件到版本库
$ git add <file>
#添加当前目录下的所有文件
$ git add .
#提交版本
$ git commit -m "提交描述"
#查看仓库状态
$ git status
#查看git版本区别
$ git diff
#删除文件
git rm <file>
#历史日志
#查看提交历史纪录,倒序排列,数字表示查看最后几次提交历史
$ git log [1]
#简化为一行展示
$ git log --pretty=oneline
#查看自己的历史操作(可以回退到这些版本)
$ git reflog
#回退到上一个版本,也可使用HEAD~100
$ git reset --hard HEAD^ <file>
#回退到指定版本号,--和hard间没有空格
$ git reset --hard 116f748
--soft 表示仍然保留当前工作区的更改
#撤销工作区的更改(还未进行 add 操作)
$ git checkout -- readme.txt
$ git checkout [commit-number] --readme.txt 将此文件退到指定版本
#分支管理
#创建并切换分支dev
$ git checkout -b dev
#相当于以下两条命令
$ git branch dev
$ git checkout dev (切换到之前的版本则会进入到一个游离分支状态(分离的头指针),git merge 可以合并回来)
#查看当前分支
$ git branch
#合并分支(Fast Forward)
$ git merge dev
#删除分支
$ git branch -d dev
#以普通模式合并分支,能从历史中看出来,而fast forward合并方式看不出来
$ git merge --no-ff -m "merge with noff" dev
#图形化展示分支及合并情况
$ git log --graph --pretty=oneline --abbrev-commit
#储藏当前工作空间
$ git stash
#查看储存的工作空间
$ git stash list
#恢复并删除储存的工作空间
$ git stash pop
#相当于以下两条命令
$ git stash apply
$ git stash drop
#创建SSH Key
$ ssh-keygen -t rsa -C "mbq6060@qq.com"
#查看远程仓库信息
$ git remote -v
#连接到远程仓库
$ git remote add origin git@github.com:mabaoqing/learngit.git
#基本(常用)操作
#克隆仓库
$ git clone git@github.com:mabaoqing/learngit.git
#从远程获取最新仓库
$ git pull
#推送到远程仓库,-u只在第一次推送时使用,将仓库推送并关联两端master分支
$ git push -u origin master
#创建远程分支到本地
$ git checkout -b dev origin/dev
#将本地dev分支和远程分支进行关联
$ git branch --set-upstream-to=origin/dev dev
#标签
#为某次提交打标签,确定一个版本
$ git tag v1.0 [版本号]
# 创建带有说明的标签
$ git tag -a v1.0 -m 'version 1.0 releasd' [版本号]
#查看标签状态
$ git show <tagname>
# 删除标签
$ git tag -d <tagname>
# 推送标签到远程
$ git push origin <tagname>
# 推送多个标签
$ git push origin --tags
# 删除远端标签
$ git tag -d <tagname>
$ git push origin :refs/tags/<tagname>
#忽略文件。创建.gitignore文件配置需要忽略的文件,在编辑器中另存为才行,不能直接创建
#强制添加忽略的文件
$ git add -f <file>
#检查.gitignore文件中的配置规则与文件匹配
$ git check-ignore -v <file>
Git学习小结的更多相关文章
- Git学习小结 ~ Lethe's Blog
学习自https://www.liaoxuefeng.com/wiki/896043488029600 一.创建版本库 (1) git init 初始化一个Git仓库 (2)添加文件到Git仓库,分两 ...
- Git学习小结(第三次作业)
本文主要总结一下在学习和使用git中一些用到的命令. 参考教程:廖雪峰git教程 在windows上安装git 下载使用环境:http://msysgit.github.io/, 安装一路默认即可. ...
- git学习小结 (笔记)
Modesty helps one to go forward, whereas conceit makes one lag behind. "虚心使人进步,骄傲使人落后" 注:本 ...
- 【学习总结】Git学习-参考廖雪峰老师教程-总
公元2018-10-21 实验室台式机 win7 64位 参考教程: 廖雪峰Git教程 其他资料:Git-book 北大一只总结的笔记,最终整理的时候可以参考:Git笔记 评论区看到的另一个人,总结在 ...
- 【学习总结】Git学习-参考廖雪峰老师教程六-分支管理
学习总结之Git学习-总 目录: 一.Git简介 二.安装Git 三.创建版本库 四.时光机穿梭 五.远程仓库 六.分支管理 七.标签管理 八.使用GitHub 九.使用码云 十.自定义Git 期末总 ...
- Git 学习(三)本地仓库操作——git add & commit
Git 学习(三)本地仓库操作——git add & commit Git 和其他版本控制系统如SVN的一个不同之处就是有暂存区的概念.这在上文已有提及,本文具体说明什么是工作区及暂存区,以及 ...
- Git学习笔记(二) · 非典型性程序猿
远程库的使用 前面说到的都是git在本地的操作,那么实际协作开发过程中我们肯定是要有一个远程版本库作为项目的核心版本库,也就是投入生产使用的版本.这里我们以 Github为例.Github是一个开放的 ...
- House_of_orange 学习小结
House_of_orange学习小结 house_of_orange最早出现在2016年hitcon的一道同名题目,其利用效果,是当程序没有free函数的时候,我们可以通过一些方法,来让chunk被 ...
- Git 学习看这篇就够了!
Git是一个开源的分布式版本控制系统,可以有效.高速的处理从很小到非常大的项目版本管理. 可能新手会问"git和github有什么关系啊?" git是一个版本控制工具: githu ...
随机推荐
- linux c/c++ 代码使用 doxygen 自动生成文档
www.doxygen.org 的使用非常方便,下面分成2步介绍一下 1. 注释风格,需要在c/c++代码中按照下面的风格添加注释,基本上还是很顺手的 C++的注释风格 主要使用下面这种样式:即在注释 ...
- VC无闪烁刷屏技术的实现【转】
转自:http://blog.csdn.net/scorpio_tiger/article/details/2888719 http://www.pconline.com.cn/pcedu/empol ...
- python--easygui
1.msgbox import easygui as eg # msgbox # 一般使用三个参数,msg:内容,title:标题,ok_button:按钮内容 eg.msgbox(msg=" ...
- bash shell 文本文件操作
一.打开文本文档,查看文本的内容,我们最直观的方式就是用编辑器,并且可以使用vi内部的查找命令查找[参见Vim文字编辑] vi test.txt#使用vi打开当前目录下的test.txt文本 二.总结 ...
- Python模块学习:glob 文件路径查找
glob模块是最简单的模块之一,内容非常少. 用它可以查找符合特定规则的文件路径名.跟使用windows下的文件搜索差不多. 查找文件只用到三个匹配符:”*”, “?”, “[]”. ”*”匹配0个或 ...
- 洛谷 U19159 采摘毒瘤
题目背景 Salamander见到路边有如此多的毒瘤,于是见猎心喜,从家里拿来了一个大袋子,准备将一些毒瘤带回家. 题目描述 路边共有nn 种不同的毒瘤,第i 种毒瘤有k_i 个,每个需要占据d_i ...
- POJ 3469 Dual Core CPU(最小割)
[题目链接] http://poj.org/problem?id=3469 [题目大意] 有N个模块要在A,B两台机器上执行,在不同机器上有不同的花费 另有M个模块组(a,b),如果a和b在同一台机子 ...
- PowerDisginer中NAME与COMMENT转换脚本
Option Explicit ValidationMode = True InteractiveMode = im_Batch Dim mdl ' the current model ' get t ...
- win7 下注册dll文件失败
1.win7 下注册dll文件失败,提示模块“xx.dll”已加载,但找不到入口点DllRegisterServer 原因:该dll文件非可注册组件,没有包含DllRegisterServer函数,可 ...
- CSS3:transition过渡效果
之前的transform 可以实现转换,但是一下子就放大缩小视觉上不太好看,要想渐变该如何呢?可以使用transition transition主要包含四个属性值: transition: prope ...