【注:本地我直接用的git可视化工具sourceTree,记录笔记方便在服务器操作】
【 鱼C-小甲鱼的同步教学视频,点击此处进行跳转】
【如转载此文章,请标明出处 https://blog.csdn.net/weixin_43239068/article/details/107533322】

目录

  • 一、Git理论
  • 二、命令
    • 1.提交缓存到Git仓库
    • 2.查看工作状态和历史提交
    • 3.回滚代码
    • 4.diff 对比找不同
    • 5.修改最后一次提交
    • 6.删除文件
    • 7.重命名文件
    • 8.分支

一、Git理论

  1. 查看git信息
git config --list


2. git记录的是版本变动,每个版本都是独立保存的
3. git是维护三棵树来实现版本控制的
1)Working(Directory):存放工作目录的地方
2)Stage(Index):临时存放的改动,即将存放到仓库的列表信息,是一个个的文件
3)Repository(HEAD):最终存放版本数据的位置,HEAD是最新版本的指向数据


3. Git的工作流程
1)在工作目录中添加/修改文件
2)讲需要进行版本管理的文件放入暂存区域
3)将暂存区域的文件提交到Git仓库
4. Git管理文件的三种状态
1)已修改(modified)
2)已暂存(staged)
3)以体检(committed)

二、命令

1.提交缓存到Git仓库

1.初始化一个空的仓库,用来跟踪管理版本迭代的,追踪这个文件夹里的文件来管理git项目的

git init

2.创建一个XX.md文件,让开发人员看到你的文档
3.讲需要进行版本管理的文件放入暂存区域

git add XX.md

4.将暂存区域的文件提交到git仓库

git commit -m "add a readme file"  //“”中间的信息是提交此次缓存的备注,方便应用

2.查看工作状态和历史提交

1.查看状态(可查看到所处分支,未暂存以提交的更改,未跟踪的文件,有没有需要提交的更改)

git status //如果出现下图的红色文件 代表此文件没有加入到缓存去  可用 git add XX.js 加入缓存区,加入后就会变成绿色了

2.最后提交的代码恢复回暂存区域

git reset HEAD <file>  //不写<file>将回滚最后一次提交的所有文件,如果指定了<file>将只回滚选中的文件

3.删除暂存的更改(未commit前)

git checkout <file> // //不写<file>将回滚所有更改文件,如果指定了<file>将只回滚选中的更改文件

4.查看历史提交记录

git log   //进入查看log后 可用 q  退出

3.回滚代码

1.回滚最后一次提交的记录到暂存区域(commit后的代码)

git reset HEAD~   //~后面可加数字,如:(git reset HEAD~3),代表回滚最近3次的提交。本次命令写全是(git reset --mixed HEAD~),执行后 再用git log也看不到回滚的提交记录了

2.回滚到指定位置,之前的提交会全部回滚到暂存区域

git reset bc124d4a1ca // 'bc124d4a1ca'是git log 后显示的黄色提交序号,不需要写全,但是要保证写的快照ID是唯一,如果提交记录多避免重复,建议写全,

3.往前滚(在第二步的时候我回滚到了bc124d4a1ca的位置,之前的两次提交都没有了,但是只要我记住之前的快照ID,我依旧可以往前滚)

git reset --hard 3ac08fd9985e75 //‘3ac08fd9985e75’为上图最后的一次提交

4.diff 对比找不同

1.比较暂存区域与工作目录不同的地方,也就是所更改的地方

git diff

2.比较两个历史快照

git diff 快照1ID 快照2ID

3.比较当前工作目录和Git仓库中的快照(还没有git add前的)

1) git diff 要对比的快照ID //因为当前工作目录的更改还没有提交,所以没有快照ID,故只需要写要对比的快照ID就可
2) git diff HEAD //比较当前工作目录和最新提交的快照

4.比较暂存目录和Git仓库中的快照(git add后的)

1) git diff --cached //比较的是暂存区域和最新提交的快照
2) git diff --cached 要对比的快照ID //暂存目前和指定的Git仓库中的快照的对比

5.修改最后一次提交

1.修改最后那次提交的备注信息

git commit --amend //输入后会进入到新的页面,输入i进入到修改,更改最上层的提交备注,修改后输入 :wq 保存并退出,并且不会多log日志。因说明是中文导致乱码,可:q!强退出后 使用 git commit --amend -m '说明'  进行更改

6.删除文件

1.如果不小心删除文件 可-> git status查看删除的是哪个文件 -> git checkout -- 文件名就可以恢复了,[注意: – 左右各有一个空格]
2.git rm fileName //只是删除工作目录和暂存区域的文件 -> git reset --soft HEAD~因为删除后使用git status 依旧可以查看到被删除的信息,所以用–soft修改log的指针,把提交删除的记录去掉,但不会移动任何文件
3.git rm -f fileName //强制删除,如果暂存区和当前目录都有此文件,将会两个文件一起删除
4.git rm --cached 文件名 //删除暂存区域的文件

7.重命名文件

1.git mv fileName newFileName

8.分支

1.创建分支 git branch 分支名
2.切换分支

1) git checkout 分支名
2) git checkout -b 分支名 //创建并切换到此分支

3.所有分支,包括远程分支git branch -a
4.图形化显示提交记录

git log --decorate --oneline --graph --all //‘oneline’精简化的显示 ‘graph’图形化显示 ‘all’显示所有的分支,decorate后的顺序可随意

5.合并分支

1) git merge 分支名 //把指定分支合并到当前分支

6.删除分支 git branch -d 分支名 //-d 精简分支名,--d 全名

Git学习笔记 — 借鉴bilibili 鱼C-小甲鱼的教学视频相关推荐

  1. Tensorflow2.0学习笔记(一)北大曹健老师教学视频1-4讲

    Tensorflow2.0学习笔记(一)北大曹健老师教学视频1-4讲 返回目录 这个笔记现在是主要根据北京大学曹健老师的视频写的,这个视频超级棒,非常推荐. 第一讲 常用函数的使用(包含了很多琐碎的函 ...

  2. Tensorflow2.0学习笔记(二)北大曹健老师教学视频第五讲

    Tensorflow2.0学习笔记(二)北大曹健老师教学视频第五讲 返回目录 理论部分主要写点以前看吴恩达视频没有的或者不太熟悉的了. 5.1卷积计算过程 实际项目中的照片多是高分辨率彩色图,但待优化 ...

  3. 小甲鱼数据结构教学视频(百度网盘)

    这是小甲鱼数据结构教学视频(免费的哦) 直接搜索这个地址,然后保存百度网盘.下载后,就可以免费听课 http://pan.baidu.com/s/1eS9wsgi

  4. 【STM32入门100步--学习笔记】USART串口接收程序(含教学视频)

    STM32串口接收的程序和8051单片机一样,有2种接收方式:中断处理和查询方式. 试过两种方式之后发现,中断处理方式更方便,可以扩展多个数据的接收.推荐中断方式. 我已经将本资料内容整理后录制了视频 ...

  5. Git 学习笔记:自定义Git(完)

    前言 在补习python的时候主要参考的是廖雪峰的教程Python教程,在学习完后准备完成期末作业时,遇到了一个技术难题,需要初步掌握git,因此开始了git的学习. 本教程参考廖雪峰的Git教程 G ...

  6. Git学习笔记:修改

    前言 在补习python的时候主要参考的是廖雪峰的教程Python教程,在学习完后准备完成期末作业时,遇到了一个技术难题,需要初步掌握git,因此开始了git的学习. 本教程参考廖雪峰的Git教程 G ...

  7. git学习笔记(全,附命令大全)

    git学习笔记(全) 注:本文参考自廖雪峰官网 下图来自Git Cheat Sheet侵删 git优点 Git是分布式版本控制系统,同一个Git仓库,可以分布到不同的机器上. Git跟踪并管理的是修改 ...

  8. Git 学习笔记:6 GitHub

    Git 学习笔记:6 GitHub 账户的 创建和配置 SSH访问 头像 邮件地址 两步验证 对项目做贡献 派生(fork)项目 GitHub 流程 创建合并请求 利用合并请求 合并请求的进阶用法 将 ...

  9. Git学习笔记:中国版GItHub,码云

    前言 在补习python的时候主要参考的是廖雪峰的教程Python教程,在学习完后准备完成期末作业时,遇到了一个技术难题,需要初步掌握git,因此开始了git的学习. 本教程参考廖雪峰的Git教程 G ...

最新文章

  1. video怎么重新加载 vue_vue.js中vue-video-player中的怎么插入多个视频,视频可以同时播放的问题及解决办法...
  2. AI一分钟 | 科大讯飞2017年度财报:营收54.45亿元,净利润4.35亿元;滴滴首谈无人驾驶战略:只做软件不造车
  3. javascript 实现页面显示当前时间 动态读秒
  4. mysql索引查2遍_mysql索引优化查询
  5. 使用外部同步的 Boost.Test 调用在 MT 环境中测试单元测试框架的可用性
  6. 最新版Kubernetes常用命令大全
  7. 《犯罪心理学》读书笔记(part1)--蔑视社会秩序的最明显、最极端的表现就是犯罪
  8. instanceof_您真的需要instanceof吗?
  9. 图论 —— 差分约束系统
  10. 你猜一个 TCP 连接上面能发多少个 HTTP 请求
  11. 20160319中艺收盘总结
  12. 上班一族“黑话”辞典大曝光
  13. 32核心板怎么样使用stlink_终极调试工具 EventRecorder 使用方法,各种 Link 通吃
  14. 浅谈Clean Code
  15. 我的大学四年收获及工作感悟
  16. 运动垫的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告
  17. MascotCapsule手机游戏引擎简介
  18. 最全的计算机会议排名
  19. Web 实时消息推送详解
  20. 免Root获取WIFI密码

热门文章

  1. java监视器_java锁与监视器概念 为什么wait、notify、notifyAll定义在Object中 多线程中篇(九)...
  2. Keil MDK 工程输入中文汉字编译报错解决办法
  3. js获取每个月最后一天的两种方法
  4. 【硬件】电容一端接电源,另一端接地,起什么作用,什么时候才会有这样的接法
  5. 【狮子数学】chapter2-04-泰勒展开
  6. 工业数字孪生系统的实施
  7. 【Python-基础】第五章 转圈圈(杨淑娟)
  8. 数据库储存过程超简单实例
  9. 软件测试校招2017,2017腾讯校招性格测试
  10. Newman(二)之环境搭建