$ git init               当前目录建立GIT可以管理的仓库(版本库),生成一个.git的隐藏文件夹

$ git add <filename>        将工作区的文件修改添加到版本库的暂存区

$ git commit -m "tips"          将暂存区的所有修改添加到分支上,tips是本次提交的备注,方便查看

$ git status             本地工作区与分支的代码比较,工作区文件与版本库比较的状态

(modified 文件被修改 ; deleted 工作区文件被删除 ; Untracked 文件未跟踪,版本库没有 ; new file 文件add到暂存区,还未添加到分支  )

$ git diff <filename>          比较工作区和版本库的文件,文件内容具体哪些不同

$ git log              版本库状态信息,git commit的记录信息,便于跟踪提交每次都有哪些修改

$ git reset --hard <版本号>       版本库回退到某个版本的状态

$ git reset --hard HEAD^       回退到当前版本的上一个版本,撤销上次的提交,HEAD指向当前版本的指针

$ git reflog             记录你的每一次git命令,便于跟踪

$ git checkout --<filename>      工作区的文件回退到最近一次add或commit时的状态,删除掉的文件也可还原回来

$ git reset HEAD <filename>     撤销暂存区的文件的修改,然后再checkout撤销工作区的修改

$ git rm <filename>         将删除消息提交到暂存区,commit后版本库的文件会被删除

$ git checkout -b <name>      创建新的分支name,-b会将当前工作分支切换到dev,相当于下面两条命令

$ git branch <name>         创建新的分支name

$ git checkout <name>        切换当前工作分支为name

$ git branch             查看所有分支,前面带*号,表明是当前所在分支

$ git merge <name>          合并name分支到当前分支

$ git branch -d <name>        删除分支name

$ git log --graph           查看分支合并图

$ git stash             保存当前分支工作现场

$ git stash pop           恢复保存的工作现场 

$ git branch -D <name>       强行删除分支(丢弃分支的所有提交) 

$ git remote -v           查看远程库信息

$ git pull              抓取远程的新的提交(推送前最好先pull一下,免得覆盖别人的代码)

$ git push origin branch-name    从本地推送分支  

$ git checkout -b branch-name origin/branch-name在本地创建远程分支对应的分支

$ git brach --set-upstream branch-name origin/branch-name建立本地分支和远程分支关联

$ git tag <name>          在当前分支打一个标签

$ git tag              查看所有标签

$ git tag -a <tagname> -m "balabala"    指定标签信息

$ git tag -s <tagname> -m "balabala"     用PGP签名标签

$ git tag -d <tagname>        删除一个本地的标签

$ git push origin <tagname>     推送一个本地标签到远程分支

$ git push origin --tags        推送全部未推送过的本地标签

$ git push origin : refs/tags/<tagname>删除一个远程标签

<<<<<<<<<<<<<<<<<OVER>>>>>>>>>>>>>>>>>>>>>>>>>        

  HEAD指针严格来说不是指向提交的,而是指向master主分支的,每一次提交主分支就多一个节点,master指向最新提交,HEAD指向master,就能确定当前分支为主分支和当前分支的最新提交节点。

  当我们创建分支dev时,GIT创建一个dev的指针,指向master相同的提交,再把HEAD指向dev,表示当前工作节点在dev分支上。当我们在dev分支提交时,dev指向新的提交(红色节点),master指针不变,这样就确保了两个分支能同时存在,HEAD指向工作区当前在哪个分支上工作。

  当我们要合并两个分支时,就需要将两个分支的提交内容合并,当主分支没有新的提交时,只需要将master分支指向dev指向的提交节点,即可完成合并,但当两个分支都有各自不同的提交时,GIT小心的合并各自提交的修改,遇到冲突(即两个分支提交都对同一个文件修改)时,需要人工去解决冲突(人工合并文件)。

GIT使用教程——命令详解的更多相关文章

  1. Windows系统Git安装教程(详解Git安装过程)

    Windows系统Git安装教程(详解Git安装过程)   今天更换电脑系统,需要重新安装Git,正好做个记录,希望对第一次使用的博友能有所帮助! 获取Git安装程序   到Git官网下载,网站地址: ...

  2. Git入门教程,详解Git文件的四大状态

    大家好,欢迎来到周一git专题. git clone 在上一篇文章当中我们聊了怎么在github当中创建一个属于自己的项目(repository),简称repo.除了建立自己的repo之外,我们更多的 ...

  3. git push&pull命令详解

    git pull的作用是从一个仓库或者本地的分支拉取并且整合代码. git pull [<options>] [<repository> [<refspec>-​] ...

  4. Git的使用以及常用命令(详解)

    一. 版本控制工具 什么是版本控制系统? 版本控制系统(Version Control System):是一种记录一个或若干文件内容变化,以便将来查阅特定版 本修订情况的系统.版本控制系统不仅可以应用 ...

  5. Git初探--笔记整理和Git命令详解

    几个重要的概念 首先先明确几个概念: WorkPlace : 工作区 Index: 暂存区 Repository: 本地仓库/版本库 Remote: 远程仓库 当在Remote(如Github)上面c ...

  6. Git 常用命令详解

    Git 是一个很强大的分布式版本管理工具,它不但适用于管理大型开源软件的源代码(如:linux kernel),管理私人的文档和源代码也有很多优势(如:wsi-lgame-pro) Git 的更多介绍 ...

  7. Android Studio系列教程五--Gradle命令详解与导入第三方包

    Android Studio系列教程五--Gradle命令详解与导入第三方包 2015 年 01 月 05 日 DevTools 本文为个人原创,欢迎转载,但请务必在明显位置注明出处!http://s ...

  8. Git 常用命令详解(二)

    Git 是一个很强大的分布式版本管理工具,它不但适用于管理大型开源软件的源代码(如:linux kernel),管理私人的文档和源代码也有很多优势(如:wsi-lgame-pro) Git 的更多介绍 ...

  9. Git命令详解

    一个中文git手册:http://progit.org/book/zh/ 原文:http://blog.csdn.net/sunboy_2050/article/details/7529841 前面两 ...

随机推荐

  1. 【C语言】写一个函数,并调用该函数求两个整数的最大公约数和最小公倍数

    程序分析: 在数学中,两个数的最小公倍数=两个数的乘积/两数的最大公约数. 求两个数的最大公约数,运用辗转相除法:已知两个整数M和N,假定M>N,则求M%N. 如果余数为0,则N即为所求:如果余 ...

  2. Hadoop 启动/停止集群和节点的命令

    集群启动/停止Hadoop集群:start-all.sh    stop-all.sh 1) 启动NameNode, DataNode 2) 启动JournalNode, JournalNode在hd ...

  3. Shiro&Jwt验证

    此篇基于 SpringBoot 整合 Shiro & Jwt 进行鉴权 相关代码编写与解析 首先我们创建 JwtFilter 类 继承自 BasicHttpAuthenticationFilt ...

  4. 解决新版Pycharm中Matplotlib图像不在弹出独立的显示窗口问题

    官方说明链接: https://intellij-support.jetbrains.com/hc/en-us/community/posts/115000736584-SciView-in-PyCh ...

  5. HDU 1237 简单计算器(栈+stringstream)

    提供几份代码,这题的输入可以用stringsteam处理,先处理乘除后处理加减,正常思路,但是后面统计加减法的时候,对栈的运用错了,我用的时候相当于给它多加了几个括号就错了. 正确的简单解法就是,加法 ...

  6. [踩坑记录] windows10 应用商店打不开 代码: 0x80131500

    在某博客看到的方法,供参考,可以尝试一下,我的也是这么解决的1.打开“运行”输入 inetcpl.cpl (“WINDOWS”+“R”键,输入 inetcpl.cpl亦可)2.点开高级往下拉,勾上&q ...

  7. Jmeter_选项_函数助手_RandomString的用法

    1.用处:测试账户注册可以通过随机生成数实现,而不需要Excel手动输入, 缺点:随机生成数可能会重复 优点:不需要使用CSV config 或者excel ,txt格式 2.举例:之前我们通过CSV ...

  8. 【Hibernate 多表查询】

    HibernateManyTable public class HibernateManyTable { //演示hql左连接查询 @Test public void testSelect12() { ...

  9. Yii2掉index.php?r=

    普通 首先确认apache2配置 1. 开启 apache 的 mod_rewrite 模块 去掉LoadModule rewrite_module modules/mod_rewrite.so前的“ ...

  10. 区块链学习——HyperLedger-Fabric v1.0 启动过程分析

    本章我们从fabric v1.0的e2e_cli示例开始分析整个启动过程以及在过程中的一些配置文件 首先呢,还是确保你的基本环境已经搭建完成,v1.0源码和镜像也都下载完毕 fabric启动过程中的相 ...