这是阅读廖雪峰的官方网站的笔记,用于自己以后回看

1.进入项目文件夹

初始化一个Git仓库,使用git init命令。

添加文件到Git仓库,分两步:

  • 第一步,使用命令git add <file>,注意,可反复多次使用,添加多个文件;//

  • 第二步,使用命令git commit,完成。

2.修改文件

  • git status命令可以让我们时刻掌握仓库当前的状态,上面的命令告诉我们,readme.txt被修改过了,但还没有准备提交的修改。
  • git diff顾名思义就是查看difference,显示的格式正是Unix通用的diff格式,可以从上面的命令输出看到

  • 提交修改,先使用git add, 在使用git commit

3.版本回滚

  • 在Git中,我们用git log命令查看:版本控制系统肯定有某个命令可以告诉我们历史记录,
  • git log --reptty=oneline
  • git reset --hard HEAD^ (HEAD^^:上上版本,HEAD~100:上100版本)回滚到某版本
  • 当你回退了又想返回回退前的版本就要知道版本号
  • 如果忘了版本号 git reflog : 查看这个库的修改日志

4.工作区与暂存区的概念

5.管理修改

  • 修改文件后,先使用git add,把修改添加到暂存区
  • 再使用commit,把暂存区的修改推送到分支上(commit只能推送已经add到暂存区的修改,没add过,是没有东西commit的)

6.撤销修改

  • git checkout -- readme.txt 可以丢弃工作区的修改
  • git checkout -- file命令中的--很重要,没有--,就变成了“切换到另一个分支”的命令,我们在后面的分支管理中会再次遇到git checkout命令
  • git reset HEAD file可以把暂存区的修改撤销掉(unstage),重新放回工作区

7.删除文件

    1. git rm test.txt 是确实要从版本库中删除该文件,那就用命令git rm删掉,并且git commit
    1. git checkout -- test.txt 删错了,因为版本库里还有呢,所以可以很轻松地把误删的文件恢复到最新版本

8.github仓库:

9.克隆git

    1. $ git clone git@github.com:michaelliao/gitskills.git
  •  $ git clone https://github.com/miaowwwww/learngit.git

10.分支管理

  • 首先,我们创建dev分支,然后切换到dev分支:

    1. $ git checkout -b dev
  • git checkout命令加上-b参数表示创建并切换,相当于以下两条命令:
    1. $ git branch dev
    2. $ git checkout dev
  • git branch命令查看当前分支:
    1. $ git branch

  • 合并分支:$git merge dev (切换回master分支,合并当前分支与dev分支)
  • 合并完成后,就可以放心地删除dev分支了:$ git branch

11.解决冲突

  • 当两个分支合并的时候可能会存在冲突,解决冲突后,重新commit
  • git log --graph命令可以看到分支合并图。

12.分支管理策略

  • 通常,合并分支时,如果可能,Git会用Fast forward模式,但这种模式下,删除分支后,会丢掉分支信息。
  • 如果要强制禁用Fast forward模式,Git就会在merge时生成一个新的commit,这样,从分支历史上就可以看出分支信息。
  • 准备合并dev分支,请注意--no-ff参数,表示禁用Fast forwar
  • $ git merge --no-ff -m "merge with no-ff" dev
  • 需要把-m 添加上去,因为会创建一个新的分支,需要添加说明

13.bug分支:来自廖雪峰的官方网站

  • 每个bug都应该使用一个分支来处理:例如:issue-101分支,处理后再删除分支
  • 情况1:当手上dev分支上的工作不能commit上去,而又必须处理issue-101时,(不可直接创建issue-101,在返回dev,因为没有commit到暂存区,转回来的时候,dev未commit的部分不存在了)
    • 使用 $git stash:  可以把当前工作现场“储藏”起来,等以后恢复现场后继续工作
    • 修复issue-101,后重新回到dev分支,并把储藏的代码拿出来
    • git stash list 命令查看储藏列表
    • 一是用git stash apply恢复,但是恢复后,stash内容并不删除,你需要用git stash drop来删除
    • 另一种方式是用git stash pop,恢复的同时把stash内容也删了

14.Feature分支(新功能)

    1. $ git checkout -b feature-vulcan
    1. commit之前又说要取消新功能,git branch -D feature-vulcan (没commit,无法使用git branch -d feature-vulcan 删除,使用-D强制删除)

15.使用远程github多人协作:大家都会往masterdev分支上推送各自的修改。(廖雪峰的官方网站

  • 当你从远程仓库克隆时,实际上Git自动把本地的master分支和远程的master分支对应起来了,并且,远程仓库的默认名称是origin
  • git remote  || git remote -v : 查看版本库的信息
  • 推送分支:git push origin master<name>
  • 捉取分支:

16.标签管理:给某一个commit的版本一个别名,不用通过长串的版本号

  • 创建标签(当前版本进度):$ git tag v1.0
  • 对历史里某次版本进行标签:$ git tag v0.9 6224937
  • 可以用git show <tagname>查看标签信息:

  • 创建带有说明的标签,用-a指定标签名,-m指定说明文字:$ git tag -a v0.1 -m "version 0.1 released" 3628164
  • 删除标签:$ git tag -d v0.1
  • 推送标签到远程: git push origin <tagname> || $ git push origin --tags
  • >可以删除一个远程标签:git push origin :refs/tags/<tagname>

17.忽略特殊文件.gitignore

git-简单流程(学习笔记)的更多相关文章

  1. Git版本控制管理学习笔记3-基本的Git概念

    为了更近一步的学习和理解Git的理念,这一节介绍一下Git中的一些基本概念. 基本概念 对象库图示 Git在工作时的概念 一.基本概念: 1.版本库:     Git的版本库就是一个简单的数据库,其中 ...

  2. Git版本控制管理学习笔记5-提交

        这个标题其实有些让人费解,因为会想这个提交是动词还是名称?     提交动作是通过git commit命令来实现的,提交之后会在对象库中新增一个提交对象.提交过程中会发生哪些变化,在上一篇笔记 ...

  3. Git版本控制管理学习笔记4-文件管理和索引

        可以认为使用Git时,我们会遇到3个空间:工作目录.索引.版本库.我们关心的,就是在新建.修改等操作时,这三者之间发生了怎样的变化.     笼统的讲,就是在工作目录下编辑,在索引中积累修改, ...

  4. Git版本控制管理学习笔记2--起步

    首先确保系统中已经安装了git,这里使用的linux系统. 一.命令行初步使用: 1.git命令: 列出它的选项和最常用的子命令.标准命令格式中,COMMAND代表的就是下面列出的子命令. [root ...

  5. Git版本控制管理学习笔记1-介绍

    几乎所有的版本控制工具都是出于同样的目的:开发以及维护开发出来的代码,方便读取代码的历史,记录所有的修改.这里,介绍的是当前在开源社区内非常流行的版本控制工具Git.它是由Linus Torvalds ...

  6. 【原】《Git教程》学习笔记

    [TOC] 1 创建版本库 1.1 初始化 初始化一个Git仓库,使用 git init 命令. 添加文件到Git仓库,分两步: 第一步,使用命令git add <file> ,注意,可反 ...

  7. VerilogHDL概述与数字IC设计流程学习笔记

    一.HDL的概念和特征 HDL,Hard Discrimination Language的缩写,翻译过来就是硬件描述语言.那么什么是硬件描述语言呢?为什么不叫硬件设计语言呢?硬件描述语言,顾名思义就是 ...

  8. eclipse使用git及github学习笔记

    项目托管 1.首先需要在github上建立一个远端仓库  点击Create repository后,会在github上建立相应的git仓库,并会出现如下界面: 复制https或者ssh的仓库地址,远端 ...

  9. Git与GitHub学习笔记(七)Windows 配置Github ssh key

    前言 SSH是建立在应用层和传输层基础上的安全协议,其目的是专为远程登录会话和其他网络服务提供安全性的保障,用过SSH远程登录的人都比较熟悉,可以认为SSH是一种安全的Shell.SSH登录是需要用户 ...

  10. Git与GitHub学习笔记(三).gitignore文件忽略和删除本地以及远程文件

    一.Git提供了文件忽略功能.当对工作区某个目录或者某些文件设置了忽略后,git将不会对它们进行追踪 HELP:如何在IntelliJ IDEA中使用.ignore插件忽略不必要提交的文件 问题:最近 ...

随机推荐

  1. 在 ML2 中配置 OVS flat network - 每天5分钟玩转 OpenStack(133)

    前面讨论了 OVS local network,今天开始学习 flat network. flat network 是不带 tag 的网络,宿主机的物理网卡通过网桥与 flat network 连接, ...

  2. 我的MYSQL学习心得(一) 简单语法

    我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心得(四) 数据类型 我的MYSQL学习心得(五) 运 ...

  3. webpack的使用

    1.webpack是什么? 打包前端项目的工具(为项目提高逼格的东西). 2.webpack的基本命令 webpack#最基本的启动webpack命令 webpack-w #提供watch方法,实时进 ...

  4. ASP.NET MVC5+EF6+EasyUI 后台管理系统(63)-Excel导入和导出-自定义表模导入

    系列目录 前言 上一节使用了LinqToExcel和CloseXML对Excel表进行导入和导出的简单操作,大家可以跳转到上一节查看: ASP.NET MVC5+EF6+EasyUI 后台管理系统(6 ...

  5. javascript单元测试框架mochajs详解

    关于单元测试的想法 对于一些比较重要的项目,每次更新代码之后总是要自己测好久,担心一旦上线出了问题影响的服务太多,此时就希望能有一个比较规范的测试流程.在github上看到牛逼的javascript开 ...

  6. 个人网站对xss跨站脚本攻击(重点是富文本编辑器情况)和sql注入攻击的防范

    昨天本博客受到了xss跨站脚本注入攻击,3分钟攻陷--其实攻击者进攻的手法很简单,没啥技术含量.只能感叹自己之前竟然完全没防范. 这是数据库里留下的一些记录.最后那人弄了一个无限循环弹出框的脚本,估计 ...

  7. mount报错: you must specify the filesystem type

    在linux mount /dev/vdb 到 /home 分区时报错: # mount /dev/vdb /homemount: you must specify the filesystem ty ...

  8. 基于Vue2.0的单页面开发方案

    2016的最后一天,多多少少都应该总结一下这一年的得失,哪里做的好,哪里需要改进,记一笔,或许将来会用到呢. 毕业差不多半年了,一直是一个人在负责公司项目的前端开发与维护,当时公司希望前后端分离,提高 ...

  9. SharePoint 2013管理中心里【管理服务器上的服务】不见了

    打开管理中心,准备配置Managed Metadata Service,发现"管理服务器上的服务"不见了 那我自己拼url直接访问:http://xxxx/_admin/Serve ...

  10. 用Java代码实现拦截区域网数据包

    起因: 吃饭的时间在想如果区域网内都是通过路由器上网,那如何实现拦截整个区域网的数据包,从而实现某种窥探欲. 思路:      正常是通过电脑网卡预先设置或分配的IP+网关对路由器进行通讯,比如访问百 ...