《玩转Git三剑客》


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

配置user信息(必须)

git config --global user.name ‘your name’
git config --global user,email ‘your_email@domain.com’

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 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 log --oneline 浓缩一行 根据commit内容去查看

在这里插入图片描述

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

git check out -b temp 创建分支temp并进入分支 并指定commit
在这里插入图片描述
在此commit下 创建分支 并进入分支 此提交前的记录保持 提交后的 就忽略了

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

git log --all -graph 图形界面 查看提交版本记录 并体现父子关系
在这里插入图片描述

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

在这里插入图片描述

探秘

在这里插入图片描述
HEAD 根据分支的切换随着变动
config 当前用户的一些信息 如name email
refs 存放heads tag标签

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

在这里插入图片描述

commit tree blob的关系

在这里插入图片描述

树一树 tree的个数

在这里插入图片描述

分离头指针注意事项

git checkout 3d4731d90 我们切换到这个commit中 并没有创建分支 会进入分离头指针的状态 当我们 改动文件并commit时,如下,若不创建分支补充,会当作垃圾处理
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

进一步理解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哈希值
在这里插入图片描述
pick更改为2 保留commit只改变他的message

连续多个commit合并

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

在这里插入图片描述

pick 改为 s合并到9c686的分支
在这里插入图片描述
最后写好合并的message

间隔多个commit合并

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

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

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

简单来讲,就是你现在在哪儿,HEAD 就指向哪儿
例如当前我们处于master分支,所以HEAD这个指针指向了master分支指针
在这里插入图片描述

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

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

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

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

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

git checkout – 哪个文件

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

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

git reset HEAD – 文件名

在这里插入图片描述

消除最近的几次提交

git reset --hard commit哈希值

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

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

在这里插入图片描述

正确删除文件的方法

git rm 具体文件名

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

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

在这里插入图片描述

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

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

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

如果将Git仓库备份到本地

常用传输协议
在这里插入图片描述

git remote add 文件 文件路径 桥梁 搭建联系
git push 文件 分支 同步
在这里插入图片描述

创建 配置github

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

把本地仓库同步到github

git remote -v 查看远程连接关联
git remote add github(名称) git@github.com

做完 可以Push 可以 fetch了

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

在这里插入图片描述

git merge -allow-unrelated-histories github/master

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

git fetch
三剑客

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值