Git学习系列-Git基本概念

本系列基于Pro Git介绍如何使用Git进行源代码管理,以及后期如何使用Git进行项目管理。

系列初步目录如下:

1. Git基本概念

2. Git分支操作

后续待定。

Git的历史就不在这里进行介绍了,网上随处都可以找到,以下是在使用Git的时候的一些基本概念和方法

Git有三种状态,文件可能处于其中之一:已提交(Committed)、已修改(modified)和已暂存(staged).已提交表示数据已经安全的保存在本地数据库中。已修改表示已经修改了文件,但还没有保存在数据库中。已暂存表示对一个已修改文件的当前版本做了标记,使之包含现在下次提交的快照中。

由此引入Git项目的三个工作区域的概念:Git仓库、工作目录以及暂存区域

初次运行Git之前的配置

通过Git自带的git config命令来完成Git的初始化工作,配置主要存储在三个不同位置

/ect/gitconfig文件:包含系统上每一个用户及仓库的通用配置,如果使用--system选项时,就会从此文件读写配置变量

~/.gitcongig或~/.config/git/config文件:只针对当前用户,可以使用--global选项读写配置变量

当前使用仓库的Git目录中的config文件(就是.git/config文件):针对该仓库

配置用户信息

git config --global user.name "John Doe"
git config --global user.email [email protected]

检查配置信息

git config --list查看GIt的所有配置信息或是使用git config <key>来查看特定的信息

初始化仓库

git init

向仓库中添加文件并提交

1 git add *.c
2 git add README
3 git commit -m "initial project"

记录更新到仓库

使用Git的时候文件的生命周期如下:

检查当前文件状态

1 git status

跟踪新文件

git add 文件名 此时文件处于stage状态

暂存已修改的文件

git add 已修改的文件, 此时文件处于stage状态

恢复处于Modified状态的文件

git checkout — <文件名> 会将已经修改的文件但是并没有提交到缓冲区的文件重置为原来的状态

将处于缓冲区的文件重置到工作区

 git reset HEAD <文件名> 或是 git reset <文件名>

使用忽略文件 .gitignore,具体规则如下:

  • 所有空行或者以#开头的行都会被Git忽略;
  • 可以使用glob模式匹配;
  • 匹配模式可以以(/)开头防止递归;
  • 匹配模式可以以(/)结尾指定目录;
  • 要忽略指定模式以外的文件或目录,可以在模式前加上惊叹号(!)取反

一个.gitignore文件的例子:

# no .a file
*.a

#but do track lib.a, even though you’re ignoring .a files above
!lib.a

# only ignore TODO file in the currency directory, not subdir /TODO
/TODO

#ignore all files in the build/ dictionary
build/

#ignore doc/notes.txt, but not doc/server/arch.txt
doc/*.txt

#ignore all .pdf files in the doc/ directory
dic/**/*.pdf

git diff命令比较的是工作目录中当前文件和暂存区域之间的差异,也就是修改之后还没有暂存起来的内容的变化。若要查看已暂存的将要添加到下次提交的内容,可以使用git diff--cached命令或是git diff —staged

跳过使用暂存区域

在使用git commit进行提交修改的时候,可以使用命令参数-a从而跳过将修改提交到暂存区,直接提交到版本库中,从而省略git add的过程

查看提交历史

通过使用git log命令可以查看之间提交的历史,使用-p参数显示每次提交的差异。另外一个常用的选项是git log —pretty=oneline将每个提交都在一行的形式进行显示。下面是git log的常用选项


选项

说明

-p

按补丁形式显示每个更新之间的差异

--stat

显示每次更新的文件修改统计信息
--shortstat 只显—stat中最后的行数修改添加移除统计

--name-only
仅在提交信息后显示已修改的文件清单
--name-status
显示新增、修改、删除的文件清单
--abbrev-commit
仅显示SHA-1的前几个字符,而非所有的40字符

--relative-date
使用较短的相对时间显示
--graph
显示ASCII图形便是德分支合并历史
--pretty 使用其他格式显示历史提交信息。可用的选项包括online、short、full、fuller和format

撤销操作

当提交完成之后发现漏掉文件没有提交或者提交信息写错了,可以使用git commit —amend选项的命令尝试重新提交

git commit -m “Init Repo”
git add forgotten_file
git commit —amend

最终只会有一个提交,第二次提交将替换第一次的提交

标签操作

列出现在已有的标签: git tag. 可以使用特定的模式来查看特定的标签,例如:git tag -l “v1.1”

Git使用两种主要标签:轻量标签(lightweight)和附注标签(annotated),一个轻量标签只是一次提交的引用,附注标签是存储在Git数据库中的一个对象,包含创建者,时间等信息,因此推荐使用附注标签。

使用git tag -a v1.4 -m “my version 1.4”来创建附注标签,使用命令git show来显示标签的相关信息。直接使用git tag v1.4来创建轻量标签。也可以对之前的某个提交打标签,使用命令git tag -a v1.4 9fceb02

检出标签

使用命令git checkout -b [branchname] [tagname]在特定的标签上创建一个新分支

时间: 2024-10-09 02:14:20

Git学习系列-Git基本概念的相关文章

Git学习系列总结及博客全目录

转载请注明出处:http://blog.csdn.net/lhy_ycu/article/details/45849615 Git是一个分布式版本控制软件,它是由Linux的作者Linus用C写的一个分布式版本控制系统. Git主要特点 1.速度:Git在本地上保存着所有当前项目的版本和更新,并且Git中的绝大多数操作都在本地,无需连网,所以处理起来速度. 2.简单的设计:Git的实现与项目复杂度无关,它永远可以在几毫秒的时间内完成分支的创建和切换. 3.完全分布式模式:每个人电脑上都有一个完整

Git学习系列之如何正确且高效地将本地项目上传到Github(图文详解)

不多说,直接上干货! 首先你需要一个Github账号,所以还没有的话先去注册吧! https://github.com/ 见 Git的安装 见 Git学习系列之Windows上安装Git详细步骤(图文详解) 1.进入Github首页,点击New repository新建一个项目 点击Clone or dowload会出现一个地址,copy这个地址备用. 创建 ssh-keygen -t rsa -C "***@***.com" 欢迎大家,加入我的微信公众号:大数据躺过的坑       

Git学习 -- 自定义Git

忽略特殊文件 在工作区创建.gitignore文件,编写内容 # Windows: Thumbs.db ehthumbs.db Desktop.ini # Python: 忽略Python编译产生的.pyc..pyo.dist等文件或目录 *.py[cod] *.so *.egg *.egg-info dist build # My configurations: db.ini deploy_key_rsa 然后add和commit该文件 此后当工作区出现.gitignore中类型文件时,git

git学习——&lt;五&gt;git分支

git学习——<一>git安装 git学习——<二>git配置文件 git学习——<三>git操作 git学习——<四>git版本管理 一.提出问题 今天开发的过程中遇到一个问题,A组接到开发任务要修改file文件,B组在此之前的15天为了完成自己的开发任务对file文件进行了修改,为了同步代码,B组将自己未完成的模块file文件提交到了cvs上.A对此一无所知,A组在完成开发任务后,把file文件完全上到了现网环境,报错了. 当然,避免上述问题的途径很多,

Git 学习之Git 基础(二)

Git 基础 读完本章你就能上手使用 Git 了.本章将介绍几个最基本的,也是最常用的 Git 命令,以后绝大多数时间里用到的也就是这几个命令.读完本章,你就能初始化一个新的代码仓库,做一些适当配置:开始或停止跟踪某些文件:暂存或提交某些更新.我们还会展示如何让 Git 忽略某些文件,或是名称符合特定模式的文件:如何既快且容易地撤消犯下的小错误:如何浏览项目的更新历史,查看某两次更新之间的差异:以及如何从远程仓库拉数据下来或者推数据上去. 取得项目的 Git 仓库 有两种取得 Git 项目仓库的

Git学习笔记——Git安装

Git是目前世界上最先进的分布式版本控制系统(没有之一). 在Linux上安装Git 首先,你可以试着输入git,看看系统有没有安装Git: $ git The program 'git' is currently not installed. You can install it by typing: sudo apt-get install git 像上面的命令,有很多Linux会友好地告诉你Git没有安装,还会告诉你如何安装Git. 如果你碰巧用Debian或Ubuntu Linux,通过

git(学习之四)git协议服务器搭建

####################################################################################################### qq:1218761836 qq群:150181442 E-mail:[email protected] #############################################################################################

git学习——&lt;三&gt;git操作

一.创建仓库 创建一个目录 mkdir repository cd到该目录下,初始化该版本库 git init 至此,版本库创建成功,可以在该文件夹下看到.git文件夹,ls -ah可以看到该文件夹. 二.版本管理 1.将文件或文件夹添加到版本库中进行版本控制 在工作区创建一个文件 touch readme.txt 将该文件添加到暂存区 git add readme.txt 将文件从暂存区提交到版本库 git commit -m "some comment" *工作区.暂存区.版本库

git学习(二)——git的文件状态

git的文件状态 用于查看git的状态 git status 用于git文件的删除操作 git rm 如果只是 git rm --cache 仅删除暂存区里的文件: 如果不加--cache 会删除工作区里的文件 并提交到暂存区 文件检出 git checkout 直接加文件名 从暂存区将文件恢复到工作区,如果工作区已经有该文件,则会选择覆盖; 加了[分支名] +文件名 则表示从分支名为所写的分支名中拉取文件,并覆盖工作区里的文件; 文件状态 新建文件--->Untracked 使用add命令将新