根据学习廖雪峰老师的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. Using SQLite database in your Windows 10 apps

    MVP可以在channel 9上传视频了,所以准备做个英文视频传上去分享给大家,本文做稿子. Hello everyone, As we all know, SQLite is a great and ...

  2. Zabbix系列之三——部署JMX监控tomcat

    zabbix提供了一个java gateway的应用去监控jmx(Java Management Extensions,即Java管理扩展)是一个为应用程序.设备.系统等植入管理功能的框架.JMX可以 ...

  3. servlet 请求乱码解决

  4. docker+nginx实现负载均衡

    配置nginx配置文件(配置文件运行时是会加载到docker进程中)先建立nginx相关文件和目录,对应下面启动命令中的挂载位置,把主配置文件nginx.conf放到对应位置“/etc/docker/ ...

  5. 从零开始学 Web 之 CSS3(四)边框图片,过渡

    大家好,这里是「 从零开始学 Web 系列教程 」,并在下列地址同步更新...... github:https://github.com/Daotin/Web 微信公众号:Web前端之巅 博客园:ht ...

  6. SQOOP安装部署

    1.环境准备 1.1软件版本 sqoop-1.4.5 下载地址 2.配置 sqoop的配置比较简单,下面给出需要配置的文件 2.1环境变量 sudo vi /etc/profile SQOOP_HOM ...

  7. SpringBoot2.0源码分析(二):整合ActiveMQ分析

    SpringBoot具体整合ActiveMQ可参考:SpringBoot2.0应用(二):SpringBoot2.0整合ActiveMQ ActiveMQ自动注入 当项目中存在javax.jms.Me ...

  8. rtsp信令交互流程

  9. 我对alias的重新认识:通过alias让rm更安全

    bash&shell系列文章:http://www.cnblogs.com/f-ck-need-u/p/7048359.html rm的悲剧总是发生在不经意之间,所以无论是在shell脚本中还 ...

  10. InnoDB存储引擎--Innodb Buffer Pool(缓存池)

    InnoDB存储引擎--Innodb Buffer Pool(缓存池) Innodb Buffer Pool的概念 InnoDB的Buffer Pool主要用于缓存用户表和索引数据的数据页面.它是一块 ...