zoukankan      html  css  js  c++  java
  • 廖雪峰git教程学习笔记

    对git来说,没有消息就是最好的消息

    使用 git init 把当前目录变为git仓库

    要在仓库里加入文件,先在仓库目录新建这个文件后,比如新建一个文件xiaobai.txt,内容为:

     

    在命令行里输入 git status,出现提示xiaobai为untracked file,即没有加入仓库:

     

    git的工作机制为:

     

    仓库所在的目录文件夹为工作区,但工作区里的文件不一定全都是版本库(repository)里的,版本库里又分为暂缓区stage和另一个区域master,有一个指向master的指针HEAD,代表当前版本库,使用 git add文件名 命令会将新文件或修改的文件加入stage缓存区,每一个文件都要使用一次这个命令!!然后再使用 git commit –m”注释” 命令来一次性把这些改动加入master,注意git commit命令只会把stage中的内容提交,如果在某些文件使用git add命令后,又新建或改动了一些文件(或者二次修改这些已经git add的文件),则使用git commit命令不会把这些后来者加入版本库(已经git add 的文件后来的修改也不会被提交,而提交的是二次修改之前的内容,如果要提交二次修改的内容,则要再次使用git add命令)!每一次有新文件加入master或原有的文件发生改动,就会产生一个新的版本。

    把xiaobai.txt加入缓存区(没有消息就是最好的消息):

     

    再使用 git status 查看状态:

     

    提示缓存区内有新文件等待commit到master

    使用 git commit –m”new xiaobai” 一次性把缓存区内的东西提交到master:

    3 insertions指的是xiaobai里有3行内容

    此前版本库中已存在文件akk.txt:

     

    修改其内容:

     

    再使用git status ,提示版本库里的文件被修改:

     

    此时要使用 git add akk.txt 才能加入缓存区stage,使用 git commit –m”some common” 才能写入版本库,形成一个新的版本,若使用 git checkout – akk.txt 会放弃上一部的修改!打开akk.txt,发现又回到了原来的样子:

     

    如果想看akk.txt具体修改了什么内容,则使用git diff “文件名” 命令:

     

    (红色为原来的内容,绿色为修改后的内容)

    也可以使用 git diff HEAD – 文件名 查看工作区和版本库里最新版本的区别:

     

    如果修改后文件已使用git add命令加入stage,则使用 git reset HEAD 文件名 命令会使他退出stage:

     

    总之,被修改但没有加入stage的用git checkout命令会被删除修改,已加入stage的用git reset HEAD 文件名 命令会被退出stage

    使用 git rm 文件名 删除文件(只能删除版本库中的,无法删除工作区的文件):

     

    发现工作区目录中已经没有了xiaobai.txt文件,删除文件后一样要使用git commit命令提交新的版本:

     

    在使用git commit提交新版本之前,git checkout -- 文件名 命令还可以起到恢复文件的作用!(git checkout其实是用版本库里的版本替换工作区的版本,无论工作区是修改还是删除,都可以“一键还原”)

  • 相关阅读:
    设计模式03-工厂方法
    设计模式02-抽象工厂
    设计模式01-什么是设计模式
    工作流activiti-03数据查询(流程定义 流程实例 代办任务) 以及个人小练习
    工作流activiti-02事物控制、流程引擎创建
    工作流activiti-01个人小结
    jQuery.extend 函数详解
    hibernate框架学习之数据查询(QBC)
    hibernate框架学习之多表查询helloworld
    hibernate框架学习之数据查询(HQL)helloworld
  • 原文地址:https://www.cnblogs.com/tan-wm/p/9327578.html
Copyright © 2011-2022 走看看