《玩转Git三剑客》

文章目录

    • 3.使用Git之前需要做的最小配置
    • 建Git仓库
    • 往仓库添加文件
    • git log查看版本演变历史
    • gitk 通过图形界面工具查看版本历史
    • 探秘
    • commit tree blob的关系
    • 树一树 tree的个数
    • 分离头指针注意事项
    • 进一步理解HEAD和branch
    • 删除分支
    • 修改最近commit的message
    • 修改老旧commit的message
    • 连续多个commit合并
    • 间隔多个commit合并
    • 怎么比较暂存区和HEAD所含文件的差异
    • 怎么比较工作区和暂存区所含文件的差异
    • 如何让暂存区恢复成和HEAD的一样
    • 如何让工作区恢复成和暂存区的一样
    • 怎样取消暂存区部分文件的更改
    • 消除最近的几次提交
    • 看看不同提交的指定文件的差异
    • 正确删除文件的方法
    • 开发中临时加塞了紧急任务怎么处理
    • 如何指定不需要的Git管理的文件
    • 如果将Git仓库备份到本地
    • 创建 配置github
    • 把本地仓库同步到github


3.使用Git之前需要做的最小配置

配置user信息(必须)

git config --global user.name ‘your name’
git config --global user,email ‘[email protected]

config的三个作用域

git config --local local只对某个仓库有效
git config --global global对当前用户所有仓库有效
仓库中local > global
显示config的配置,加 --list

这里是引用
git config --list --local
git config --list --global

在这里插入图片描述

建Git仓库

两种场景
1.把已有的项目代码放入到Git管理

cd 到项目代码所在文件夹
git init

2.新建的项目直接用Git管理

cd 到某个文件夹
git init your_project
cd your_project

往仓库添加文件

将文件添加到暂存区,此时文件已经被git管理,可以暂存 也可以回退,添加之后在提交到仓库分支
《玩转Git三剑客》_第1张图片

git add 添加所需文件 至 暂存区
git commit -m ‘提交描述’
git status 查看仓库状态
git log 查看历史提交
git add -u 在已经添加到暂存区的文件,一并在此添加管理(避免修改了这些文件,繁琐添加,所以 -u 一并处理)
git reset -hard 清楚暂存区步骤但不影响commit 可git log查看
git mv 暂存区某个文件 重命名

git log查看版本演变历史

git log 查看当前分支的历史

《玩转Git三剑客》_第2张图片

git log --oneline 浓缩一行 根据commit内容去查看

《玩转Git三剑客》_第3张图片

git log -n4 --oneline 选中最近的4个查看
git branch -v 查看所有分支

git check out -b temp 创建分支temp并进入分支 并指定commit
《玩转Git三剑客》_第4张图片
在此commit下 创建分支 并进入分支 此提交前的记录保持 提交后的 就忽略了

git commit -am ‘add test’ 直接跳过暂存区 直接提交到历史版本
git log --all 查看全部分支提交历史

git log --all -graph 图形界面 查看提交版本记录 并体现父子关系
《玩转Git三剑客》_第5张图片

gitk 通过图形界面工具查看版本历史

《玩转Git三剑客》_第6张图片

探秘

《玩转Git三剑客》_第7张图片
HEAD 根据分支的切换随着变动
config 当前用户的一些信息 如name email
refs 存放heads tag标签

git cat-file -t … 查找 文件类型 哈希值值
git cat-file -p … 查看 文件内容

《玩转Git三剑客》_第8张图片

commit tree blob的关系

《玩转Git三剑客》_第9张图片

树一树 tree的个数

《玩转Git三剑客》_第10张图片

分离头指针注意事项

git checkout 3d4731d90 我们切换到这个commit中 并没有创建分支 会进入分离头指针的状态 当我们 改动文件并commit时,如下,若不创建分支补充,会当作垃圾处理
《玩转Git三剑客》_第11张图片
《玩转Git三剑客》_第12张图片
在这里插入图片描述
《玩转Git三剑客》_第13张图片

进一步理解HEAD和branch

git diff 哈希值 哈希值 对比两次提交的不同
HEAD HEAD^1 子目录和上一级父目录 之间的差异
HEAD HEAD~n 子目录和上n极父目录 之间的差异

删除分支

git branch -d 分支名
-D 清理

修改最近commit的message

git commit --amend

修改老旧commit的message

git rebase -i commit哈希值
《玩转Git三剑客》_第14张图片
pick更改为2 保留commit只改变他的message

连续多个commit合并

git rebase -i 要合并分支的最底下的下一个commit

《玩转Git三剑客》_第15张图片

pick 改为 s合并到9c686的分支
《玩转Git三剑客》_第16张图片
最后写好合并的message

间隔多个commit合并

移动pick一行 将合并目标分支 写入 第一行 后面改为s

怎么比较暂存区和HEAD所含文件的差异

git diff --cached
查看暂存区差异

简单来讲,就是你现在在哪儿,HEAD 就指向哪儿
例如当前我们处于master分支,所以HEAD这个指针指向了master分支指针
《玩转Git三剑客》_第17张图片

怎么比较工作区和暂存区所含文件的差异

git diff --具体文件 查看文件不同差异

如何让暂存区恢复成和HEAD的一样

git reset HEAD 恢复这个commit这个位置的所有文件 将暂存区清空

如何让工作区恢复成和暂存区的一样

git checkout – 哪个文件

变工作区用checkout,变暂存区要用reset

怎样取消暂存区部分文件的更改

git reset HEAD – 文件名

《玩转Git三剑客》_第18张图片

消除最近的几次提交

git reset --hard commit哈希值

看看不同提交的指定文件的差异

git diff temp(提交1 分支 1) master(提交2 分支2) – 文件

《玩转Git三剑客》_第19张图片

正确删除文件的方法

git rm 具体文件名

开发中临时加塞了紧急任务怎么处理

git stash 执行之后 你的工作区的内容 会暂放这 暂时是干净的

在这里插入图片描述

git stash apply 恢复 但 堆栈的内容不会消失
git stash pop 会弹出堆栈的内容

如何指定不需要的Git管理的文件

将不需要的文件写入 .gitignore
加 / doc就是管理这个文件但是不管理 doc下的文件

如果将Git仓库备份到本地

常用传输协议
《玩转Git三剑客》_第20张图片

git remote add 文件 文件路径 桥梁 搭建联系
git push 文件 分支 同步
《玩转Git三剑客》_第21张图片

创建 配置github

ssh -keygen -t -rsa -b 4096 -C “邮箱”
id_rsa.pub

把本地仓库同步到github

git remote -v 查看远程连接关联
git remote add github(名称) [email protected]

做完 可以Push 可以 fetch了

git fetch 分支
git branch -v 本地分支
git branch -va 远端也会显示
git push github -all

《玩转Git三剑客》_第22张图片

git merge -allow-unrelated-histories github/master

未完待结,,,因为现在还不需要用到这些 不过一些写的不错 给个传送门

git fetch
三剑客

你可能感兴趣的:(工程技术,git,github,linux)