• Git学习笔记 第二章


    文件相关操作

    修改readme.txt文件,执行 git status 命令查看当前仓库状态

    git status
    位于分支 master
    尚未暂存以备提交的变更:
    (使用 "git add ..." 更新要提交的内容)
    (使用 "git checkout -- ..." 丢弃工作区的改动)

    修改: redme.txt

    未跟踪的文件:
    (使用 "git add ..." 以包含要提交的内容)

    redme.txt~

    修改尚未加入提交(使用 "git add" 和/或 "git commit -a")

    使用git diff查看修改了什么内容,即difference

    jack@Aspire:~/git$ git diff
    diff --git a/redme.txt b/redme.txt
    index 394552f..4e50204 100644
    --- a/redme.txt
    +++ b/redme.txt
    @@ -1 +1,2 @@
    -This is my first Git test.
    +This is my first Git file. //内容由test改为了file

    然后执行

    git add readme.txt

    git comment -m "add something"

    版本回退

    *git log 命令查看历史记录
    commit 2bf289cac7af933232575719f0a05548de2d92eb
    Author: battleblock jackdirectcn@outlook.com
    Date: Wed Sep 16 22:30:35 2015 +0800
    git

    commit aa458f20559aa148b72f28f61096d7efe54952d1
    Author: battleblock jackdirectcn@outlook.com
    Date: Mon Sep 14 21:18:58 2015 +0800
    test

    commit 7b68b6f797a38b7fe2af70307e22a6008dfdf7a5
    Author: battleblock jackdirectcn@outlook.com
    Date: Mon Sep 14 20:38:35 2015 +0800

    *git log --pretty=oneline显示较少信息(commin id版本号)
    jack@Aspire:~/git$ git log --pretty=oneline
    2bf289cac7af933232575719f0a05548de2d92eb git
    aa458f20559aa148b72f28f61096d7efe54952d1 test
    7b68b6f797a38b7fe2af70307e22a6008dfdf7a5 write a readme file

    回退HEAD 表示当前版本,上一个版本为HEAD^ 上100个版本为HEAD~100
    git reset --hard HEAD^回退到上一个版本

    jack@Aspire:~/git$ git reset --hard HEAD^
    HEAD 现在位于 aa458f2 test
    cat readme命令查看内容

    返回到现在版本

    git reset --hard 版本号
    jack@Aspire:~/git$ git reset --hard 2bf289
    HEAD 现在位于 2bf289c git

    git reflog查看每一次命令

    小结

    *HEARD指向当前版本,Git可以在历史版本间来回穿梭,命令为git reset --hard commit id
    *穿梭前用git log查看提交历史,确定回退到哪个版本
    *重返未来,用git reflog查看命令历史

    撤销修改

    修改了文件,但还未用git add命令提交,可用git checkout -- readme.txt
    *readme.txt自修改后还没有被放到暂存区,撤销修改就回到原来的状态;
    *readme.txt已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态

    修改了文件并用git add提交到到暂存区
    可用命令git reset HEAD file可以把暂存区的修改撤销掉(unstage),重新放回工作区

    git add readme.txt
    git reset HEAD readme.txt
    重置后撤出暂存区的变更:
    M readme.txt
    D redme.txt

    小结

    场景1:当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改时,用命令git checkout -- file。

    场景2:当你不但改乱了工作区某个文件的内容,还添加到了暂存区时,想丢弃修改,分两步,第一步用命令git reset HEAD file,就回到了场景1,第二步按场景1操作。

    场景3:已经提交了不合适的修改到版本库时,想要撤销本次提交,参考版本回退一节,不过前提是没有推送到远程库

    删除文件

    添加一个新文件test.txt到Git并且提交
    git add test.txt
    git commit -m "add test.txt"
    在维恩件管理器中删除该文件或用rm 命令删除
    此时用git status命令查看当前状态

    1.从版本库中删除该文件
    git rm test.txt
    rm 'test.txt'
    $ git commit -m "remove test.txt"
    rm test.txt
    2.恢复误删文件
    git checkout -- test.txt

  • 相关阅读:
    java的注解
    java的反射
    Java的垃圾回收机制
    Java的jvm上的内存位置的分配
    Java的Junit与debug模式入门
    三、FreeMarker 模版开发指南 第三章 模版
    【CodeForces】[698A]Vacations
    【CodeForces】[629B]Far Relative’s Problem
    【POJ】[1328]Radar Installation
    【杭电】[1789]Doing Homework again
  • 原文地址:https://www.cnblogs.com/battleblock/p/4811210.html
Copyright © 2020-2023  润新知