Git 学习笔记(一)

config的作用域

  • local 只对某个仓库有效

  • global只对当前用户的所有仓库有效 (常用)

  • system对系统所有的登录的用户有效

查看对应作用域的配置:git config --list --[作用域]

配置对应作用域的属性:git config --[作用域] 属性 ‘属性值’ (注意在属性和属性值之间存在一个空格)

优先级:local > global > system

建立git仓库

  1. 已有的项目代码纳入Git的管理

    cd 当前项目文件
    git init
    
  2. 新建的项目直接进行Git的的管理

    cd 当前项目文件夹
    git init your_project_name
    git your_project
    

增加新的文件

  • 暂存区:暂时对要提交文件进行存储

  • 工作目录:当前项目文件工作的目录

  • 历史版本:项目提交的信息

固定套路

git add files
git status
git commit

git add中如果文件已经被git所监控,则可以使用git add -u命令来将变更的文件放入暂存区

给文件进行重命名

  • git mv [原始文件名] [新的文件名]

git log查看历史记录

  • git log -n数字 查看最最近TopN的提交信息

  • git log -oneline 查看最近新的一条提交记录

  • git log --all 查看全部分支提交信息

  • git checkout [分支的名字] 切换分支

  • git branch 查看分支

    –b [新建分支名字] [分支的commit id] 新建分支

图形化界面工具gitk

在命令行中输入gitk即可进入git的图形界面来对项目进行管理

.git文件夹探秘

在这里插入图片描述

在.git文件夹中,有以下一些文件:

  • HEAD:表示当前指向具体分支的信息(指向refs文件夹中的信息),可以用cat HEAD查看具体的信息,比如当前指向master分支,即可得到 ref: refs/heads/master
  • config:表示当前git在本仓库的配置信息,用git config --local --list可以获得其中的配置信息
  • refs:git的具体分支的引用信息,里面包含headstags文件夹,表示的他们的所引用的所指向的信息,用git cat-file -t [文件名]可以产看具体的对象类型
  • objects:该文件夹表示git中的对象信息,这些对象用于实现版本控制的功能

git中的对象

  • 一个commit是由treeparentsauthorcommiter所组成

在这里插入图片描述
tree是commit这个树的根,即项目文件的信息,

  • tree中一般是由treeblob所组成,tree表示的是文件夹的信息,而blob表示的是文件的具体信息(注意的是文件的内容相同都将生成同一个blob文件,这样的做是为了减少更多的空间)

在这里插入图片描述

分离头指针的情况的注意事项

有时在切换分支时会进入到分离头指针的情况,使用git checkout时指向一个未知的分支名称(指向一个具体的commit),这就会出现分离头指针的现象

优点:在对项目进行更改时,有些更改是试探性的,可能效果不好就会丢弃,那么可以采用分离头指针的来进行开发,这样如果预期的效果不好,那么直接切换到已经存在的分支上,则会对本次的变更进行自动的删除

缺点:有时在开发项目时由于不了解分离头指针的工作机制,会导致新修改的内容丢失,或者无法进行正常的与现有分支合并

进一步理解HEAD和branch

  • HEAD表示的可以表示当前的分离头指针指向的commit,也可以指向具体的branch

  • 在使用git checkout -b命令时,不仅会创建一个新的分支,同时也会让HEAD指向新的分支

  • 其实HEAD指向的就是commit的内容,那么我们可以利用HEAD来指代当前版本的项目信息,比如git diff命令就可以对不同的提交版本进行比较,比如git diff HEAD HEAD~1表示与HEAD的上一个版本进行比较,~ + 数字 可以指代HEAD上面的所对应数字的版本信息

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值