Git与GitHub入门基础

Posted zhangchao162

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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 <[email protected]>
 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 <[email protected]>
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) [email protected]{0}: reset: moving to fd7c94c
3 8649dab [email protected]{1}: reset: moving to HEAD^
4 fd7c94c (HEAD -> master) [email protected]{2}: reset: moving to HEAD
5 fd7c94c (HEAD -> master) [email protected]{3}: commit: add a code in sayHello.py file
6 8649dab [email protected]{4}: commit (initial): creat sayHello.py file

  

 

撤销修改与删除文件

  撤销修改:

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

      git checkout --<file>

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

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

      第二步:按场景1操作。

  

  删除文件:

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

以上是关于Git与GitHub入门基础的主要内容,如果未能解决你的问题,请参考以下文章

Github介绍与使用

Github介绍与使用

GitHub&Git的使用/入门/零基础项

Git基础与Github

git 基础入门操作

《Git小书》笔记:1 前言