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

原文地址:https://www.cnblogs.com/zhangchao162/p/9571769.html

时间: 2024-11-08 12:25:04

Git与GitHub入门基础(二)的相关文章

Git和GitHub入门基础

教程网址:http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000-----------------------------------------//cd F:/learngitgit init  // 在当前目录下创建空的git仓库-----------------------------------------// 创建文件并放到git仓库所在目录,执行下面命令将文件添加到git仓库

Git与GitHub入门基础(一)

Git的诞生 很多人都知道,Linus在1991年创建了开源的Linux.从此,Linux系统不断发展,已经成为最大的服务器系统软件了.Linus虽然创建了Linux,但Linux的壮大是靠全世界热心的志愿者参与的,这么多人在世界各地为Linux编写代码,那Linux的代码是如何管理的呢? 事实是,在2002年以前,世界各地的志愿者把源代码文件通过diff的方式发给Linus,然后由Linus本人通过手工方式合并代码!你也许会想,为什么Linus不把Linux代码放到版本控制系统里呢?不是有CV

Git和Github入门学习

注册github账号也有些时日,但一直给自己找借口github的操作麻烦,便一直逃避不肯学习,今天,我终于不再逃避,静下心来花时间和精力学习github的基本使用操作.git和github入门学习一.下载安装安装 git for windows 这个是一个git的windows系统的命令行版本 https://git-scm.com/downloads注释:安装 git for windows 一路 next 即可二.使用github1.注册账号github官网:https://github.c

【LaTeX排版】LaTeX使用--入门基础&lt;二&gt;

1.在命令之后留一个空格有下列方式: 源文件如下: \documentclass[a4paper,12pt]{book}%采用book类型(中篇论文一般采用这种类型),A4纸,字体为12磅,默认为10磅 \usepackage{ctexcap}%采用中文标题宏包(标题是中文的) %\usepackage{ctex}%采用中文字体宏包(标题是英文的)与ctexcap不能同时使用 \begin{document} {\LaTeX} 是一个排版工具 %命令行后保留空格的三种方法 \par %另起一段,

mybatis入门基础(二)----原始dao的开发和mapper代理开发

阅读目录 一:原始dao开发方法 二:mapper代理方法(只需要mapper接口,相当于dao接口) 承接上一篇 mybatis入门基础(一) 看过上一篇的朋友,肯定可以看出,里面的MybatisService中存在大量的重复代码,看起来不是很清楚,但第一次那样写,是为了解mybatis的执行步骤,先苦后甜嘛! 回到顶部 一:原始dao开发方法 概要:1.在上篇中搭建好的框价中编写dao接口和dao实现类 2.向dao接口实现类中注入SqlSessionFactory,在方法体内通过SqlSe

GitHub入门之二 参与一个项目编写

接上文:大多数时候我们也需要把别人的代码进行整合和修改,而不是简单的修改,这时就需要对一个项目进行修改. 注意,本系列文章主要说明在github网站上的操作,更多高级操作请使用git控制台 一.fork一个项目 打开一个项目,点击界面右上角的的“fork”,就会在你自己的项目库里创建一个代码的拷贝. 这份代码的主人就是你,你可以对代码进行任何修改.比如在此我fork了一个比特币的项目 https://github.com/bitcoin/bitcoin 进入自己的主页后看到有了一份项目的拷贝,而

Git及Github入门笔记

简介 Git是一个分布式版本控制系统(你可以通过Git来管理你的代码以及相关文档,可以在自己电脑上管理,同时也可以和同事协同使用管理),Github为Git提供一个服务器(简单的说,就是你可以把你的代码推送到Github上去,同时可以从Github上边clone一些代码下来) 安装 网上安装资料一大堆,这里推荐一个廖雪峰Git教程,安装后就可以使用了,这里要说明的是如果你需要和Github关联的话还要做进一步操作,看这里 常用命令(个人常用的命令) 1.比方说你创建了一个test.py文件,想保

git和github入门指南(3.2)

3.3.解决多人协作开发过程中的代码冲突问题 1.在多人协作开发的项目中,每次开发之前每个人最好先同步更新一下github上最新的代码,可以减少冲突的概率 git pull 2.产生冲突 目前咱们演示项目git-demo中有两个开发这,第一个人,nodeing666,第二个,nd-00002,github仓库中最新的代码是nd-00002这个人提交的代码,这个时候,如果nodeing666这个人在开发之前并没有拉取github中最新的代码,而是直接去修改index.html这个页面,例如: <s

C#入门基础二

万物皆对象:对象是包含数据和操作的实体. 属性:名词     /  对象     \      方法:动词 ============================================================================= 类:    类的成员--静态成员属于类,实例成员属于对象(类的实例).使用类声明可以创建新的类.对象所拥有的特征,在类中表示时称为类的属性.类可同等级写也可包含写.    声明类的语法:[访问修饰符]class<类名(自定义)>