Git操作学习使用笔记--

Posted Demonwuwen

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Git操作学习使用笔记--相关的知识,希望对你有一定的参考价值。

Git工具使用笔记


学习 极客时间玩转Git课程记录
链接: http://gk.link/a/11yCe


配置user信息

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

  • config有三个作用域
    – git config --local 只对某个仓库有效
    – git config --global 对当前用户所有仓库有效
    – git config --system 对系统所有登陆的用户有效

显示config的配置, 加 --list
– git config --local --list
– git config --global --list
– git config --system --list

示例


在仓库中,git config local 优先级高于git config global


创建Git仓库

两种场景
1、把已有的项目代码纳入Git管理

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

示例

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

cd 目标文件夹
git init your_project		#会在当前路径下创建和项目名称同名的文件夹
cd your_project

往仓库添加文件

添加文件时,会先添加到暂存区,再提交生成对应版本


在工作目录创建或添加文件后,可以用命令git status 命令查看

此时发现有logging目录下的文件为untracked file状态,

git add 文件名或文件夹名		#添加文件到暂存区

此时再看git status可以发现文件被添加到暂存区了。

此时使用git commit 命令来提交添加变更理由,纳入到版本库里。

git commit -m'your comment'

提交后可以用git log命令来查看提交记录

git reset --hard清理掉暂存区和工作区清理

当我们需要对已经提交的文件进行重命名的时候,可以使用命令

git mv 源文件名 目标文件名


可以简明看log,命令`git log --oneline

git log --oneline


创建分支

查看有多少分支

git branch -a


创建分支

git checkout -b 分支名  分支版本号

如同示例,先查看所有版本号,选择你所需切换的版本进行分之创建

通过在不同版本分支中提交文件,创建多个分支,然后可以通过以图的形式看版本分支。

git log --oneline --all -n5 --graph

其中–oneline简介显示,–all显示全部分枝日志,-n5 显示5条日制,–graph 以图形式展示

删除分支

使用命令git branch -d 分支名来删除对应分支

-d 不能删除时,在确认删除当前分支不会对项目造成影响的情况下可以使用-D进行删除

通过图形工具来查看版本历史

可以通过图形化界面来查看git的不同版本信息。
输入命令gitk

gitk

.git目录

• COMMIT_EDITMSG
• config 当前 git 的配置文件
• description (仓库的描述信息文件)
• HEAD (指向当前所在的分支),例如当前在 develop 分支,实际指向地址是 refs/heads/develop
• hooks [文件夹]
• index
• info [文件夹]
• logs [文件夹]
• objects [文件夹] (存放所有的 git 对象,对象哈希值前 2 位作为文件夹名称,后 38 位作为对象文件名, 可通过 git cat-file -p 命令,拼接文件夹名称+文件名查看)
• ORIG_HEAD
• refs [文件夹]
• heads (存放当前项目的所有分支)
• tags (存放的当前项目的所有标签,又叫做里程碑)

• cat 命令, 功能:用来显示文件。 例如 cat text.md 显示 text.md 文件的内容
• ls -al 命令, 表示列出当前目录下的所有文件(包括隐藏文件)
• git cat-file -t 命令 , 查看 git 对象的类型
• git cat-file -p 命令, 查看 git 对象的内容
• git cat-file -s 命令, 查看 git 对象的大小


commit、tree和blob对象关系


如图所示,每个commit对应一个树。git里每个blob只与文件内容有关,只要文件内容相同,那就是一个blob。

首先 通过git log 查看版本信息,

通过命令

git cat-file -p 分支摘要

可以看到的出的内容为一棵树

再通过命令

git cat-file -p 树摘要

可以得到这棵树对应的内容

任意选择一个blob使用git cat-file -p 摘要命令打开,可以得到对应内容

git add命令添加文件后,会在.get/objects目录下创建对应的实体。
实验步骤:
1、在空文件夹下初始化git仓库,并创建文件夹,可以发现并没有内容产生。

2、写入内容文件后,再进行查找即可看到,

由此可知,在讲代码提交到暂存区的时候,git就会创建对应的blob。
注意,在查询的时候,记得加上objects后的文件夹名

在commit提交后,可以查看对应的树和commit


此时有1个commit,2个tree,1个blob。

head和branch

分离头指针:变更没有针对branch做,如果需要保存变动,则需要在切换分支时与分支进行挂钩,如果不进行挂钩,在切换到master时,则git可能会将其变动当作垃圾处理掉。

head始终指向一个commit

修改最新的commit的message

使用命令

git commit --amend

修改老旧的commit的message

若对老旧的commit的message修改,需要使用其commit的父节点

如图想把add readme file 修改为 add a readme file

使用命令

git rebase -i 40d9fe52597856869608b

此时出现弹窗

根据界面命令提示,将第一行修改为

reword 48af12b add  readme file
或者
r 48af12b add  readme file

保存并退出,此时出现另一个弹窗,再在这里修改想要修改的内容

修改后,对于的分支的摘要会有改变。

以上是关于Git操作学习使用笔记--的主要内容,如果未能解决你的问题,请参考以下文章

git学习笔记之远程仓库操作

代码管理工具 --- git的学习笔记一《git的本地操作》

Git 学习

Git 学习

git学习笔记

git操作笔记