根据学习廖雪峰老师的git教程做的笔记

安装git

进行git的配置

  • 配置您的用户名和邮箱地址,使用--global 这个参数表明了在此台机器上的所有仓库都会使用该配置


    $ git config --global user.name "Your Name"
    $ git config --global user.email "email@example.com"

创建版本库

  1. 在本地的一个文件目录下,创建一个仓库test,就是一个名为test的文件夹


    $ mkdir test
    $ cd test
    $ pwd
    /d/Repositories/test
  2. 将该仓库交由git进行管理


    cd test
    git init
    Initialized empty Git repository in D:/Repositories/test/.git/

    执行 git init 命令会将该仓库叫由git进行管理,在该仓库下会多出一个.git的文件夹,该文件夹是用于跟踪管理版本库的

将文件添加至版本仓库

  1. 首先在仓库里创建一个文件,比如README.md

  2. 使用 git status 可以查看当前版本仓库的状态,当新建了README.md文件后,执行 git status 命令,可以看到以下的信息,未添加到仓库的文件列表以及提示可以使用 git add命令来将其添加到仓库中


    $ git staus On branch master Initial commit Untracked files:
    (use "git add <file>..." to include in what will be committed) README.md nothing added to commit but untracked files present (use "git add" to track)
  3. 使用 git add 命令来将文件添加到仓库,此时再执行 git status 可以看到以下信息,文件README。添加到了仓库中


    $ git add README.md
    $ git status
    On branch master Initial commit Changes to be committed:
    (use "git rm --cached <file>..." to unstage) new file: README.md
  4. 使用 git commit 提交操作,-m 后面是对本次提交进行说明,可以说是这次提交干了啥事,得到的信息是:命令执行成功,一个文件改变插入了69行。


    $ git commit -m "add README.md" [master (root-commit) a88471c] add README.md
    1 file changed, 69 insertions(+)
    create mode 100644 README.md

由于README.md文件就是我正在编辑的笔记文件,所以该文件已经较上一次提交发生了改变,我们使用 git status 来查看状态

```shell

$ git stauts
On branch master
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git checkout -- <file>..." to discard changes in working directory) modified: README.md no changes added to commit (use "git add" and/or "git commit -a") ```

可以使用 git diff 来查看文件具体的修改,显示的是当前文件与上一次提交的文件的不同

```

$ git diff README.md
```

然后我们可以将修改后的文件在添加并提交到仓库

```shell

    $ git add README.md
$ git commit -m "update REMADE.md"
```

版本控制

  • 以上的操作向版本库提交了两次,使用 git log 可以查看提交的历史记录,按照由最近的提交到最远的提交排列,没一次提交都有唯一的 commitid 来标识,可以看到下列信息有,add README.mdupdate README.md 两次提交记录。


    $ git log commit 00673827e54d35b3db1950f8ac6f728d6e809386
    Author: lychiyu <lychiyu@gmail.com>
    Date: Sat May 6 14:10:14 2017 +0800 update README.md commit a88471c627f934ca1540bd5cc1d51c8a4a3b65ee
    Author: lychiyu <lychiyu@gmail.com>
    Date: Sat May 6 10:30:19 2017 +0800 add README.md
  • 如果想要回退到当前版本的上一个版本,可以使用以下命令,便回到了上一个版本,此时再执行 git log 命令,只能得到一个提交记录。


    $ git reset --hard HEAD^
    HEAD is now at a88471c add README.md $ git log
    commit a88471c627f934ca1540bd5cc1d51c8a4a3b65ee
    Author: lychiyu <lychiyu@gmail.com>
    Date: Sat May 6 10:30:19 2017 +0800 add README.md
  • 如何回到 update README.md 这个版本,可以使用以下命令,--hard 后面的字符是 update README.md 版本的 commitid 的前几位,这样就可以回到指定的版本了


    $ git reset --hard 00673827
    HEAD is now at 0067382 update README.md
  • 可以使用 git reflog 来查看命令记录


$ git reflog

管理修改

  • 撤销操作

    1. 当修改文件后并未执行 git add 时使用 git checkout --README.md 命令来撤销修改
    2. 执行了 git add 时,先使用 git reset HEAD README.md 再执行情况1的指令

$ git reset HEAD README.md
$ git checkout --README.md
3. 如果已经提交了,这可以执行版本回退操作

远程仓库

  • 生成 SHH Key,填上自己的邮箱地址,复制当前用户目录下“.ssh/id_rsa.pub” 里面的内容到github或者其他代码托管网站的ssh设置里面


    $ ssh-keygen -t rsa -C "lychiyu@gmail"
  • 将本地仓库,推送到远程代码库中的master分支上


    $ git remote add origin git@bitbucket.org:lychiyu/test.git
    $ git push -u origin master
  • 克隆远程仓库到本地


    $ git clone git@bitbucket.org:lychiyu/test.git

分支管理

  • 创建分支,创建一个dev分支,并切换至dev分支下


    $ git branch dev
    $ git checkout dev
    Switched to branch 'dev'

    使用git branch命令来查看所有的分支,在当前分支前会有星号标注


    $ git branch
    * dev
    master
  • 合并分支,使用git merge 命令来接需要合并的分支名,如下面,先切到master分支下,在将dev分支与其合并。


    $ git checkout master
    $ git merge dev
  • 删除分支,如下


    $ git branch -d dev
    Deleted branch dev (was 0067382).
    $ git branch
    * master

根据学习廖雪峰老师的git教程做的笔记的更多相关文章

  1. 廖雪峰老师的git在线教程

    我是看廖老师的网站,学习git使用的,所以在这里做做收藏,也推广推广. 该教程的类型可以换个名称<手把手看图教你用git>来概括,呵呵. 做得很用心,学起来很快.

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

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

  3. git入门(廖雪峰老师)

    根据廖雪峰老师的git教程进行学习总结: 1.之前上班用的都是svn进行管理,那么svn和git有什么区别呢? svn是集中式的版本控制系统,而git是分布式版本控制系统,那么集中式和分布式版本控制系 ...

  4. git入门笔记汇总——(廖雪峰博客git入门)

    本文内容是对廖雪峰老师Git教程做的笔记,外加一些自己的学习心得,还抱着学以致用的心态来实践一番 如有显示错误 请移步本人github:git教程小结 Git学习笔记 Git简介 安装Git 创建版本 ...

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

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

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

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

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

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

  8. 廖雪峰老师Python教程读后笔记

    廖老师网站:http://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000 花几天时间看了廖老师的 ...

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

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

随机推荐

  1. [视频]K8飞刀 S2-020 exploit getshell 动画教程

    [视频]K8飞刀 S2-020 exploit getshell 动画教程 链接:https://pan.baidu.com/s/1G5x7Dcu6pzHz6ZfSCDDmKA 提取码:05kw

  2. 可以用软连接的方式解决linux内存空间不足的问题

    突然提示说/var空间满了,然后接着系统卡死,最后彻底没辙,重启试试,没想到提示什么系统错误,请联系管理员之类的提示语,也进不去登陆界面啥了.之后用其他电脑连接SSH用root账号访问. # cd / ...

  3. 14-01 Java matches类,Pattern类,matcher类

    Pattern类 正则表达式常见规则 A:字符 x 字符 x.举例:'a'表示字符a \\ 反斜线字符. \n 新行(换行)符 ('\u000A') \r 回车符 ('\u000D') B:字符类 [ ...

  4. Django--中间件相关

    一 什么是中间件 中间件顾名思义,是介于request与response处理之间的一道处理过程,相对比较轻量级,并且在全局上改变django的输入与输出.因为改变的是全局,所以需要谨慎实用,用不好会影 ...

  5. 四:理解Page类的运行机制(例:基于PageStatePersister的页面状态存取)

    有人说类似gridview datalist这样的控件最好不要用在高并发,IO大的网站中企业应用中为了快速开发到可以用一用因为这是一类"沉重"的组件我们姑且不谈这种看法的正确性(我 ...

  6. C#中List的方法RemoveAt小测试

    结论:在C#中将一个List中的项插入到别一个List中,会复制,而不是从源List中移除. 示例如下 void Start () { TestList (); } void TestList () ...

  7. Golang GC原理

    一.内存泄漏 内存泄露,是从操作系统的角度上来阐述的,形象的比喻就是“操作系统可提供给所有进程的存储空间(虚拟内存空间)正在被某个进程榨干”,导致的原因就是程序在运行的时候,会不断地动态开辟的存储空间 ...

  8. ContentProvider使用总结

    近日来学习ContentProvider相关的知识,做了一个demo,想和网友分享下. 首先说一点相关的知识: 一:作用 ContentProvider是不同应用程序共享数据的接口,跟共享数据的别的方 ...

  9. Django 学习笔记(五) --- Ajax 传输数据

    人生苦短 ~ Tips:仅适用于 Python 3+(反正差别不大,py2 改改也能用).因为据 Python 之父 Guido van Rossum 说会在 2020 年停止对 Python 2 的 ...

  10. Lucene实战之关键字匹配多个字段

    前言 当我们输入关键字时希望可以支持筛选多个字段,这样搜索内容的覆盖率就会大一些. 匹配多个字段主要用 MultiFieldQueryParser类. 单一字段搜索 QueryParser parse ...