【git】小甲鱼Git教程《极客Python之Git实用教程》笔记二

〇、前情提要

【git】小甲鱼Git教程《极客Python之Git实用教程》笔记一
https://blog.csdn.net/weixin_43210113/article/details/107370275
参考:
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


P6、修改最后一次提交、删除文件和重命名文件

Git实用教程8:修改最后一次提交、删除文件和重命名文件(有彩蛋)
https://fishc.com.cn/thread-71884-1-1.html

  1. 修改最后一次提交
git commit --amend

如果需要修改提交说明,那么可以执行 git commit --amend -m “新的提交说明” 命令。
如果不需要修改,请按下快捷键 Shift + z + z(其实就是连续两个大写 Z)来退出,或者可以按下冒号(:),然后输入 q! 退出。那么会 Git 会保留旧的提交说明。

  1. 删除文件
    如果在文件夹里删除README.md
    使用 checkout 命令可以将暂存区域的文件恢复到工作目录
git checkout -- README.md

【git】小甲鱼Git教程《极客Python之Git实用教程》笔记二_第1张图片
在 Git 中删除文件

git add *
git commit -m "another change"
git rm xxx

git status
git log
git reset --soft HEAD


新建test.py

print("TEST")

git add test.py

print("TEST~")

git status
git rm test.py //不知道删除哪个
git rm -f test.py //同时删除两个文件
git status
git rm --cached test.py //删除暂存区文件
  1. 重命名文件

    把 game.py 重命名为 wordgame.py
git status

git mv game.py wordgame.py
git status
  1. 忽略文件
    工作目录创建一个名为 .gitignore 的文件
echo *.temp > .gitignore

P7、创建和切换分支

Git实用教程9:创建和切换分支(有彩蛋)
https://fishc.com.cn/thread-73806-1-1.html

  1. 分支是什么?


    Git 采用一种看似“异端”的形式来处理版本迭代 —— 通常的版本控制系统是采用增量文件系统来管理版本迭代;而 Git 则是采用将每个版本都独立存储的方式 —— 看上去使用 Git 会耗费更多的空间,但来到分支管理这一块,却成了 Git 完胜其它版本控制系统的关键!

  2. 创建分支

git branch feature
git log --decorate

【git】小甲鱼Git教程《极客Python之Git实用教程》笔记二_第2张图片
3. 切换分支

git checkout feature
git log --decorate --oneline

【git】小甲鱼Git教程《极客Python之Git实用教程》笔记二_第3张图片
修改README.md

git add README.md
git commit -m "change the README file"
git log

【git】小甲鱼Git教程《极客Python之Git实用教程》笔记二_第4张图片

git checkout master

【git】小甲鱼Git教程《极客Python之Git实用教程》笔记二_第5张图片
对 README.md 文件进行修改

git commit -m "change the README file again"

【git】小甲鱼Git教程《极客Python之Git实用教程》笔记二_第6张图片

git log --oneline --decorate --graph --all 

【git】小甲鱼Git教程《极客Python之Git实用教程》笔记二_第7张图片


P8、合并和删除分支

Git实用教程10:合并和删除分支(有彩蛋)
https://fishc.com.cn/thread-74870-1-1.html

  1. 合并分支
git log --oneline --decorate --graph --all 
git merge feature

合并 README.md 文件的时候出现冲突。所以自动合并失败;请修改冲突的内容并重新提交快照。

git status
git my wordgame.py game.py

git status
git add README.md
git commit -m "fix conflicts"
git log --oneline --decorate --graph --all 

【git】小甲鱼Git教程《极客Python之Git实用教程》笔记二_第8张图片
新建并进入feature2分支,新建featur2.txt

git checkout -b feature2
git add feature2.txt
git commit -m "have a try"
git log --oneline --decorate --graph --all 

【git】小甲鱼Git教程《极客Python之Git实用教程》笔记二_第9张图片
切换回master分支,

git checkout master
git merge feature2

【git】小甲鱼Git教程《极客Python之Git实用教程》笔记二_第10张图片

  1. 删除分支
git branch -d 分支名

P9、匿名分支和checkout命令

Git实用教程11:匿名分支和checkout命令(有彩蛋)
https://fishc.com.cn/thread-76640-1-1.html

  1. 准备工作
    依次创建三个文件并提交(每创建一个文件提交一次)
git add 1.txt
git commit -m "1.txt"

git add 2.txt
git commit -m "2.txt"

git add 3.txt
git commit -m "3.txt"

  1. 匿名分支
git log --oneline --decorate --graph --all 
git checkout HEAD~
// 3.txt消失  checkout 将环境切换到上一次提交了

【git】小甲鱼Git教程《极客Python之Git实用教程》笔记二_第11张图片
【git】小甲鱼Git教程《极客Python之Git实用教程》笔记二_第12张图片
使用了 checkout 命令但没有指定分支名,所以 Git 帮你创建了一个匿名分支,当你切换到别的分支时,这个匿名分支中的所有提交都会被丢弃掉。
创建4.txt

git add 4.txt
git log --oneline --decorate --graph --all 
git checkout master

【git】小甲鱼Git教程《极客Python之Git实用教程》笔记二_第13张图片
有两个分支,但 HEAD 所在的分支并没有名字(匿名分支)。
【git】小甲鱼Git教程《极客Python之Git实用教程》笔记二_第14张图片
匿名分支已消失。

  1. 再论 checkout
    checkout 命令有两种功能:
  • 从历史快照(或者暂存区域)中拷贝文件到工作目录
  • 切换分支
  1. checkout 命令和 reset 命令的区别
  • 恢复文件
    都可以用于恢复指定快照的指定文件,并且它们都不会改变 HEAD 指针的指向。 reset 命令只将指定文件恢复到暂存区域(–mixed),而 checkout 命令是同时覆盖暂存区域和工作目录。
  • 恢复快照
    reset 命令是用来“回到过去”的,根据选项的不同,reset 命令将移动 HEAD 指针(–soft) -> 覆盖暂存区域(–mixed,默认)-> 覆盖工作目录(–hard)。
    checkout 命令虽说是用于切换分支,但前面你也看到了,它事实上也是通过移动 HEAD 指针和覆盖暂存区域、工作目录来实现的。

P10、创建你的GitHub账户

有脑子就会创 不写笔记啦。
Git实用教程12:创建你的GitHub账户
https://fishc.com.cn/thread-82074-1-1.html

GitHub 官网有一系列指导文档(GUIDE),小甲鱼觉得不错,顺便给大家翻译下。
其中很多知识其实在我们前面的《Git实用教程》中已经讲过,大家权当复习哈:

  1. GitHub 十分钟入门教程
    http://bbs.fishc.com/thread-73728-1-1.html
  2. 理解 GitHub 流
    http://bbs.fishc.com/thread-82097-1-1.html
  3. 创建你的 GitHub 主页
    http://bbs.fishc.com/thread-82202-1-1.html
  4. 在 GitHub 上为开源事业做贡献
    http://bbs.fishc.com/thread-82279-1-1.html
  5. 在 GitHub 上进行项目开发
    http://bbs.fishc.com/thread-82336-1-1.html
  6. Forking 项目
    http://bbs.fishc.com/thread-82337-1-1.html
  7. 社交
    http://bbs.fishc.com/thread-82338-1-1.html
  8. 为你的项目分配一个 DOI
    http://bbs.fishc.com/thread-82339-1-1.html
  9. 掌握 Issues
    http://bbs.fishc.com/thread-82340-1-1.html
  10. 掌握 Markdown
    http://bbs.fishc.com/thread-82341-1-1.html
  11. 在 GitHub 上为你的项目写文档
    http://bbs.fishc.com/thread-82342-1-1.html

完结撒花

你可能感兴趣的:(Git,git)