版本控制工具

  • 集中式:

    • 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学习小结的更多相关文章

  1. Git学习小结 ~ Lethe's Blog

    学习自https://www.liaoxuefeng.com/wiki/896043488029600 一.创建版本库 (1) git init 初始化一个Git仓库 (2)添加文件到Git仓库,分两 ...

  2. Git学习小结(第三次作业)

    本文主要总结一下在学习和使用git中一些用到的命令. 参考教程:廖雪峰git教程 在windows上安装git 下载使用环境:http://msysgit.github.io/, 安装一路默认即可. ...

  3. git学习小结 (笔记)

    Modesty helps one to go forward, whereas conceit makes one lag behind. "虚心使人进步,骄傲使人落后" 注:本 ...

  4. 【学习总结】Git学习-参考廖雪峰老师教程-总

    公元2018-10-21 实验室台式机 win7 64位 参考教程: 廖雪峰Git教程 其他资料:Git-book 北大一只总结的笔记,最终整理的时候可以参考:Git笔记 评论区看到的另一个人,总结在 ...

  5. 【学习总结】Git学习-参考廖雪峰老师教程六-分支管理

    学习总结之Git学习-总 目录: 一.Git简介 二.安装Git 三.创建版本库 四.时光机穿梭 五.远程仓库 六.分支管理 七.标签管理 八.使用GitHub 九.使用码云 十.自定义Git 期末总 ...

  6. Git 学习(三)本地仓库操作——git add & commit

    Git 学习(三)本地仓库操作——git add & commit Git 和其他版本控制系统如SVN的一个不同之处就是有暂存区的概念.这在上文已有提及,本文具体说明什么是工作区及暂存区,以及 ...

  7. Git学习笔记(二) · 非典型性程序猿

    远程库的使用 前面说到的都是git在本地的操作,那么实际协作开发过程中我们肯定是要有一个远程版本库作为项目的核心版本库,也就是投入生产使用的版本.这里我们以 Github为例.Github是一个开放的 ...

  8. House_of_orange 学习小结

    House_of_orange学习小结 house_of_orange最早出现在2016年hitcon的一道同名题目,其利用效果,是当程序没有free函数的时候,我们可以通过一些方法,来让chunk被 ...

  9. Git 学习看这篇就够了!

    Git是一个开源的分布式版本控制系统,可以有效.高速的处理从很小到非常大的项目版本管理. 可能新手会问"git和github有什么关系啊?" git是一个版本控制工具: githu ...

随机推荐

  1. 5.DataFrame(基本概念)

  2. bootstrapValidator 版本差异问题导致的submitHandler失效问题

    我用过的两个版本: v0.5.2-dev,0.4.5 这里针对于提交方法进行说明一下,如下代码: <script> $(function () { $("#addUserForm ...

  3. AC日记——Dining poj 3281

    [POJ-3281] 思路: 把牛拆点: s向食物连边,流量1: 饮料向t连边,流量1: 食物向牛1连边,流量1: 牛2向饮料连边,流量1: 最大流: 来,上代码: #include <cstd ...

  4. (3)C#基本语法

    1.C#标识符 标识符是用来识别类.变量.函数或任何其它用户定义的项目. 在 C# 中,类的命名必须遵循如下基本规则: 标识符必须以字母开头,后面可以跟一系列的字母.数字.下划线.标识符中的第一个字符 ...

  5. Bug预防体系

    Web常见产品问题及预防 测试人员在每次版本迭代中,会对项目的整体质量有一个把控,对于项目常见的问题,开发经常犯的错误都会有所了解,为了避免或者减少这样的错误或不规范的事情在发生,测试人员可以整理构建 ...

  6. 洛谷——P1614 爱与愁的心痛

    题目背景 (本道题目隐藏了两首歌名,找找看哪~~~) <爱与愁的故事第一弹·heartache>第一章 <我为歌狂>当中伍思凯神曲<舞月光>居然没赢给萨顶顶,爱与愁 ...

  7. JSON 中的 key

    JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.易于人阅读和编写.同时也易于机器解析和生成.它基于JavaScript(Standard ECMA-262 ...

  8. 【背包DP】【OpenJudge4978】宠物小精灵之收服

    宠物小精灵之收服 总时间限制: 1000ms 内存限制: 65536kB [描述] 宠物小精灵是一部讲述小智和他的搭档皮卡丘一起冒险的故事. 一天,小智和皮卡丘来到了小精灵狩猎场,里面有很多珍贵的野生 ...

  9. SQL数据库学习系列之一

    数据库知识的重要性不言而喻,以下链接给出了最最基础知识的讲解. 第一讲:SQL 语法 第二讲:SQL SELECT 语句 第三讲:SELECT DISTINCT 语句 第四讲:SQL WHERE 子句 ...

  10. sqlite db-journal文件产生原因及说明

    今天在Android中将sqlite的数据库文件生成在SD卡上的过程中,发现生成的.db文件的旁边 生成了一个大小为0的与数据库文件同名的.db-journal文件,不明白此文件的用途,于是 goog ...