〇、前情提要

一直想学git,使用GitHub很久了,但一直咕咕咕。择日不如撞日,开搞。
然后突然想起来我冲过小甲鱼的会员,那就跟着小甲鱼学一下吧,后续如果在b站看到了补充的还会再继续写笔记。
参考:
1.【Git教程】《极客Python之Git实用教程》(小甲鱼)
https://www.bilibili.com/video/BV1bs411N7ny?from=search&seid=11044103083431153314
2. 小甲鱼官网《极客Python之Git实用教程》
https://fishc.com.cn/forum-334-1.html

P1、Git是个什么玩意儿

  1. 现有的书籍晦涩难懂,存在专家盲点
  2. Q:在没有版本控制器之前,我们如何管理文件呢?
    A:文件夹形式
    演示略
  3. Linus->Linux
    BitKeeper、BitMover
    git、GitHub、开源项目
  4. Git实用教程1:世界上最先进的分布式版本控制系统简介
    https://fishc.com.cn/thread-71107-1-1.html

P2、Git理论基础

  1. Git实用教程2:安装Git
    https://fishc.com.cn/thread-71175-1-1.html

我写的一篇【git】在mac上用brew安装并配置git教程
https://blog.csdn.net/weixin_43210113/article/details/107380299

  1. 配置git

  2. 命令行

  3. Git实用教程3:理论基础(很重要)
    https://fishc.com.cn/thread-71255-1-1.html
    Git实用教程4:实战(有彩蛋)
    https://fishc.com.cn/thread-71305-1-1.html

  4. Git 记录的是什么?
    SVN 等其他版本控制系统工作原理是记录每一次的变动,增量文件系统。

    Git 会将整每个版本变动保存起来。易于分支管理。

  5. Git 三棵树:工作区域、暂存区域和 Git 仓库

    工作区域:平时存放项目代码的地方。
    暂存区域:保存即将提交的文件列表信息。
    Git 仓库:安全存放数据的位置。

7.实战
新建文件夹-MyProject

cd MyProject
git init //初始化仓库,生成.git的文件夹(隐藏文件需调设置)

新建README.md

This is a big project! //在工作目录中添加、修改文件git add README.md //将需要进行版本管理的文件放入暂存区域
git commit -m "add a readme file" //将暂存区域的文件提交到 Git 仓库,并加说明



P3、查看工作状态和历史提交

Git实用教程5:状态(有彩蛋)
https://fishc.com.cn/thread-71445-1-1.html

  1. git status查看工作状态
git status
  1. MIT协议
  2. 新建LICENSE文件,增加一个版权声明
Copyright (C) <你的year> <你的copyright holders>Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.git status
git add LICENSE
git reset HEAD // 命令恢复暂存区域
git commit -m "add a license file"
git status


可以reset

  1. 当有修改的内容时
git status
//使用 git add 命令将工作目录的新版本覆盖暂存区域的旧版本,然后准备提交
//使用 git checkout 命令将暂存区域的旧版本覆盖工作目录的新版本(危险操作:相当于丢弃工作目录的修改)git add LICENSE
git status
// 此处修改LICENSE
git status
git add LICENSE
git commit -m "change the license file"

  1. log
git log


commit这个是 Git 为每次提交计算出来的 ID,它其实一个完整的 SHA-1 校验和(尽管你的文件内容可能跟我的完全一致,但这个值却不一样,这是因为账号、时间不同而导致)。你不需要知道 SHA-1 的原理,只需要知道它在任何时候都是唯一的,通过这个 ID,你就可以找到对应的那个版本。
Author 后边是提交者,Date 后边是提交日期,下边是当次提交的说明。

  1. 一步到位
git commit -am "change the license file"

-a 选项其实是专为懒人添加的。添加了 -a 选项,Git 会自动帮你将工作目录中所有“已跟踪”的文件先 add 到暂存区域,然后再执行 commit 命令。


P4、回到过去

Git实用教程6:回到过去(有彩蛋)
https://fishc.com.cn/thread-71464-1-1.html

  1. reset 和 checkout

git add 命令用于把工作目录的文件放入暂存区域
git commit 命令用于把暂存区域的文件提交到 Git 仓库
git reset命令用于把 Git 仓库的文件还原到暂存区域
git checkout 命令用于把暂存区域的文件还原到工作目录

  1. 回滚快照
    HEAD 表示最新提交的快照(31f46),而 HEAD~ 表示 HEAD 的上一个快照(d19e3),HEAD~n。
git reset HEAD~
git status



  1. reset命令的选项

    –mixed 选项是默认的
git reset HEAD~
git reset --mixed HEAD~
git reset --soft HEAD~
git reset --hard HEAD~
  1. 回滚

    同样适用往前滚

  2. 回看版本
git reflog


第一列为每次执行完命令,HEAD 指向的版本 ID 号。


P5、版本对比

Git实用教程7:版本比较(有彩蛋)
https://fishc.com.cn/forum.php?mod=viewthread&tid=71718

  1. 准备工作



    game.py
import randomprint('------------------我爱鱼C工作室------------------')
secret = random.randint(1,10)
temp = input("不妨猜一下小甲鱼现在心里想的是哪个数字:")
guess = int(temp)while guess != secret:temp = input("哎呀,猜错了,请重新输入吧:")guess = int(temp)if guess == secret:print("卧槽,你是小甲鱼心里的蛔虫吗?!")print("哼,猜中了也没有奖励!")else:if guess > secret:print("大了,大了~~~")else:print("小了,小了~~~")print("游戏结束,不玩啦^_^")

README.md

课后作业:文字游戏


第一次提交


修改为

import randomprint('------------------我爱鱼C工作室------------------')times = 3
secret = random.randint(1,10)
guess = 0print("不妨猜一下小甲鱼现在心里想的是哪个数字:", end=" ")while (guess != secret) and (times > 0):temp = input()guess = int(temp)times = times - 1 # 用户每输入一次,可用机会就-1if guess == secret:print("哇哦,你是小甲鱼心里的蛔虫吗?!")print("哼,猜中了也没有奖励!")else:if guess > secret:print("哥,大了大了~~~")else:print("嘿,小了,小了~~~")if times > 0:print("再试一次吧:", end=" ")else:print("机会用光咯T_T")print("游戏结束,不玩啦^_^")
《零基础入门学习Python》第004讲
课后作业:文字游戏
  1. 比较暂存区域与工作目录
git diff

第一行:diff --git a/README.md b/README.md
表示对比的是存放在暂存区域的 README.md 和工作目录的 README.md

第二行:index 7966837…472a180 100644
表示对应文件的 ID 分别是 7966837 和 472a180,左边暂存区域,后边当前目录。
100644 是指定文件的类型和权限。

第三行:— a/README.md
— 表示该文件是旧文件(存放在暂存区域)

第四行:+++ b/README.md
+++ 表示该文件是新文件(存放在工作区域)

第五行:@@ -1 +1,2 @@
以 @@ 开头和结束,中间的“-”表示旧文件,“+”表示新文件,后边的数字表示“开始行号,显示行数”

第六、七行:+
前边有个 + 的绿色的那一行说明是新文件独有的,浅灰色的则是两个文件所共有的内容。

第八行:\ No newline at end of file
这是 Git 出于善意的提醒:文件不是以换行符结束。

VIM命令
移动命令
按下 j 按键表示向下移动一行,按下 k按键则是向上移动一行。
f 表示向下一页(一个窗口的内容);b 表示向上一页的移动。
d 表示向下移动半页;u 表示向上移动半页。

跳转命令
按 g 去到第一行,按 G 去到最后一行。
先输入数字 3,再按下 g,表示去到第 3 行。

搜索命令
输入斜杠(/)或问号(?),后边输入搜索的关键字:

  1. 比较两个历史快照
git commit -am "add feature - 3 opportunities for player"
git log
git diff 两个快照版本号


  1. 比较当前工作目录和 Git 仓库中的快照
题目要求:限制玩家尝试次数

比较第n份快照和当前目录的内容

git diff 快照版本号

比较最新提交的快照和当前目录的内容

git diff HEAD
  1. 比较暂存区域和 Git 仓库快照
git diff --cached

【git】小甲鱼Git教程《极客Python之Git实用教程》笔记一相关推荐

  1. 【Python】办公篇-《极客Python之效率革命》(小甲鱼) 笔记一

    〇.前情提要 学习小甲鱼的使用Python读写Excel文件.这是上篇. 参考: [办公篇]<极客Python之效率革命>(小甲鱼)https://www.bilibili.com/vid ...

  2. 【爬虫篇】《极客Python之效率革命》(小甲鱼) b站笔记

    〇.前情提要 如果有更新了请提醒我写笔记. 然后突然想起来我冲过小甲鱼的会员,那就跟着小甲鱼学一下吧,后续如果在b站看到了补充的还会再继续写笔记. 参考: [爬虫篇]<极客Python之效率革命 ...

  3. python零基础入门教程百度云-小甲鱼零基础入门学习Python百度云下载 | 宅男君

    Python编程语言可以在不同平台上使用,比如Windows.MAC.Linux操作系统.通常情况下,一个Python程序在你自己的Windows系统上运行,也可以在别人的MAC系统上运行.Pytho ...

  4. 小甲鱼python教程视频怎么样-小甲鱼零基础入门学习Python视频教程全套96集

    资源介绍 教程名称: 小甲鱼零基础入门学习Python视频教程全套96集 课程简介: xa0 xa0 Python具有跨平台特点,Python可以在各种不同类型的计算机上运行,Windows.MAC. ...

  5. 零基础入门python小甲鱼-小甲鱼零基础入门学习Python百度云下载 | 宅男君

    Python编程语言可以在不同平台上使用,比如Windows.MAC.Linux操作系统.通常情况下,一个Python程序在你自己的Windows系统上运行,也可以在别人的MAC系统上运行.Pytho ...

  6. 小甲鱼零基础入门学习Python(绝对干货,值得学习)

    小甲鱼零基础入门学习Python(绝对干货,值得学习) 链接: https://pan.baidu.com/s/1jJmIrlk 密码: ktp2

  7. 小甲鱼python游戏代码_【小甲鱼】零基础学习python pygame 飞机大战可执行源代码...

    [实例简介] [小甲鱼]零基础学习python pygame 飞机大战可执行源代码,觉得挺有意思,故此分享. [实例截图] [核心代码] 飞机大战 └── 飞机大战 ├── bullet.py ├── ...

  8. python快速编程入门教程-终于懂得python快速编程入门教程

    为了提高模块加载的速度,每个模块都会在__pycache__文件夹中放置该模块的预编译模块,命名为module.version.pyc,version是模块的预编译版本编码,一般都包含Python的版 ...

  9. python脚本教程-总算懂得python脚本快速入门教程

    PyQt5是基于Digia公司强大的图形程式框架Qt5的python接口,由一组python模块构成.PyQt5本身拥有超过620个类和6000函数及方法.在可以运行于多个平台.PyQt5拥有双重协议 ...

  10. python numpy安装windows_windows 下python+numpy安装实用教程

    如题,今天兜兜转转找了很多网站帖子,一个个环节击破,最后装好费了不少时间. 希望这个帖子能帮助有需要的人,教你一篇帖子搞定python+numpy,节约科研时间. 水平有限,难免存在不足,敬请指正. ...

最新文章

  1. 一个apk多个ICON执行入口
  2. 理解面向过程和面向对象的程序设计方法
  3. ClickHouse系列教程七:centos下源码编译安装及报错解决
  4. Spark Scala语言学习系列之完成HelloWorld程序(三种方式)
  5. Web端a标签跳转地图等链接(收藏)
  6. Python数据结构与算法(第七天)
  7. 如何创建新的SAP CRM middleware subscription
  8. java lock代码写法_java Lock接口详解及实例代码
  9. 微软更新服务器win7,[技巧]绕过微软限制:让基于新处理器的Win7/8.1系统继续接收更新...
  10. 二、操作系统——用信号量机制实现进程互斥、同步、前驱关系(详解)
  11. 计算机网络(十八)-以太网
  12. 光储充一体化充电站_【储能项目】国家电网与浙江瓯江口新区共建光储充一体化充电站项目...
  13. springboot+vue企业员工考勤绩效工资管理系统java
  14. 详细讲解黑客常用的远程控制木马
  15. Apple苹果iOS数据丢失如何恢复?
  16. 改变this指向的方法
  17. html和css如何制作小球,雨林寒舍 | CSS3制作3D跳动的小球
  18. 翁恺c语言程序设计入门期末,程序设计入门-C语言 翁恺.doc
  19. Android翻转动画(卡片翻转效果)
  20. 基于python和amap(高德地图)web api的爬虫,用于搜索某POI点

热门文章

  1. Iterator死循环
  2. 故障树分析 - 事件概率模型
  3. 洛谷 P1330 封锁阳光大学(BFS染色)
  4. 市盈率相对盈利增长比率PEG
  5. RISC-V MCU应用方案之Little VGL(LVGL)移植(一)
  6. 测试自动化成本及投资回报率
  7. oracle dbf文件读取,读取oracle数据表,导出到DBF文件。
  8. Eureka服务注册中心搭建
  9. python定义矩形类_Python3面向对象—点和矩形类
  10. AI行业“四小龙”里,谁最有巨头相?