热门标签 | HotTags
当前位置:  开发笔记 > 运维 > 正文

git学习笔记推荐过来看看哈

第一:git的介绍Git是Linux之父创建的一个轻型的文件系统,目前最多的被用来作为版本控制,版本控制的基本原理是以牺牲磁盘空间(保存所有的历史版本,而不是保存差量的部分)来提高性能,同时可以很容易的创建分支(有利于合作开发)。git中存在三

第一:git的介绍

GitLinux之父创建的一个轻型的文件系统,目前最多的被用来作为版本控制,版本控制的基本原理是以牺牲磁盘空间(保存所有的历史版本,而不是保存差量的部分)来提高性能,同时可以很容易的创建分支(有利于合作开发)。git中存在三个区域(1Repository 2Working directory 3Staging area / Index, Repository(缺省的是以.git为名字的目录,意思就是可以自己自定义名字)可以比喻为一个仓库或者说数据库,因为以后所有的代码都要存放其中,Working directory很好理解,就是开发的环境(比如用于书写代码的那个目录),Staging area

/ Index是一个中间(代码从Working directory提交到Repository中)的状态。具体命令过程是:git add .代表把代码从Working directory提交到Staging area / Index 另外一个命令:git commit –m “注释代表从Staging area / Index提交到Repository  综合这两个步骤的快捷命令是:git commit –a。另外git包含四个对象,分别是blobtreetagcommitblobtree对应,treecommit对应,tagcommint对应),其实git的结构就是这几个对象所组成的一个树形结构,每个项目的版本在git中其实以commit的形式来保存,commit又指向treeblob就好比tree的叶子,其实是保存数据部分的实体。另外git还包含指针HEADbranceHEAD唯一的指向commit.

想详尽的了解git请去网络搜索了解。

 

第二:git的下载和安装

下载的部分在官网下载即可,这里下载的是git-1.7.7.4.tar.gz

[root@localhost ~]# tar zxvf git-1.7.7.4.tar.gz

[root@localhost ~]# cd git-1.7.7.4

[root@localhost git-1.7.7.4]# ./configure

[root@localhost git-1.7.7.4]# make && make install

安装好之后查看以上没加入.configure时的默认安装目录

[root@localhost ~]# which git   //这个路径在PATH内,故不需要再添加

/usr/local/bin/git

这样git就安装成功了

 

第三:git的基本配置(这里root登录)

[root@localhost /]# mkdir -p /git/project

[root@localhost /]# cd /git/project/

[root@localhost project]# git config --global user.name 'ethnicitybeta'

[root@localhost project]# git config --global user.email 'ethnicitybeta@126.com'

Global的配置其实是写入用户的家目录中的git配置文件中

[root@localhost project]# cat ~/.gitconfig

[user]

       name = ethnicitybeta

       emal = ethnicitybeta@126.com

       email =

[root@localhost project]# vim main.c   //创建测试文件

 

Hello ethnicitybeta!!!

 [root@localhost project]# git init    //git的初始化

Initialized empty Git repository in /git/project/.git/

[root@localhost project]# ls -al

total 32

drwxr-xr-x 3 root root 4096 Nov 27 03:38 .

drwxr-xr-x 3 root root 4096 Nov 27 03:11 ..

drwxr-xr-x 7 root root 4096 Nov 27 03:38 .git

-rw-r--r-- 1 root root   23 Nov 27 03:37 main.c

接下来这段是相对于全局设置的局部设置

[root@localhost project]# git config user.name 'ethniciy'

[root@localhost project]# git config user.email 'ethnicity@126.com'

[root@localhost project]# cat .git/config

[core]

       repositoryformatversion = 0

       filemode = true

       bare = false

       logallrefupdates = true

[user]

       email = ethnicity@126.com

       name = ethnicity

第四:一个git实例

[root@localhost project]# vim main.c   //创建测试文件

 

Hello ethnicitybeta!!!

[root@localhost project]# git init    //git的初始化

[root@localhost project]# git add .   //加入到git

[root@localhost project]# ll .git/    //下边出现的index就是Staging area

total 72

-rw-r--r-- 1 root root   23 Nov 27 03:38 HEAD

drwxr-xr-x 2 root root 4096 Nov 27 03:38 branches

-rw-r--r-- 1 root root  143 Nov 27 03:41 config

-rw-r--r-- 1 root root   73 Nov 27 03:38 description

drwxr-xr-x 2 root root 4096 Nov 27 03:38 hooks

-rw-r--r-- 1 root root  104 Nov 27 03:43 index

drwxr-xr-x 2 root root 4096 Nov 27 03:38 info

drwxr-xr-x 5 root root 4096 Nov 27 03:43 objects

[root@localhost project]# git commit -m '1st commit'  //提交生成第一个commit

[master (root-commit) 96f025b] 1st commit

 1 files changed, 1 insertions(+), 0 deletions(-)

 create mode 100644 main.c

[root@localhost project]# rm -rf main.c    //模拟一个文件丢失

[root@localhost project]# git checkout -f HEAD  //找回丢失的文件

[root@localhost project]# ls

main.c

 

总结:之前有接触版本控制的概念,仅有的名词概念是svn,还没来得及做研究,这里接触了git感觉十分的好用,在这里做一个系统的学习记录下来,以备工作时使用,再次感谢小布老师的无私授课。    


推荐阅读
  • intellij idea的安装与使用(保姆级教程)
    intellijidea的安装与使用(保姆级教程)IntelliJ在业界被公认为最好的java开发工具,尤其在智能代码助手、代码自动提示、重构、JavaEE支持、各类版本工具(gi ... [详细]
  • svnWebUI:一款现代化的svn服务端管理软件
    svnWebUI是一款图形化管理服务端Subversion的配置工具,适用于非程序员使用。它解决了svn用户和权限配置繁琐且不便的问题,提供了现代化的web界面,让svn服务端管理变得轻松。演示地址:http://svn.nginxwebui.cn:6060。 ... [详细]
  • Linux服务器密码过期策略、登录次数限制、私钥登录等配置方法
    本文介绍了在Linux服务器上进行密码过期策略、登录次数限制、私钥登录等配置的方法。通过修改配置文件中的参数,可以设置密码的有效期、最小间隔时间、最小长度,并在密码过期前进行提示。同时还介绍了如何进行公钥登录和修改默认账户用户名的操作。详细步骤和注意事项可参考本文内容。 ... [详细]
  • 图解redis的持久化存储机制RDB和AOF的原理和优缺点
    本文通过图解的方式介绍了redis的持久化存储机制RDB和AOF的原理和优缺点。RDB是将redis内存中的数据保存为快照文件,恢复速度较快但不支持拉链式快照。AOF是将操作日志保存到磁盘,实时存储数据但恢复速度较慢。文章详细分析了两种机制的优缺点,帮助读者更好地理解redis的持久化存储策略。 ... [详细]
  • mac php错误日志配置方法及错误级别修改
    本文介绍了在mac环境下配置php错误日志的方法,包括修改php.ini文件和httpd.conf文件的操作步骤。同时还介绍了如何修改错误级别,以及相应的错误级别参考链接。 ... [详细]
  • 本文介绍了在CentOS 6.4系统中更新源地址的方法,包括备份现有源文件、下载163源、修改文件名、更新列表和系统,并提供了相应的命令。 ... [详细]
  • 腾讯安全平台部招聘安全工程师和数据分析工程师
    腾讯安全平台部正在招聘安全工程师和数据分析工程师。安全工程师负责安全问题和安全事件的跟踪和分析,提供安全测试技术支持;数据分析工程师负责安全产品相关系统数据统计和分析挖掘,通过用户行为数据建模为业务决策提供参考。招聘要求包括熟悉渗透测试和常见安全工具原理,精通Web漏洞,熟练使用多门编程语言等。有相关工作经验和在安全站点发表作品的候选人优先考虑。 ... [详细]
  • 本文介绍了5个基本Linux命令行工具的现代化替代品,包括du、top和ncdu。这些替代品在功能上进行了改进,提高了可用性,并且适用于现代化系统。其中,ncdu是du的替代品,它提供了与du类似的结果,但在一个基于curses的交互式界面中,重点关注占用磁盘空间较多的目录。 ... [详细]
  • 云原生应用最佳开发实践之十二原则(12factor)
    目录简介一、基准代码二、依赖三、配置四、后端配置五、构建、发布、运行六、进程七、端口绑定八、并发九、易处理十、开发与线上环境等价十一、日志十二、进程管理当 ... [详细]
  • 20209测试通过:eclipse安装svn插件
    网址不能用了,新的办法参考:https:quantum6.blog.csdn.netarticledetails117250800下载了最新的ecli ... [详细]
  • 进入配置文件目录:[rootlinuxidcresin-4.0.]#cdusrlocalresinconf查看都有哪些配置文件:[rootlinuxid ... [详细]
  • 1、打开etcsysconfiggrub,   #vimetcsysconfiggrub   内容如下: ... [详细]
  • 本文主要介绍关于linux文件描述符设置,centos7设置文件句柄数,centos7查看进程数的知识点,对【Linux之进程数和句柄数】和【linux句柄数含义】有兴趣的朋友可以看下由【东城绝神】投 ... [详细]
  • Linux 服务器修改用户名
    Linux服务器修改用户名1、编辑名称vimetchostname2、保存编辑并退出wq3、重 ... [详细]
  • 找到JDK下载URL当然去官网找了。目前最新的1.8的下载URL(RPM)如下:http:download.oracle.comotn-pubjavajdk8u161-b122f3 ... [详细]
author-avatar
石榴岗村-沙芖鱼
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有