文章目录
git下载
git下载地址:
https://git-scm.com/book/zh/v2/%E8%B5%B7%E6%AD%A5-%E5%AE%89%E8%A3%85-Git
判断git是否安装成功,在终端中输入:
git --version
结果:
下载完后配置user信息
git config --global user.name 'xxxx'
git config --global user.email 'xxxx@xxx.xxx'
建Git仓库
YxinMiracle@LAPTOP-Q5D8JP8P D:\learnGit\gitrunner
$ git init git_running
Initialized empty Git repository in D:/learnGit/gitrunner/git_running/.git/
git add 定时任务.md
$ git status
On branch master
No commits yet
Changes to be committed:
(use "git rm --cached <file>..." to unstage)
new file: "\345\256\232\346\227\266\344\273\273\345\212\241.md"
$ git commit -m"ADD readme"
[master (root-commit) bc778c7] ADD readme
1 file changed, 0 insertions(+), 0 deletions(-)
create mode 100644 "\345\256\232\346\227\266\344\273\273\345\212\241.md"
工作区以及暂存区
如果想要复原(暂存区的东西都清除),可以使用命令:
git reset --hard
给文件重命名
git mv xxx xxx
# 不需要添加到暂存区,之后直接commit即可
使用git log查看版本演变历史
*查看本地有多少分支
$ git branch -v
* master 0025cda add refer
*创建分支
git checkout -b branch_name xxxxxxxx(基于哪一个commit)
*可视化查看
git log --all --graph
*切换分支
git checkout branch_name
oneline (简介查看)
git log --oneline
指定最近的commit
git log -nx --oneline
查看不同分支(xxx指的是分支)
git log --oneline xxx
图形化查看
git log --oneline --graph
查看全部分支
git log --oneline --all
.git裸仓库
查看一下这个文件夹中都有些什么:
HEAD
我们查看一下HEAD文件内的内容,这个文件的内容所展示的是我们当前工作在哪一个分支上:
Config
存放一些跟仓库相关的一些配置文件
Refs
存放一些引用(tags 标签/里程碑),heads(分支)
其中heads这个分支,指向的是一个commit,查看一下heads文件夹中的内容:
可以看出都是我们的分支名,我们可以查看一下master这个文件中的内容,查看一下这个的类型,可以发现是一个commit类型:
接下来的tags文件夹就是放着一些标签,我们可以先输入,打开可视化界面
getk
创建一个tag:
创建后:
查看一下tags文件夹内的内容:
Objects
objects里面是:
我们随便进入一个文件夹中,如f5,并且查看一下该文件夹中的内容:
这个文件夹对应着一个哈希值,我们将文件夹的名字对这个值拼接,看见是一个commit类型,这个commit中包含了:
-
tree 这相当于是一个文件夹
我们查看一下这个文件夹中的内容:
- blob
发现里面有个blob类型的文件,这个就是我们平常说的文件,可以查看这个文件的内容:
就是我们的html文件
commit、tree、blob三个对象的联系
一个commit对应着一个tree,只有一个,也就是一个文件夹
其中,blob与文件名无关,只根据文件内容有关系。
分离头指针(detached HEAD)
分离头指针没有跟任何分支进行挂钩,任何commit都没有被保存。
案例:
修改了css文件中的内容,然后进行commit,可以发现我们的HEAD并没有指向任何的分支
此时我们接到一个任务,需要去master分支去修改bug:
这个时候git会给我们警告,提醒我们要不要为我们的58168ea建立一个新的branch,我们可以打开可视化界面看一下有没有Modify css file这个commit
使用命令:
gitk --all
发现并没有,说明在git的眼里,我们并没有将这个commit与任何的分支绑在一起,这种commit是不重要的,日后会被清除的。
假如这个时候我们发现了这个问题,并且创建了一个新的分支:
再来看看:
发现这条分支就出现了。