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 ...
随机推荐
- Java设计模式_创建型模式_单例模式
单例模式的实现: 定义一个类,在类中定义该类的静态变量,再定一个一个获取该类的静态变量的方法. UML图:
- springBoot开启热部署
springBoot开启热部署 这里使用devtools工具开启热部署 〇.搭建springbboot基础环境 一.添加依赖 <dependency> <groupId>org ...
- hbase异常:java.io.IOException: Unable to determine ZooKeeper ensemble
项目中用到hbase,有时候可能会报一些异常,比如java.io.IOException: Unable to determine ZooKeeper ensemble 等等,当出现这个问题时,根据个 ...
- hdu 2544(SPFA)
最短路 Time Limit: 5000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submiss ...
- uva11019矩阵匹配器D316
#include<iostream> #include<cstring> #include<cstdio> #include<cmath> #inclu ...
- 新疆大学ACM-ICPC程序设计竞赛五月月赛(同步赛)C 勤奋的杨老师【DP/正反LIS/类似合唱队形】
链接:https://www.nowcoder.com/acm/contest/116/C 来源:牛客网 题目描述 杨老师认为他的学习能力曲线是一个拱形.勤奋的他根据时间的先后顺序罗列了一个学习清单, ...
- Codeforces Round #166 (Div. 2) A. Beautiful Year【暴力枚举/逆向思维/大于当前数且每个位数不同】
A. Beautiful Year time limit per test 2 seconds memory limit per test 256 megabytes input standard i ...
- 新疆大学ACM-ICPC程序设计竞赛五月月赛(同步赛)- 猴子排序的期望
链接:https://www.nowcoder.com/acm/contest/116/F来源:牛客网 题目描述 我们知道有一种神奇的排序方法叫做猴子排序,就是把待排序的数字写在卡片上,然后让猴子把卡 ...
- #420 Div2 C
#420 Div2 C 题意 不断把数加入到一个栈里,取数的时候要求按照 1~n 的顺序取数,每次取数保证数一定在栈里,如果要取的数不在栈头,可以选择对栈排序一次.问最少排序几次. 分析 只要栈头的数 ...
- 线段树【p2629】 好消息,坏消息
顾z 你没有发现两个字里的blog都不一样嘛 qwq 题目描述-->p2629 好消息,坏消息 历程 刚开始看到这个题,发现是需要维护区间和,满心欢喜敲了一通线段树,简单debug之后交上去 \ ...