专栏首页小康的自留地一、玩转Git三剑客-Git基础

一、玩转Git三剑客-Git基础

Git的优点

  • 最优的存储能力
  • 非凡的性能
  • 开源
  • 很容易做备份
  • 支持离线操作
  • 很容易定制工作流程

git的安装

参考官方安装git

在终端输入git --version可以看到git的版本信息,以此代表安装成功。

使用git之前要做的最小配置

配置user.name和user.email

git config --global user.name "Your Name"
git config --global user.email "email@example.com"

config的三个作用域

缺省等同于local

git config --local ## local只对某个仓库有效
git config --global ## global对当前用户所有仓库有效
git config --system ## system对系统所有登录的用户有效

显示config的配置,加--list

git config --list --local ## local只对某个仓库有效
git config --list --global ## global对当前用户所有仓库有效
git config --list --system ## system对系统所有登录的用户有效

创建第一个仓库并配置local用户信息

  1. 把已有的项目代码纳入git管理 cd 项目代码所在的文件夹 git init
  2. 新建的项目直接用Git管理 cd 某个文件夹 git init your_project #会在当前路径创建和项目同名的文件夹 cd your_project

进入git项目目录,配置local用户信息

git config --local user.name "Your Name"
git config --local user.email "email@example.com"

如果在一个仓库中存在local用户与全局用户,那么local用户的优先级高于全局用户信息。

工作区和暂存区

git add filename #将文件添加到暂存区
git commit -m'message' #为提交添加信息

通过git add -u命令可以将纳入git管理的文件所有更新文件进行添加。

给文件重命名的简便方法

通过git mv oldName newName即可快速变更文件名,并且会自动添加到暂存区,直接通过commit即可提交。

查看git log

  1. 只看变更列表 git log --oneline
  1. 之查看最近的几次commit git log -n2 --oneline

n2表示所有分支最近两个。

  1. 只看当前分支的历史 git log
  1. 查看全部分支 git log --all
  1. 图形化展示 git log --all graph

通过gitk查看版本历史

在项目目录输入gitk即可。

探秘.git

  • config文件 配置文件,存放一些配置信息。
  • HEAD文件 引用文件,引用当前分支
  • refs文件夹
    • heads分支文件夹, 存放各个分支,其中内容表示commit的哈希值。
    • tags标签或里程碑
  • objects文件夹 文件夹的名称与该文件夹内文件名拼成一个哈希值,表示一个树。 其内容为文件变动信息。

commit、tree和blob三个对象之间的关系

一个commit对应一颗树,树里边包含树(文件夹)。树中的文件为blob,文件夹则为另一个树,在这个文件夹中同理。叶子节点到文件。

git的设计,只要文件内容相同,就是一个东西。

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

分离头指针指的是没有基于某个分支来做修改。

  1. 好处 用于测试,如果测试结果不佳,则可以直接丢弃。
  2. 坏处 如果不跟分支挂钩,当切换分支时,如果不为刚才修改的commit创建分支,那么基于commit分支修改的内容会当作垃圾清理。

进一步理解HEAD和branch

head不仅可以指代新分支的最后一次提交,也可以指代具体commit。当作分支切换时,head会指向这个切换的分支。分支(commit)最后也要落脚于commit。

HEAD可以指代当前分支。例如比较每次commit的差异:

#比较当前commit与上一次commit的差异
#两种写法都可以
git diff HEAD HEAD^
git diff HEAD HEAD~
#比较当前commit与上次commit的差异
#两种写法都可以
git diff HEAD HEAD^^
git diff HEAD HEAD~2

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • git常用命令总结

    Dreamy.TZK
  • 将Hexo部署到云服务器

    看到群里好多人问如何将Hexo部署到云服务器。按我的思想,如果有服务器谁还用Hexo?但居然还真有人。趁着上个月白嫖的腾讯云的机器还没过期,赶紧重装个系统,来咕...

    Dreamy.TZK
  • git的基本使用

    分布式版本控制系统的安全性要高很多,因为每个开发人员电脑里都有完整的版本库,某一个开发人员的电脑坏掉了不要紧,随便从其他开发人员那里复制一个就可以了。而集中式...

    Dreamy.TZK
  • Github 学习与常见问题

    github以前用来搭建过博客,但是不会用git仓库,最近抽时间跳坑,把常见问题总结了下。

    风之小云天
  • 源代码管理git的使用

    用户1941540
  • ubuntu系统上配置git

    1,首先第一步检查一下本机是否已经安装了git 随便到一个git目录下执行git status或者其他git命令,如果本机没有安装,则会提示你去安装,ubunt...

    fanfan
  • 如何把本地项目上传到Github

    作为一个有追求的程序员,需要撸点自己的开源项目,虽然我现在只是在学着造轮子,但这并不影响我成为大神的心。

    良月柒
  • git 入门教程之个性化 git 原

    初识 git 时,我们就已经接触过 git 的基本配置,使用 git config 命令配置用户名和邮箱:

    雪之梦技术驿站
  • Git Submodule 漏洞(CVE-2018-17456)分析

    国庆节的时候,Git爆了一个RCE的漏洞,放假回来进行应急,因为公开的相关资料比较少,挺头大的,搞了两天,RCE成功了

    Seebug漏洞平台
  • Git 的 4 个阶段的撤销更改

    链接:https://segmentfault.com/a/1190000011969554

    用户6543014

扫码关注云+社区

领取腾讯云代金券