本文根据廖雪峰的博客,记录下自己的学习笔记。主要记录常用的命令,包括仓库初始化、添加文件、提交修改、新建分支、内容暂存、分支管理、标签管理等内容。

git是分布式版本控制系统。

首先是安装,从官网下载安装包,按照提示安装即可,安装好后可以在 开始 菜单找到 Git bash,同时 右键菜单也可以看到 Git bash here。

基本概念:

工作区 Working Directory :电脑里面能看到的目录

版本库 Repository:工作区中一个隐藏目录.git,这个不算工作区,而是git的版本库。

暂存区 Stage:版本库中的一块区域

主分支 master:在创建版本库时默认创建的一个分支

指针 HEAD:指向某个分支中的某个commit

创建版本库

新建一个目录,通过如下命令可以将这个目录变成git可以管理的仓库

git init

提交修改

如果新增或者修改了一个或者多个文件,采用add命令是添加到stage(暂存区),如果没有git add到暂存区,那就不会加入到commit中。

git add file01.txt file02.txt

git commit -m "add two file"

查看工作空间的状态

git status

查看修改的内容

git diff

删除文件,先从工作区删除文件,然后用下面的命令,接着在commit,就可以从版本库中删除

git rm file01.txt

撤销误删除,可以从版本库里面恢复误删文件到工作区

git checkout -- file01.txt 

版本管理

查看提交日志和分支历史

git log

git log --graph --pretty=oneline --abbrev-commit

回退到上一个版本

git reset --hard HEAD^

回退到某个版本,下面命令中1094a的是在log中看到某个版本号

git reset --hard 1094a

查看所有的命令历史

git reflog

撤销在工作区的修改文件,注意是双短横杠--

git checkout  --file01.txt

撤销在暂存区的修改文件,执行后,修改的文件会保存在工作区

git reset HEAD file01.txt

远程仓库

可以将本地仓库的内容和远程仓库关联起来。

用如下命令将本地的内容和远程的仓库关联起来,添加后,远程仓库的名字就是origin

git remote add origin git@github.com:colin/learngit.git

推送本地内容到远程库,参数-u会把本地的master分支内容推送并且关联

git push -u origin master

每次本地提交后,可以采用如下命令推送最新修改

git push origin master

克隆远程仓库地址

git clone git@github.com:colin/learngit

分支管理

创建dev分支,并切换到dev分支

git checkout -b dev

相当于如下两条命令

git branch dev

git checkout dev

查看所有本地分支

git branch

查看所有本地和远程分支

git branch -a

查看本地分支和远程分支的跟踪关系

git branch -vv

切换回master分支

git checkout master

把dev分支合并到master分支上,前提是当前在master分支上

git merge dev

合并分支时禁用Fast forward

git merge --no-ff -m "some message" dev

删除分支

git branch -d dev

临时储藏工作区

git stash

查看stash list

git stash list

恢复临时储藏的工作区

git stash pop

创建本地分支和远程分支的链接关系

git branch --set-upstream-to <branch-name> origin/<branch-name>

标签管理

在最新的一次commit上打上标签

git tag v1.0

查看所有标签

git tag

在某次commit上打上标签,其中f5367是某次commit的id号

git tag v0.9 f5367

查看标签信息

git show v0.9

创建信息较多的标签,其中-a指定标签名,-m指定说明文字

git tag -a v0.1 -m "some message" f5367

删除标签

git tag -d v0.1

推送某个标签到远程

git push origin v1.0

一次性推送全部尚未推送到远程的本地标签

git push origin --tags

删除远程的标签,先删除本地,在push一下

git tag -d v0.9

git push origin :refs/tags/v0.9

END

最新文章

  1. cocos2d-x mac os启动 android helloworld
  2. iOS 中如何将View设置为圆角的矩形?
  3. C++ STL 迭代器失效问题
  4. 通过string型类名实例化一个类
  5. HDU 5429 Geometric Progression
  6. json-lib-2.4.jar Bug,json字符串中value为&quot;[value]&quot;结构时,解析为数组,不会解析成字符串
  7. 如何使用命令提示符进入mysql
  8. hbuider 中点击就显示出一个单选的列表 ,然后后台跨域向里面动态添加数据,注意里面的格式是json object
  9. 在JNI中新开线程遇到问题
  10. ASIHTTPRequest使用指南---&lt;&lt;翻译稿&gt;&gt;
  11. openssl 非对称加密算法DSA命令详解
  12. vim之执行shell命令
  13. fastboot,bootloader,recovery
  14. hibernate--session的CRUD方法, delete, load,get,update,saveorupdate, clear, flush
  15. shell相关命令
  16. 如何在一个项目中同时包含mvc建站、webapi接口
  17. Linux工作环境:CentOS7最小安装+Xfce桌面环境
  18. VIP之CSC
  19. 将c语言的结构体定义变成对应的golang语言的结构体定义,并将golang语言结构体变量的指针传递给c语言,cast C struct to Go struct
  20. pushpin Server-sent events &amp;&amp; openresty 集成试用

热门文章

  1. k8s外部访问内部的service
  2. Win7+ 电脑 休眠 自动唤醒
  3. URL 传递问题
  4. Intellij IDEA常用快捷键介绍 Intellij IDEA快捷键大全汇总
  5. js学习2
  6. 10Linux_firewalld-Linux就该这么学
  7. React列表
  8. python练习题_03
  9. Centos7 操作系统 mysql5.7 配置远程登陆操作
  10. Jenkins+Git+Maven构建并部署springboot(构建多模块中的单个模块)