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

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

git学习笔记:常用命令总结的更多相关文章

  1. GIT学习笔记——常用命令

    最近使用使用GIT较多,但命令很容易就忘记了,于是整理下,大多整理与一些文档和他人博客 在当前目录新建建一个纯git代码库 $ git --bare init 在当前目录新建一个Git代码库 $ gi ...

  2. git 学习笔记(常用命令)

    1.新建一个文件,如果没有使用git add 命令将它提交到暂存区,那么这个文件就还没有被跟踪. 2.通过配置.gitignore文件可以指定要忽略的文件,被忽略的文件夹是不会被提交到暂存区的.所以这 ...

  3. Git学习 --> 个人常用命令add,commit以及push

    Git命令行配置1 安装Github2 安装msysgit3 要配置用户名和油箱  git config --global user.name <用户名> 我的命令就是:git confi ...

  4. Hexo学习笔记--常用命令及部署步骤

    参考资料: Hexo搭建Github静态博客:http://www.cnblogs.com/zhcncn/p/4097881.htmlHexo:独立博客新玩法:http://www.aips.me/h ...

  5. Redis学习笔记--常用命令

    以下为本人学习Redis的备忘录,记录了大部分常用命令 1.客户端连接redis服务端: ===启动Redis服务端 redis-server /yourpath/redis.conf ===启动Re ...

  6. SQL学习笔记---常用命令

    常用命令 变量 1.声明 declare @变量名 类型,… 2.赋值 1.同时赋值多个变量(可以结合查询) select @变量名=表达式1,表达式2 2.单个赋值(推荐) set @变量名=表达式 ...

  7. ionic学习笔记—常用命令

    Ionic CLI介绍 Ionic CLI是开发Ionic应用程序过程中使用的主要工具.它就像一个瑞士军刀:它在一个界面下汇集了大量工具. CLI包含许多对Ionic开发至关重要的命令,例如start ...

  8. Git学习笔记-相关命令记录

    内容来自:https://www.liaoxuefeng.com/wiki/896043488029600/896067074338496 1.Linux安装Git 首先,你可以试着输入git,看看系 ...

  9. Redis学习笔记~常用命令总结

    回到目录 客户端redis-cli常用的命令总结 连接到服务器 redis-cli -h 127.0.0.1 -p 6379 --连接指定的redis服务器 发布/订阅, pub/sub模式运行在re ...

  10. MongoDB学习笔记—常用命令

    这里记录一下MongoDB常用的命令 数据库相关 创建数据库 use DATABASE_NAME 如果数据库不存在,则创建数据库,否则切换到指定数据库. 删除数据库:切换到要删除的数据库下,执行命令即 ...

随机推荐

  1. Slf4j与log4j及log4j2的关系及使用方法

    Slf4j与log4j及log4j2的关系及使用方法 slf4j slf4j仅仅是一个为Java程序提供日志输出的统一接口,并不是一个具体的日志实现方案,就比如JDBC一样,只是一种规则而已,所以单独 ...

  2. [SQL]批量修改存储过程视图

    存储过程与视图适用 ); )='w_sp_Sms_ExpeOrKeepEmpl'; DECLARE C_TABLES CURSOR FAST_FORWARD FOR SELECT NAME FROM ...

  3. 目标检测faster rcnn error == cudaSuccess (2 vs. 0) out of memory

    想尝试 更深更强的网络,或者自己写了一个费显存的层,发现1080 ti的11G显存不够用了,老师报显存不够怎么办? Check failed: error == cudaSuccess (2 vs. ...

  4. jeecg之弹窗插件lhgdialog小结

    说到弹窗,在jeecg中弹窗用到最多的地方无非是新增/编辑的弹窗. 1.列表页面新增编辑按钮触发的弹窗即lhgdialog,不论是add/update,最终走的都是curdtools.js中的crea ...

  5. redis数据转移随笔

    生产环境有一批版本比较老的redis主从架构,是一主多从,版本是2.8 由于想迁移到阿里云上,那么问题来了,怎么把redis数据转移到阿里云上 为了省事,阿里云也是和生产环境一样的版本,架构也一致,其 ...

  6. fread,fwrite

  7. 【译】为什么BERT有3个嵌入层,它们都是如何实现的

    目录 引言 概览 Token Embeddings 作用 实现 Segment Embeddings 作用 实现 Position Embeddings 作用 实现 合成表示 结论 参考文献 本文翻译 ...

  8. mysql导入太慢解决方法

    半调子数据科学家又要折腾数据,拿到数据一看,3.6G的zip文件,解压看看,卧槽12个G的sql文件.好吧,又要折腾sql数据了.第一件事,肯定是搭一个数据库,导入数据咯. 折腾过sql导入的亲们都知 ...

  9. [原创] debian 9.3 搭建Jira+Confluence+Bitbucket项目管理工具(一) -- 安装jdk(含jre)及 MySql 5.6.39

    [原创] debian 9.3 搭建Jira+Confluence+Bitbucket项目管理工具(一)  --  安装jdk(含jre)及 MySql 5.6.39 回老家已经有一段时间了, 四五线 ...

  10. Nagios监控配置文件及监控流程

    1.安装路径/usr/local/nagios/下存在etc.bin.sbin.share.var 这五个目录.Nagios 各个目录用途说明如下: bin Nagios 可执行程序所在目录 etc ...