GIT使用教程——命令详解

$ 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使用教程——命令详解的更多相关文章
- Windows系统Git安装教程(详解Git安装过程)
Windows系统Git安装教程(详解Git安装过程) 今天更换电脑系统,需要重新安装Git,正好做个记录,希望对第一次使用的博友能有所帮助! 获取Git安装程序 到Git官网下载,网站地址: ...
- Git入门教程,详解Git文件的四大状态
大家好,欢迎来到周一git专题. git clone 在上一篇文章当中我们聊了怎么在github当中创建一个属于自己的项目(repository),简称repo.除了建立自己的repo之外,我们更多的 ...
- git push&pull命令详解
git pull的作用是从一个仓库或者本地的分支拉取并且整合代码. git pull [<options>] [<repository> [<refspec>-] ...
- Git的使用以及常用命令(详解)
一. 版本控制工具 什么是版本控制系统? 版本控制系统(Version Control System):是一种记录一个或若干文件内容变化,以便将来查阅特定版 本修订情况的系统.版本控制系统不仅可以应用 ...
- Git初探--笔记整理和Git命令详解
几个重要的概念 首先先明确几个概念: WorkPlace : 工作区 Index: 暂存区 Repository: 本地仓库/版本库 Remote: 远程仓库 当在Remote(如Github)上面c ...
- Git 常用命令详解
Git 是一个很强大的分布式版本管理工具,它不但适用于管理大型开源软件的源代码(如:linux kernel),管理私人的文档和源代码也有很多优势(如:wsi-lgame-pro) Git 的更多介绍 ...
- Android Studio系列教程五--Gradle命令详解与导入第三方包
Android Studio系列教程五--Gradle命令详解与导入第三方包 2015 年 01 月 05 日 DevTools 本文为个人原创,欢迎转载,但请务必在明显位置注明出处!http://s ...
- Git 常用命令详解(二)
Git 是一个很强大的分布式版本管理工具,它不但适用于管理大型开源软件的源代码(如:linux kernel),管理私人的文档和源代码也有很多优势(如:wsi-lgame-pro) Git 的更多介绍 ...
- Git命令详解
一个中文git手册:http://progit.org/book/zh/ 原文:http://blog.csdn.net/sunboy_2050/article/details/7529841 前面两 ...
随机推荐
- Linux - Shell - 字符串拼接
概述 shell 的字符串拼接 1. 字符串声明 概述 字符串的基本操作 脚本 1 # 声明字符串 str01="str01" echo ${str01} # 单引号也可以 # 不 ...
- 《C语言程序设计》王希杰 课后答案
仅供参考,好好学习,不要骗自己哦! 在线预览 预览链接: https://www.kdocs.cn/l/shOy4IgXl 下载: 链接1: http://t.cn/AiBK2mgJ 链接2: htt ...
- GEE引擎假人系统自定义教程
现如今传奇游戏玩家数量日渐减少.为了给服务器增加人气,很多GM在服务端中增加了自动登录和自动打怪的假人系统.由于该系统登录的假人可以自动练功,自动攻城和实现简单的对话.完全可以做到以假乱真的地步!所以 ...
- mapreduce课上实验
今天我们课上做了一个关于数据清洗的实验,具体实验内容如下: 1.数据清洗:按照进行数据清洗,并将清洗后的数据导入hive数据库中: 2.数据处理: ·统计最受欢迎的视频/文章的Top10访问次数 (v ...
- 推荐算法之---FM算法;
一,FM算法: 1,逻辑回归上面进行了交叉特征.算法复杂度优化从O(n^3)->O(k*n^2)->O(k*n). 2,本质:每个特征都有一个k维的向量,代表的是每个特征都有k个不可告人的 ...
- 接口测试,如何构建json类型的参数值
1.json类型参数传入,实际传输的时候是转化为一中字符串类型的格式,所以如data=”{}”,该参数用引号包含传入,“{}”里面的key都应该为双引号,value为字符串的也应该是双引号,最后一个v ...
- Python实现重命名一个文件夹下的图片
在网上查了一下python实现的图片重命名,工作中刚好用一下. # -*- coding:utf8 -*- import os path = '新建文件夹 (2)/' filelist = os.li ...
- MTSQL主主同步方案
** MySQL主主+Keepalived **MySQL+DRBD+Heartbeat 在企业中,数据库高可用一直是企业的重中之重,中小企业很多都是使用mysql主主方案,一主多从,读写分离等,但是 ...
- Activiti工作流学习之概述(一)
一.工作流介绍 我第一次听到这个词,是蒙逼的,再看百度百度,更傻眼了,完全说的不像人话啊,举几个生活中的例子,就明白多了比如:请假.报销等等,如果文字太过抽象,请看图: 二.工作流引擎 Process ...
- MST — Kruskal's algorithm
算法简介 Kruskal算法可用来求解MST(最小生成树)问题,还可以作为迷宫生成算法等. 算法分析 其实算法不难理解,算法先要将 $ G(V, E) $ 的集合 $ E $ 按权重 $ \Omega ...