zoukankan      html  css  js  c++  java
  • git整理(二)

    Git

    回退版本

    #回退至上一次提交的版本
    #中间的六个长度的字符串对应的是日志信息的提交id的前六位
    #网上回退100个版本$ git reset --hard HEAD~100
    $ git reset --hard HEAD^
    HEAD is now at c338f61 第三次提交

    #回退至指定版本
    $ git reset --hard cac83a
    HEAD is now at cac83a7 第二次提交

    #查看使用过的指令
    $ git reflog
    cac83a7 (HEAD -> master) HEAD@{0}: reset: moving to cac83a
    c338f61 HEAD@{1}: reset: moving to HEAD^
    99d4ce1 HEAD@{2}: commit: 第四次提交
    c338f61 HEAD@{3}: commit: 第三次提交
    cac83a7 (HEAD -> master) HEAD@{4}: commit: 第二次提交
    77c2b2c HEAD@{5}: commit (initial): 第一次提交

    Git提交过程

    我们首先要理解git的提交过程第一步是用git add把文件添加进去,实际上就是把文件修改添加到缓存区;第二步是用git commit提交更改,实际上就是把暂存区的所有内容提交到本地仓库。
    创建Git版本库时,Git自动创建一个master分支,所以,现在,git commit就是往master分支上提交更改。

    管理修改


    #查看a文件
    $ cat a.txt
    aaaaaaaaaaa
    #修改文件后查看
    $ cat a.txt
    aaaaaaaaaaa
    bbbbb
    #add到缓存区
    $ git add a.txt
    #再修改文件
    $ cat a.txt
    aaaaaaaaaaa
    bbbbb
    cc
    #直接commit到本地仓库
    $ git commit -m "第三次提交"
    [master a4c3eaf] 第三次提交
    1 file changed, 1 insertion(+)
    #此时查看a.txt的状态还是修改未添加提交,这是因为,commit只把add到缓存区的文件commit到本地仓库,因此只要修改文件,都要先add再commit,这同时也是Git的一种安全机制

    #git diff对比修改你修改过的文件会清楚的标识出来
    $ git diff
    diff --git a/learn2/a.txt b/learn2/a.txt
    index 776474b..a8ff3e8 100644
    --- a/learn2/a.txt
    +++ b/learn2/a.txt
    @@ -4,3 +4,4 @@ ccccccc
    ddddddddd
    eeeee
    fffff
    +gggg

    撤销修改


    你写代码,写完提交了,突然发现自己写错了,这时候就需要回退一下
    #先修改一次提交
    $ cat a.txt
    aaaaaaaaaaa
    bbbbbbbb
    ccccccc

    $ git commit -m "第三次提交"
    [master a4c3eaf] 第三次提交
    1 file changed, 1 insertion(+)

    再修改a文件
    $ cat a.txt
    aaaaaaaaaaa
    bbbbbbbb
    ccccccc
    ddddd
    添加到缓存区
    $ git add a.txt
    回退版本
    $ git checkout -- a.txt
    此时再查看a文件
    $ cat a.txt
    aaaaaaaaaaa
    bbbbbbbb
    ccccccc
    发现回退到修改前的版本

    再修改a文件
    $ cat a.txt
    aaaaaaaaaaa
    bbbbbbbb
    ccccccc
    ddddd
    添加到缓存区
    $ git add a.txt
    查看a文件的状态 发现已经添加到缓存区 可以提交的状态
    $ git status
    On branch master
    Changes to be committed:
    (use "git restore --staged <file>..." to unstage)
          modified:   a.txt
    用命令git reset HEAD <file>可以把暂存区的修改撤销掉(unstage),重新放回工作区:
    $ git reset HEAD a.txt
    Unstaged changes after reset:
    M       learn2/a.txt
    查看a文件的状态 发现未添加到缓存区 可以添加的状态
    $ git status
    On branch master
    Changes not staged for commit:
    (use "git add <file>..." to update what will be committed)
    (use "git restore <file>..." to discard changes in working directory)
          modified:   a.txt

    no changes added to commit (use "git add" and/or "git commit -a")

     

  • 相关阅读:
    java窗口按钮位置设置
    使用java语言编写窗口按钮
    添加无参的构造方法
    冒泡排序
    多态
    首页列表显示全部问答,完成问答详情页布局。
    制作首页的显示列表。
    发布功能完成。
    登录之后更新导航
    完成登录功能,用session记住用户名
  • 原文地址:https://www.cnblogs.com/liudongshuai/p/11571681.html
Copyright © 2011-2022 走看看