zoukankan      html  css  js  c++  java
  • Git&GitHb学习记录

         源自:廖雪峰Git教程:https://www.liaoxuefeng.com/wiki/896043488029600

        Git和GitHub是什么?

    Git是版本控制工具,GitHub是储存代码的网站

    Git官方文档:https://git-scm.com/

    1. 创建版本库/仓库,repository

       可简单理解为一个目录,这个目录里所有文件都可本Git管理起来,Git能追踪每个文件的修改和删除

      第一步,创建一个版本库,就是创建一个空文件夹

    $ mkdir learngit
    $ cd learngit 

      第二步,通过git init命令,把这个仓库变成Git可管理的仓库

    $ git init

     此时当前目录下会出现 .git的新目录,这个目录是Git跟踪管理版本库的,不能随便修改。用 ls -ah 可以显示默认隐藏目录 .git

    2.把文件添加到版本库中

    创建readme.txt文件,并把它放入learngit文件夹下,learngit是一个Git仓库,放在其他地方Git找不到

    Git is a version control system.
    Git is a free software.

      类比大象放冰箱,把一个文件放入Git仓库只需要两步。

      第一步,用命令git add告诉Git,把文件添加到仓库。

    git add readme.txt

          第二步,用命令 git commit  告诉Git,把文件提交到仓库:

    $ git commit -m "wrote a readme file"
    [master (root-commit) eaadf4e] wrote a readme file   //git commit命令执行成功后
     1 file changed, 2 insertions(+)
     create mode 100644 readme.txt

      -m 后面输入的是本次提交的说明(提交说明最好是有意义的,方便从历史记录里方便地改动记录)

      

     1 file changed,   //一个文件被改动(即新添加的文件)

      

     2 insertions(+)   //插入两行内容(readme.txt)有两行内容
     修改readme.txt文件的内容,用git status命令可时刻查看仓库文件的内容

      readme.txt已经被修改了

      Changes not staged for commit:改变尚未提交

      要想看看readme.txt具体修改了什么内容,需要用git diff命令

      

      知道readme.txt坐了什么修改之后,在把他提交到仓库,提交修改和提交新文件是一样的两步

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

      查看修改的历史记录,有哪些版本,用git log命令查看 

       

      3.Git版本回退

      把readme.txt回退到上一个版本。Git中,用HEAD表示当前版本,上一个版本就是HEAD^,上上一个版本是HEAD^^,往上100个版本写100个^比较容易写不过来,所以要写成HEAD~100

      例,把append GPL回退到上一个版本 add distributed,可使用git reset命令

    git reset --hard HEAD^

      结果:

    HEAD is now at 7c1acd8 add distributed

      此时,打开readme.txt文件,里面的内容也被还原了

      想恢复到最新版本,找不到新版本的commit id怎么办?

      Git提供了一个命令 git reflog用来记录你的每一次命令

      

      可看出 append GPL的提交id 是7a6c7cf(简写,其实提交id还很长)

      回到append GPL版本

    git reset --hard 7a6c7cf

      结果:

    HEAD is now at 7a6c7cf append GPL

      小结:

    • HEAD指向的版本就是当前版本。Git允许我们在版本的历史之间穿梭,使用命令 git reset --hard commit_id
    • 穿梭前,用git log 可以查看提交历史,以便确定回到哪个版本
    • 要重返未来,用git reglog查看命令示例,以便确定要回到未来的哪个版本。
  • 相关阅读:
    MyBatis 智能标签
    MyBatis入门
    Hibernate 分组查询 子查询 原生SQL
    组件映射
    Hibernate组件映射
    hibernate 中的 lazy=”proxy” 和 lazy=”no-proxy” 的区别
    save(),saveOrUpdate(),merge()的区别
    ThreadLocal
    OID,主键生成策略,PO VO DTO,get和load区别,脏检查,快照,java对象的三种状态
    HIbernate实现增、删、改、查。
  • 原文地址:https://www.cnblogs.com/Makerr/p/14685600.html
Copyright © 2011-2022 走看看