git学习笔记

git的组成

官方文档

工作区 Workspace
暂存区 Index / Stage
仓库 Repository
远程仓库 Remote
文件的状态

在这里插入图片描述

  • Untracked: 未跟踪, 此文件在文件夹中, 但并没有加入到git库, 不参与版本控制. 通过git add 状态变为Staged
  • Unmodify: 文件已经入库, 未修改, 即版本库中的文件快照内容与文件夹中完全一致. 这种类型的文件有两种去处, 如果它被修改, 而变为Modified. 如果使用git rm移出版本库, 则成为Untracked文件
  • Modified: 文件已修改, 仅仅是修改, 并没有进行其他的操作. 这个文件也有两个去处, 通过git add可进入暂存staged状态, 使用git checkout 则丢弃修改过, 返回到unmodify状态, 这个git checkout即从库中取出文件, 覆盖当前修改
  • Staged: 暂存状态. 执行git commit则将修改同步到库中, 这时库中的文件和本地文件又变为一致, 文件为Unmodify状态. 执行git reset HEAD filename取消暂存, 文件状态为Modified

git的配置

git使用前需要配置用户签名,用户名和用户邮箱

config 配置有system级别 global(用户级别) 和local(当前仓库)三个 设置先从system-》global-》local 低层配置会覆盖高层配置 分别使用-system/global/local 可以定位到配置文件

查看系统config

git config --system --list

查看当前用户(global)配置

git config --global --list

查看当前仓库配置信息

git config --local --list

config 配置指令

git config

工作区 Workspace

撤销工作区修改

git checkout -- 文件名
#把工作区的修改全部撤销

工作区文件被删除后可以使用git checkout从仓库中恢复

git checkout -- file
# git checkout -- file命令中的--很重要,没有--,就变成了“切换到另一个分支”的命令

添加到暂存区

git add

暂存区 Index / Stage

从暂存区的追踪文件中删除

git rm --cache 文件名

查看暂存区的文件

git status

提交到仓库(暂存区的所有内容提交到当前分支)

git commint
-m ”可以写入注释信息“

仓库 Repository

版本回退

git reset有三个选项,–hard、–mixed、–soft。

#仅仅只是撤销已提交的版本库,不会修改暂存区和工作区
git reset --soft 版本库ID
#仅仅只是撤销已提交的版本库和暂存区,不会修改工作区
git reset --mixed 版本库ID
#彻底将工作区、暂存区和版本库记录恢复到指定的版本库
git reset --hard 版本库ID

查看版本

git log --pretty=oneline

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-QuTpPoMA-1620809974695)(学习笔记.assets/image-20210511083853544-1620693538156.png)]

git log --oneline

在这里插入图片描述

git reflog

在这里插入图片描述

查看某个文件在某次提交中的修改:

git show <hashcode> <filename>

查看分支合并图

git log --graph 

远程仓库 Remote

git拉取远程代码

git clone  https://xxx.git

git拉取远程指定分支下代码(-b 分支名称)

git clone -b v2.8.1 https://xxx.git

分支管理

Git 的分支,其实本质上仅仅是指向提交对象的可变指针。 Git 的默认分支名字是 master。 在多次提交操作之后,你其实已经有一个指向最后那个提交对象的 master 分支。 master 分支会在每次提交时自动向前移动。

无论是通过变基,还是通过三方合并,整合的最终结果所指向的快照始终是一样的,只不过提交历史不同罢了。 变基是将一系列提交按照原有次序依次应用到另一分支上,而合并是把最终结果合在一起。

合并

在这里插入图片描述

Git官方对于合并的解释:它是把两个分支的最新快照(C3 和 C4)以及二者最近的共同祖先(C2)进行三方合并,合并的结果是生成一个新的快照(并提交)。

查看所有分支

git checkout -b "分支名"
#当前分支前面会标一个*号

创建分支

git branch "分支名"

切换分支

 git checkout ”分支名“

新建分支并切换

git checkout -b "分支名"

删除分支

git branch -d "分支名"

分支合并

git merge "分支名"
#将任何分支合并到当前分支中去

合并完后删除分支

 git branch -d "分支名"

衍合(变基操作)

在这里插入图片描述

可以提取在 C4 中引入的补丁和修改,然后在 C3 的基础上应用一次。 在 Git 中,这种操作就叫做 变基(rebase)。 你可以使用 rebase 命令将提交到某一分支上的所有修改都移至另一分支上,就好像“重新播放”一样。

在这里插入图片描述

首先找到这两个分支(即当前分支 experiment、变基操作的目标基底分支 master) 的最近共同祖先 C2,然后对比当前分支相对于该祖先的历次提交,提取相应的修改并存为临时文件, 然后将当前分支指向目标基底 C3, 最后以此将之前另存为临时文件的修改依序应用

用于把一个分支的修改合并到当前分支

git rebase

表示把你的本地当前分支里的每个提交(commit)取消掉,并且把它们临时 保存为补丁(patch)(这些补丁放到".git/rebase"目录中),然后把本地当前分支更新 为最新的"origin"分支,最后把保存的这些补丁应用到本地当前分支上

git pull --rebase

, 然后将当前分支指向目标基底 C3, 最后以此将之前另存为临时文件的修改依序应用

用于把一个分支的修改合并到当前分支

git rebase

表示把你的本地当前分支里的每个提交(commit)取消掉,并且把它们临时 保存为补丁(patch)(这些补丁放到".git/rebase"目录中),然后把本地当前分支更新 为最新的"origin"分支,最后把保存的这些补丁应用到本地当前分支上

git pull --rebase
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值