• Git与GitHub入门基础(二)


    上节回顾

    • 初始化一个Git仓库用 git init 命令。
    • 将文件添加到Git仓库中主要有两个步骤:

           第一步,使用命令 git add <file>;

            注意:使用 git add . 命令可以将全部文件同时添加到Git仓库缓存区。

           第二步,使用命令 git commit -m "message" 将Git仓库缓存区文件存放到Git仓库。

      这样,就完成了将文件存放到Git仓库的基本流程。

    ============我===是===分===割===线=============

    查看工作区状态

      我们已经成功地添加并提交了一个sayHello.py文件,现在,是时候继续工作了,于是,我们继续修改sayHello.py文件,改成如下内容:

    1 def sayHello(name):
    2     print("Hi,", name)
    3     print("Nice to meet you!")

      现在运行 git status 查看运行结果:

    1 $ git status
    2 On branch master
    3 Changes not staged for commit:
    4   (use "git add <file>..." to update what will be committed)
    5   (use "git checkout -- <file>..." to discard changes in working directory)
    6 
    7         modified:   sayHello.py
    8 
    9 no changes added to commit (use "git add" and/or "git commit -a")

      git status 命令可以让我们时刻掌握仓库当前的状态。上面的命令输出告诉我们,sayHello.py被修改过了,但还没有准备提交的修改。虽然Git告诉我们readme.txt被修改了,但不能看出具体修改了什么内容。需要用 git diff 这个命令查看:

     1 $ git diff
     2 warning: LF will be replaced by CRLF in sayHello.py.
     3 The file will have its original line endings in your working directory.
     4 diff --git a/sayHello.py b/sayHello.py
     5 index 99ad2c8..48bc87f 100644
     6 --- a/sayHello.py
     7 +++ b/sayHello.py
     8 @@ -1,4 +1,4 @@
     9 
    10  def sayHello(name):
    11      print("Hi,", name)
    12 -
    13 +    print("Nice to meet you!")

      git diff 顾名思义就是查看difference,显示的格式正是Unix通用的diff格式。

    版本回退

       通过不断地对文件进行修改并提交到Git版本库中,当在实际工作中,不可能会记得对每个版本做了哪些修改。在Git中,可以通过 git log 命令查看:

     1 $ git log
     2 commit fd7c94c4d321fbd4805f229ccf60f3a003e606f4 (HEAD -> master)
     3 Author: zhangchao <1623804006@qq.com>
     4 Date:   Sun Sep 2 10:18:10 2018 +0800
     5 
     6     add a code in sayHello.py file
     7 
     8 commit 8649dabd56f716bf2cc4e92fad5505eecd756830
     9 Author: zhangchao <1623804006@qq.com>
    10 Date:   Sun Sep 2 10:10:05 2018 +0800
    11 
    12     creat sayHello.py file

      可以发现,总共有两次提交日志。如果嫌输出的信息太多,可以加上 --pretty=oneline 参数:

    1 $ git log --pretty=oneline
    2 fd7c94c4d321fbd4805f229ccf60f3a003e606f4 (HEAD -> master) add a code in sayHello.py file
    3 8649dabd56f716bf2cc4e92fad5505eecd756830 creat sayHello.py file

      到此,我们知道了我们一共提交了多少个版本了。我们准备将 sayHello.py 文件回退到上一个版本中。具体的操作步骤如下:

      第一步:Git必须知道当前版本是哪个版本,在Git中,用 HEAD 表示当前版本,也就是最新的提交 fd7c94...,上一个版本就是 HEAD^,上上一个版本就是 HEAD^^,当然往上100个版本写100个^比较容易数不过来,所以写成HEAD~100

      第二步:把当前版本 add a code in sayHello.py file 回退到上一个版本 creat sayHello.py file ,就可以使用git reset命令:

    1 $ git reset --hard HEAD^
    2 HEAD is now at 8649dab creat sayHello.py file

      我们再查看sayHello.py文件:

    1 $ cat sayHello.py
    2 
    3 def sayHello(name):
    4     print("Hi,", name)

      可见,我们当前版本以及回到了最开始创建sayHello.py文件了。

      如果你回退后悔了,想再次回到回退前的一个版本,只要上面的窗口没有关闭,只要找到相应版本的 commit id ,于是就可以回到指定的某个版本:

    1 $ git reset --hard fd7c94c
    2 HEAD is now at fd7c94c add a code in sayHello.py file

      这样,版本就回到了 fd7c94c 版本了。

      如果,之前的窗口不小心关了,找不到之前版本的 commit id 了。这时,可以通过 git reflog 命令查看所有的版本号:

    1 $ git reflog
    2 fd7c94c (HEAD -> master) HEAD@{0}: reset: moving to fd7c94c
    3 8649dab HEAD@{1}: reset: moving to HEAD^
    4 fd7c94c (HEAD -> master) HEAD@{2}: reset: moving to HEAD
    5 fd7c94c (HEAD -> master) HEAD@{3}: commit: add a code in sayHello.py file
    6 8649dab HEAD@{4}: commit (initial): creat sayHello.py file

      

    撤销修改与删除文件

      撤销修改:

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

          git checkout --<file>

      场景2:当你不但改乱了工作区某个文件的内容,还添加到了暂存区时,想丢弃修改,分两步,

          第一步:用命令git reset HEAD <file>,就回到了场景1,

          第二步:按场景1操作。

      

      删除文件:

      命令 git rm用于删除一个文件。如果一个文件已经被提交到版本库,那么就可以永远不用担心误删,但是要小心,只能恢复文件到最新版本,你会丢失最近一次提交后你修改的内容。

  • 相关阅读:
    JAVA基础语法练习(四)--File 及IO流
    JAVA基础语法练习(三)
    JAVA基础语法练习(二)
    JAVA基础语法练习(一)
    python 面向对象的进阶
    python面向对象基础编程
    Linux远程
    Linux系统的安装、启动及简单的命令使用
    操作系统的结构及发展历史
    操作系统简介
  • 原文地址:https://www.cnblogs.com/zhangchao162/p/9571769.html
Copyright © 2020-2023  润新知