1.Git安装完成后需要做的配置    
        $ git config --global user.name "Your Name"
        $ git config --global user.email "email@example.com"

2.版本库创建
        初始化一个Git仓库,使用git init命令初始化。
        添加文件到Git仓库,分两步:
        第一步,使用命令git add <file>,注意,可反复多次使用,添加多个文件;
        第二步,使用命令git commit,完成。

3.查看工作区
        要随时掌握工作区的状态,使用git status命令。
        如果git status告诉你有文件被修改过,用 git diff 文件名 可以查看修改内容

4.版本回退
        HEAD指向的版本就是当前版本,因此,Git允许我们在版本的历史之间穿梭,使用命令git reset --hard commit_id。
        穿梭前,用git log可以查看提交历史,以便确定要回退到哪个版本。
        要重返未来,用git reflog查看命令历史,以便确定要回到未来的哪个版本。
        
    5.撤销修改
        git checkout -- file命令中的--很重要,没有--,就变成了“切换到另一个分支”的命令,我们在后面的分支管理中会再次遇到git checkout命令。
        1)命令git checkout -- readme.txt意思就是,把readme.txt文件在 工作区 的修改全部撤销,这里有两种情况:
            一种是readme.txt自修改后还没有被放到暂存区,现在,撤销修改就回到和版本库一模一样的状态;
            一种是readme.txt已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态。
            总之,就是让这个文件回到最近一次git commit或git add时的状态。
        2)用命令git reset HEAD file可以把 暂存区 的修改撤销掉(unstage),重新放回工作区:
        
        撤销修改的三种场景解决方法:
        场景1:当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改时,用命令git checkout -- file。
        场景2:当你不但改乱了工作区某个文件的内容,还添加到了暂存区时,想丢弃修改,分两步,第一步用命令git reset HEAD file,就回到了场景1,第二步按场景1操作。
        场景3:已经提交了不合适的修改到版本库时,想要撤销本次提交,参考版本回退一节,不过前提是没有推送到远程库。
        
    7.删除恢复
        你通常直接在文件管理器中把没用的文件删了,或者用 rm 文件名 命令删除:
        命令 git rm 文件名 用于删除一个文件。如果一个文件已经被提交到版本库,那么你永远不用担心误删,但是要小心,你只能恢复文件到最新版本
        git checkout -- 文件名 命令其实是用版本库里的版本替换工作区的版本,无论工作区是修改还是删除,都可以“一键还原”。
        
        
    8.使用远程仓库 git@github.com:liulei1/Local.git
        8.1 生成ssh key
            $ ssh-keygen -t rsa -C "youremail@example.com"
            将用户主目录下,.ssh目录中的id_rsa.pub文件的公钥内容放入到远程仓库中。(通过“Add SSH Key”添加)
            
        8.2 要关联一个远程库,使用命令git remote add origin git@server-name:path/repo-name.git;
            关联后,使用命令git push -u origin master第一次推送master分支的所有内容;
            此后,每次本地提交后,只要有必要,就可以使用命令git push origin master推送最新修改;
            
        8.3 克隆远程仓库
            git clone git@github.com:liulei1/Local.git
    
    9.创建和合并分支
    
        查看分支:git branch
        创建分支:git branch 分支名
        切换分支:git checkout 分支名
        创建+切换分支:git checkout -b 分支名
        合并某分支到当前分支:git merge 分支名
        删除分支:git branch -d 分支名
        查看分支合并图:git log --graph  $ git log --graph --pretty=oneline --abbrev-commit
        
    10.Bug分支
        情形:当手头工作没有完成时,先把工作现场git stash一下,然后去修复bug,修复后,再git stash pop,回到工作现场。
        
        Git把stash内容存在某个地方了,但是需要恢复一下,有两个办法:
            一是用git stash apply恢复,但是恢复后,stash内容并不删除,你需要用git stash drop来删除;
            另一种方式是用git stash pop,恢复的同时把stash内容也删了:
        
        用git stash list查看之前存储的工作现场
        git stash apply stash@{0} 跳转到相应的slash工作现场
        
    11.Feature分支
        添加一个新功能时,你肯定不希望因为一些实验性质的代码,把主分支搞乱了,所以,每添加一个新功能,最好新建一个feature分支,在上面开发,完成后,合并,最后,删除该feature分支。
        如果在合并分支之前该分支的功能不需要了,就要丢弃这个没有被合并过的分支,可以通过git branch -D <name>强行删除

Git+GitHub 使用小结的更多相关文章

  1. git &github 快速入门

    本节内容 github介绍 安装 仓库创建& 提交代码 代码回滚 工作区和暂存区 撤销修改 删除操作 远程仓库 分支管理 多人协作 github使用 忽略特殊文件.gitignore 1.gi ...

  2. Git&GitHub

    Git是一个开源的分布式版本控制系统,可以有效.高速地处理从很小到非常大的项目版本管理.  Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软 ...

  3. Git工具使用小结

    昨天开始看一套java接口自动化的视频,今天看到的一章是关于git这个工具使用的,上大学那会用过svn作为版本管理工具,包括现在所在的公司,用的也还是svn进行管理.其实老早就听闻过Git,Githu ...

  4. Python开发【笔记】:git&github 快速入门

    github入门 简介: 很多人都知道,Linus在1991年创建了开源的Linux,从此,Linux系统不断发展,已经成为最大的服务器系统软件了. Linus虽然创建了Linux,但Linux的壮大 ...

  5. 【Python之路】特别篇--Git & GitHub

    版本控制工具主要实现2个功能: 版本管理 在开发中,这是刚需,必须允许可以很容易对产品的版本进行任意回滚,版本控制工具实现这个功能的原理简单来讲,就是你每修改一次代码,它就帮你做一次快照 协作开发 一 ...

  6. git+github上传与管理

    1.首先下载并安装git,方便管理github上的代码 https://git-scm.com/downloads 2.然后点击安装好的git bash(注册好自己的github) git confi ...

  7. git/github学习笔记

    郑重提示,本文来自这里,如果喜欢,请关注原作者. 1. git 版本控制系统 相比CVS\SVN优势: - 支持离线开发,离线Repository- 强大的分支功能,适合多个独立开发者协作- 速度块 ...

  8. Git/GitHub 初用体验与总结

    Git,一个神奇而又陌生的东西,居然到现在才去了解它,就像有一位仁兄说的,现在不会用Git真的都不好意思说自己搞IT的. 简单的讲,这Git是目前最先进的分布式版本控制系统,和他相对应的就是众所周知的 ...

  9. git github简单知识

    Git 常用命令 git init here -- 创建本地仓库(repository),将会在文件夹下创建一个 .git 文件夹,.git 文件夹里存储了所有的版本信息.标记等内容 git remo ...

随机推荐

  1. How can I learn to program?

    黑客与画家:硅谷创业之父paul graham关于回答‘How can I learn to program’ How can I learn to program? Find a friend wh ...

  2. SQL Server里的自旋锁介绍

    在上一篇文章里我讨论了SQL Server里的闩锁.在文章的最后我给你简单介绍了下自旋锁(Spinlock).基于那个基础,今天我会继续讨论SQL Server中的自旋锁,还有给你展示下如何对它们进行 ...

  3. CART(分类回归树)原理和实现

    前面我们了解了决策树和adaboost的决策树墩的原理和实现,在adaboost我们看到,用简单的决策树墩的效果也很不错,但是对于更多特征的样本来说,可能需要很多数量的决策树墩 或许我们可以考虑使用更 ...

  4. 虚拟机service network restart没有反应解决方法

      一般我们新copy的虚拟机或新克隆的虚拟机第一次启动时都会出现没有ip地址的情况: [root@zejin243 network-scripts]# ifconfig lo        Link ...

  5. 0527Sprint总结,读书笔记与提问

    第八章主要软件团队如何准确全面的找到人们对于软件五花八门的需求,主要有以下几个步骤: 1.获取和引导需求 2.分析和定义需求 3.验证需求 4.在软件产品的生命周期中管理需求 . 接下来讲了软件产品的 ...

  6. java内部类的使用

    内部类不是很好理解,但说白了其实也就是一个类中还包含着另外一个类 如同一个人是由大脑.肢体.器官等身体结果组成,而内部类相当于其中的某个器官之一,例如心脏:它也有自己的属性和行为(血液.跳动) 显然, ...

  7. Ajax,谷歌提示AutoCompleteExtender控件

    提示内容从数据库中读取: ------------------------------------------页面 <asp:ScriptManager ID="ScriptManag ...

  8. PEM (Privacy Enhanced Mail) Encoding

    PEM (Privacy Enhanced Mail) Encoding The moPEM (Privacy Enhanced Mail) Encoding The most commonly us ...

  9. HTML 编辑基础

    HTML  基础语言 打开DREAMWEAVER,新建HTML.. body的属性: bgcolor                页面背景色 background            背景壁纸.图 ...

  10. Automapper扩展方法

    问题描述 系统中实现了一个自定义的PagedList /// <summary> /// Paged list interface /// </summary> public ...