GIT学习

Git

参考网站:
廖雪峰git
runoob git
小甲鱼 git
B站
B站2
资料链接:https://pan.baidu.com/s/198DTTtI2hQlKj7rB6zeQNw
提取码:jme6

下面是几个的tips:

1.集中式和分布式区别
 CVS SVN 集中式版本控制系统
 Git 分布式版本控制 最初是为了管理开源 Linux 提交的代码而产生。linus 两周用C写完了git原型
  集中式版本控制系统,版本库是集中存放在中央服务器的,而干活的时候,用的都是自己的电脑,所以要先从中央服务器取得最新的版本,然后开始干活,干完活了,再把自己的活推送给中央服务器。集中式版本控制系统最大的毛病就是必须联网才能工作。
   分布式版本控制系统根本没有“中央服务器”,每个人的电脑上都是一个完整的版本库,这样,你工作的时候,就不需要联网了,因为版本库就在你自己的电脑上,那多个人如何协作呢?比方说你在自己电脑上改了文件A,你的同事也在他的电脑上改了文件A,这时,你们俩之间只需把各自的修改推送给对方,就可以互相看到对方的修改了。
   分布式版本控制系统通常也有一台充当“中央服务器”的电脑,但这个服务器的作用仅仅是用来方便“交换”大家的修改,没有它大家也一样干活,只是交换修改不方便而已。
   Git的优势不单是不必联网这么简单,后面我们还会看到Git极其强大的分支管理。

git 笔记 小甲鱼: 上面小甲鱼链接里面有详细介绍
朴素手动的版本管理方式不行!
git 将每个版本独立存储
工作区域 暂存区域 git 仓库
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
一. 基础

  1. 命令:git config --global user.name "wgd"
        git config --global user.email "wgd961229@gmail.com"
    在这里插入图片描述
    账号创建成功
  2. 建立一个项目 myproject 命令行输入命令git init 初始化一个空的项目
    在这里插入图片描述
    此时项目文件夹下多个.git文件 莫动

3.新建一个 readme.md 文件 内容随便写 [对应流程第一步]
并且提交到git
git add Readme.md第二步加入到暂存区域
git cmmit -m "add a readme file"【第三步将暂存区域提交到git仓库】
100da
100代表普通文件 644是文件的权限

二.查看状态

1.git status

在这里插入图片描述
新建LICENSE文件存储MIT 协议【先不用管是什么东东】
再次执行 git status
在这里插入图片描述
出现红色license untracked files : 新添加的文件但并没有提交到暂存区域【逍遥法外的文件】,按照提示加入暂存区:
在这里插入图片描述
这时查看状态 出现提示 意思是用2.git reset HEAD 恢复到暂存区之前状态
在这里插入图片描述
按照命令操作后 发现 LICENSE 已经恢复之前状态。

加入至git 仓库查看状态,再次clean
在这里插入图片描述

三. 修改 LICENSE 文件
 修改之后查看状态:在这里插入图片描述
 修改后的文件和暂存区的文件不匹配。git 给出两条建议
 1.使用add 覆盖暂存区再提交
 2.使用3.checkout将暂存区覆盖掉工作区 【危险命令】
 
 按照第一步 add 入暂存区之后 ,如果此时修改 工作区license 文件后,查看状态:
在这里插入图片描述
 问题出现了! 同时存在两个不同版本的文件 【工作目录和暂存区】可以提交提交两种不同的。
 提交最新版 就是把跟新的LICENSE 先 add 进 暂存后commit 仓库在这里插入图片描述
查看历史提交记录 4.git log
在这里插入图片描述
四. 回滚 RESET 命令

  1. 不同时期版本来回穿梭
    在这里插入图片描述
    这里我多了一条记录不过没关系
    在这里插入图片描述
    最新版本的 在三棵树 内容都是一样的
git reset HEAD~

在这里插入图片描述
倒数第二个版本回滚到暂存区中执行后状态: 暂存区和git 仓库都为单数第二个版本了[~number number代表倒数第几个快照或者版本]
在这里插入图片描述
这个时候git log 发现 看不到最新版本了 【只能看到 HEAD 之前版本】
在这里插入图片描述
2. reset 命令选项

git reset  --mixed HEAD~  [默认]
git reset  --soft  HEAD~
git reset  --hard  HEAD~

在这里插入图片描述
分别是影响 2 1 3 棵树

hard 比较危险 因为会工作区 也会更改:在这里插入图片描述
此时 工作区回到最初版本了 LICENSE 已经被删掉
在这里插入图片描述
git log 只剩下一个版本

回滚总结:在这里插入图片描述

回滚指定快照 :git reset + 快照ID [还可以向前滚 !!!]
回滚个别文件: git reset 快照+ 文件名/路径

tips: 5.git reflog 找回历史id

五 版本对比 dif
比较暂存和工作目录文件的不同:命令 git diff
在这里插入图片描述
比较两个历史快照 git diff 快照1 id 快照2 id
比较工作目录和git 仓库 git diff HEAD
比较暂存和git 仓库 git diff -- cached

在这里插入图片描述

六 .分支修改最后一次提交 删除和重命名文件
 1.修改最后一次提交
场景一: 版本一刚提交(commit) 到仓库,漏掉两个文件没有添加(add)
场景二: 修改readme文件,并加入至暂存区,想提交至仓库,但是 不想生成一个新的快照版本。
针对场景二:利用 git commit --amend 命令
 2. 删除文件:
如果在公国目录删除了readme 文件 这时候 git status
在这里插入图片描述
恢复 利用 git checkout -- Readme.md

删除上传的yellow.jpg git rm yellow.jpg
在这里插入图片描述
但是 git status 还是会留下痕迹
这时候 git reset --soft HEAD~
当工作区和暂存区文件不同时:用 git rm -f 文件名
删除暂存区保留工作区文件:用 git rm --cached 文件名
总结:
在这里插入图片描述
3.重命名文件
手动修改工作区 game.py 为 what game.py 然后:
在这里插入图片描述

在 git 中修改文件名:git mv game.py wegame.py

七. git 创建和切换分支

分支重要性:
在这里插入图片描述
1.创建分支:git branch 分支名
git branch feature
在这里插入图片描述
2.切换分支 git checkout 分支名

git checkout feature

在这里插入图片描述
分支发生改变 HEAD 指向 feature

git log --decorate --oneline

在这里插入图片描述
在不同分支更改互不影响

在feature 分支中提交之前更改的wordgame.py文件名和Readme 此时现在的状态:
在这里插入图片描述
之后切换到 master 做相应修改 然后
图像化显示分支:

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

在这里插入图片描述
在这里插入图片描述
八 合并和删除分支

在这里插入图片描述
Master 用来发布
hotfix 用来修补 bug
Release 内部发布版 开发完之后编译成一个可执行程序就是Release
Develop 开发版
Feature 相关功能

1.分支合并 git merge feature feature 子分支
在这里插入图片描述
出现冲突手动修改
在这里插入图片描述
发现合并进来了
在这里插入图片描述
创建并切换分支 git checkout -b feature2
在这里插入图片描述
合并进master 分支:
在这里插入图片描述
在这里插入图片描述

2.删除分支

git branch -d feature2

在这里插入图片描述
虽然删除了分支 分支是通过指针实现的 所谓分支是通过指针一个名字记住。

九. 匿名分支 和checkout 命令
新建一个project 随便创建三个txt 文件分别提交至git 仓库
在这里插入图片描述
git checkout HEAD~在这里插入图片描述
切换分支没有指定分支名就创建一个 匿名分支 用来做实验 尝试
现在是回到导数第二个快照 创建一个4.txt 并提交
在这里插入图片描述
匿名分支创建成功 但是切换为master 分支:
在这里插入图片描述
这时候匿名分支就消失了 但是记住分支名还是可以切换回去的。

2.checkout 命令
两种功能:
  1.从历史快照中(或者暂存区中)拷贝文件到工作区、
  2.切换分支
 
在这里插入图片描述
在这里插入图片描述
reset和checkout 区别:
在这里插入图片描述
在这里插入图片描述
举例:
场景:在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
区别和明显
在这里插入图片描述

十. github

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Bulldozer++

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值