1、Windows系统安装完Git后,需要在Git Bash命令窗口输入以下命令,进行用户名和邮箱设置。
 
2、初始化一个Git仓库,使用git init命令。
 
3、添加文件到Git仓库,分两步:
     使用命令git add <file>,注意,可反复多次使用,添加多个文件;
     使用命令git commit -m <message>,完成。
 
4、要随时掌握工作区的状态,使用git status命令。
     如果git status告诉你有文件被修改过,用git diff可以查看修改内容。
 
5、版本回退:
   Git允许我们在版本的历史之间穿梭,使用命令git reset --hard commit_id。
     HEAD指向的版本就是当前版本,上一个版本就是HEAD^,上上一个版本就是HEAD^^。
     穿梭前,用git log可以查看提交历史,以便确定要回退到哪个版本。如果嫌输出信息太多,可以加上参数--pretty=oneline
   
     (前面一长串信息为commit_id,使用SHA1计算出来的一个非常庞大的数字,用十六进制表示,以自己电脑生成为准)
     要重返未来,用git reflog查看命令历史,以便确定要回到未来的哪个版本。
 
6、版本库:
  工作区有一个隐藏目录.git,不算工作区,是git的版本库。版本库里存了许多东西,其中最重要的就是stage(暂存区),还有git为我们创建的第一个分支master,以及指向master的一个指针叫HEAD。
往git版本库添加文件时分两步,首先将需要提交的文件通通放到暂存区(使用git add命令),然后往master分支上提交更改。(git commit)。注:没有使用git add命令提交到暂存区的文件,不会提交到分支上。
 
7、撤销修改:
场景1:当乱改了工作区的文件内容,想要直接丢弃时,用命令git checkout -- file。
场景2:当乱改了工作区文件内容且添加到暂存区时,想要丢弃修改,分两步,第一步用命令git reset HEAD <file>,就回到了场景1,第二步按场景1操作。
场景3:已经提交了不合适的修改到版本库时,想要撤销参照版本回退。(前提时没有推送到远程库)
 
8、删除文件:用命令git  rm <file>。如果一个文件已经提交到版本库,永远不用担心误删,可用命令git checkout -- file 命令恢复,但只能恢复到最新版本。(删除文件夹命令:git rm -rf  文件夹名称)
 
9、远程仓库:
(1)用命令 ssh-keygen -t rsa -C "yourmail@example.com"产生私钥与公钥,在用户主目录.ssh中可以找到id_rsa与id_rsa.pub两个文件。登录GitHub,打开“Account settings”,“SSH-Keys”页面将公钥添加进去。这样就可以用GitHub免费托管你的Git仓库。
(2)添加远程库:
第一步,用命令git remote add origin git@server-name:path/repo-name.git将本地与远程库关联。
origin为远程库名,Git默认叫法。例如:(需把Judynie换成自己的GitHub账户名,learngit为本地库名)
第二步,将本地所有内容推送到远程库上。用命令git push -u origin master(由于远程库是空的,第一次推送master分支时,加上-u参数,不但会把本地的master分支内容推送到远程新的master分支,还会把本地的master分支和远程的master分支关联起来。之后可以直接使用命令git push origin master推送最新修改。)
注:第一次使用push命令会出现以下信息,输入yes,一路回车即可。
 
10、从远程库克隆:要克隆一个仓库,首先必须知道仓库地址,然后使用git clone命令克隆。如下:
查看远程库信息命令:git remote -v
 
11、分支管理:
查看分支:git branch
创建分支:git branch <name>
切换分支:git checkout <name>
创建+切换分支:git checkout -b <name>
合并某分支到当前分支:git merge <name>(fast forward模式合并,看不出来曾经做过合并) 或  git merge --no-ff -m 'commit test' <name> (加上参数--no-ff就可以采用普通模式合并,合并后的历史有分支,能看出来曾经做过合并)例如:
删除分支:git branch -d <name>/ git branch -D <name> 强行删除。
 
12、解决冲突:当Git无法自动合并分支时,就必须首先解决冲突。
解决冲突的办法就是把Git合并失败的文件手动编辑为我们希望的内容,再提交。
用git log --graph(可加上参数 --pretty=oneline --abbrev-commit 简化输出内容)
 
 
13、bug分支:修复bug时会创建新的bug分支,然后合并删除。当手头工作没有完成时,先把工作现场git stash一下,然后去修复bug,然后再git stash pop(恢复现场同时把stash内容也删了),回到工作现场。
feature分支:开发一个feature,最好新建一个分支。
 
 
14、多人协作工作模式:
1、首先,可以用git push origin <branch name>推送自己的修改。
2、如果推送失败,需要用git pull试图合并。
注:若提示no tracking information, 则说明本地分支和远程分支的链接关系没有创建,用命令git branch --set-upstream-to <branch-name> origin/<branch-name> 如下:
3、如果合并有冲突,则解决冲突,并在本地提交。
4、没有冲突或者解决掉冲突后,再用git push origin <branch name>就能推送成功。
 
 
15、git rebase命令可以把本地未push的分叉提交历史整理成直线,使得我们在查看历史提交变化时更容易, 因为分叉的提交需要三方对比。
 
16、标签管理:发布一个版本时,我们通常在版本库中打一个标签(tag),这样就唯一确定了打标签时刻的版本。
(1)命令 git tag <tagname> 创建标签,默认为HEAD,也可以指定一个commit id
(2)命令 git tag -a <tagname> -m 'blalabla' 可以指定标签信息
(3)命令 git tag 可查看所有标签信息
(4)命令 git push origin <tagname> 可推送一个本地标签
(5)命令 git push origin --tags 可推送全部未推送过的本地标签
(6)命令 git tag -d <tagname> 可删除一个本地标签
(7)命令 git push origin :refs/tags/<tagname>可删除一个远程标签
 
17、在GitHub上可以任意Fork开源仓库;自己拥有Fork后的仓库的读写权限;可以推送pull request给官方仓库贡献代码。
 
18、给命令配置别名:git config --global alias.st status 相当于 git status,当前用户的Git配置文件放于用户主目录下的一个隐藏文件.gitconfig中。如下:
 
 
 
 
 

Git命令学习总结(廖雪峰官方Git教程)的更多相关文章

  1. 廖雪峰的java教程

    F:\教程\0-免费下载-廖雪峰 公司电脑地址: G:\学习中\廖雪峰的java教程 廖雪峰java课程地址: https://www.feiyangedu.com/category/JavaSE 0 ...

  2. git常用命令总结--廖雪峰老师Git教程命令总结

    学习了廖雪峰老师的Git教程之后的命令总结,重点关于git和远程仓库的东西. 如果没有学过,这是传送门 下面这个图很重要 一.git初始化本地仓库和配置 echo "想输入到文件的内容,一般 ...

  3. Git命令学习之旅——日志和穿梭版本号

    在总结了git命令的基础之后,接下来我们看一下基础的一些进阶内容:删除撤销命令.日志查看命令等 既然有加入文件的功能,那么相相应的肯定有移除文件的功能,命令例如以下:git rm [文件名称] 在输入 ...

  4. python语言特性-------python2.7教程学习【廖雪峰版】(一)

    开始学习廖雪峰的py2.7教程: 2017年6月5日12:54:28 笔记: 廖雪峰python2.7教程1.用任何编程语言来开发程序,都是为了让计算机干活.  2.Python是一种相当高级的语言. ...

  5. 【js】【读书笔记】廖雪峰的js教程读书笔记

    最近在看廖雪峰的js教程,重温了下js基础,记下一些笔记,好记性不如烂笔头嘛 编写代码尽量使用严格模式 use strict JavaScript引擎是一个事件驱动的执行引擎,代码总是以单线程执行 执 ...

  6. 【学习总结】Git学习-参考廖雪峰老师教程六-分支管理

    学习总结之Git学习-总 目录: 一.Git简介 二.安装Git 三.创建版本库 四.时光机穿梭 五.远程仓库 六.分支管理 七.标签管理 八.使用GitHub 九.使用码云 十.自定义Git 期末总 ...

  7. 【学习总结】Git学习-参考廖雪峰老师教程-总

    公元2018-10-21 实验室台式机 win7 64位 参考教程: 廖雪峰Git教程 其他资料:Git-book 北大一只总结的笔记,最终整理的时候可以参考:Git笔记 评论区看到的另一个人,总结在 ...

  8. git学习笔记——廖雪峰git教程

    OK,先附上教程--廖雪峰的官方网站 友情连接:git官网 简介 这里我只想引用他的原文: Linus可以向BitMover公司道个歉,保证以后严格管教弟兄们,嗯,这是不可能的.实际情况是这样的: L ...

  9. 【学习总结】Git学习-参考廖雪峰老师教程三-创建版本库

    学习总结之Git学习-总 目录: 一.Git简介 二.安装Git 三.创建版本库 四.时光机穿梭 五.远程仓库 六.分支管理 七.标签管理 八.使用GitHub 九.使用码云 十.自定义Git 期末总 ...

  10. 【学习总结】Git学习-参考廖雪峰老师教程四-时光机穿梭

    学习总结之Git学习-总 目录: 一.Git简介 二.安装Git 三.创建版本库 四.时光机穿梭 五.远程仓库 六.分支管理 七.标签管理 八.使用GitHub 九.使用码云 十.自定义Git 期末总 ...

随机推荐

  1. 软件安装——tortoiseGit安装和配置

    Tortoisegit安装指南 TortoiseGit是一个开放的Git版本控制系统的源客户端,它是Git和Windows资源管理器的整合,提供了Git的图形化操作界面 一.软件安装 1.进入tort ...

  2. [Untiy]贪吃蛇大作战(五)——游戏主界面

    接着上一节: 4.AI蛇的设计 这里AI蛇大部分代码都可以参照主角的代码,我这里的实现其实还可以进行改进.基本原理就是蛇创建之后给蛇一个随机方向的单位向量,AI蛇的蛇头添加一个比蛇头大两三倍大小的碰撞 ...

  3. 洛谷P8567 真·基础数论问题

    基础数论重定向 今天蒟蒻切水题切到一道建议评黄的红题,一下子给我整不会了-- 题目传送门 理解题意 首先,我们要理解题意. [JRKSJ R6] Nothing 我们定义 \(f(x)\) 表示 \( ...

  4. 二十三、图的遍历(BFS和DFS)

    一.概念   图的遍历(Traversing Graph)从某一顶点出发,访问图中所有顶点,且使每一顶点仅被访问一次.与树的遍历不同的是,图的遍历需要处理两种特殊情况:一是从某一顶点出发进行遍历时,可 ...

  5. MyBatis的使用八(动态SQL)

    本主要讲述mybatis处理动态sql语句 一. 问题引入 前端展示的数据表格中,查询条件可能不止一个,如何将用户输入的多个查询条件,拼接到sql语句中呢? DynamicMapper接口声明如下 p ...

  6. Apache 2.4 的下载与安装

    1. 登录Apache官网 http://httpd.apache.org/download.cgi 2. 点击 Files for Microsoft Windows 3. 点击 ApacheHau ...

  7. WAVE音频文件格式及其64位扩展格式的简要介绍

    正文 关于 WAVE 文件格式,网上有不少介绍,但关于WAVE 64位扩展格式的介绍却是几乎没有. 所以本文的目的是简要介绍标准的 WAVE 格式,以及两种主要的扩展格式. 文中所有代码都用C语言来描 ...

  8. Nacos服务发现原理分析

    微服务将自己的实例注册到nacos注册中心,nacos服务端存储了注册列表,然后通过ribbon调用服务,具体是如何调用?如果nacos服务挂了,还能正常调用服务吗?调用的服务列表发生变化,调用方是如 ...

  9. TCP/IP协议(8): ICMP(Internet Control Message Protocol) 协议 ——诊断和控制 IP 协议层

    TCP/IP协议(8): ICMP(Internet Control Message Protocol) 协议 --诊断和控制 IP 协议层 关于网际控制报文协议(Internet Control M ...

  10. Binary &Op是什么

    前言 在并行开发时我们经常会用到Pstream::gather()函数或是全局函数reduce()或者其他,需要输入参数Binary &Op,本篇主要讨论Binary &Op是什么 t ...