Git基础教程

1. git简介

Git是一款免费、开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。

2. git安装

在CentOS上使用yum进行安装:

#yum install git-core

在Ubuntu上使用apt-get进行安装:

#apt-get install git-core

3. git常用命令

命令 含义
add 添加文件内容至索引
bisect 通过二分查找定位引入 bug 的变更
branch 列出、创建或删除分支
checkout 检出一个分支或路径到工作区
clone 克隆一个版本库到一个新目录
commit 记录变更到版本库
diff 显示提交之间、提交和工作区之间等的差异
fetch 从另外一个版本库下载对象和引用
grep 输出和模式匹配的行
init 创建一个空的 Git 版本库或重新初始化一个已存在的版本库
log 显示提交日志
merge 合并两个或更多开发历史
mv 移动或重命名一个文件、目录或符号链接
pull 获取并整合另外的版本库或一个本地分支
push 更新远程引用和相关的对象
rebase 本地提交转移至更新后的上游分支中
reset 重置当前HEAD到指定状态
rm 从工作区和索引中删除文件
show 显示各种类型的对象
status 显示工作区状态
tag 创建、列出、删除或校验一个GPG签名的 tag 对象

4. 克隆项目

在此我们以克隆libevent项目为例, libevent的git地址是:libevent

接下来我们执行以下命令:

$git clone https://github.com/libevent/libevent

执行完成之后,我们就会发现在当前目录下出现了一个libevent目录,其中包含了此项目的所有源文件。

当然,也可以在clone的时候,重新指定项目的存放路径和项目名,执行以下命令即可:

$git clone https://github.com/libevent/libevent yourPath/mylibevent

执行完成之后,切换到yourPath目录下,就会发现mylibevent已存在。

5. 查看当前文件状态

对于git而言,文件的状态分为已跟踪,未跟踪,已缓存,已提交。我们可以使用以下命令来查看当前工程的文件状态:

$git status

对于我们新clone的项目,所有的文件都处于已跟踪状态,所以会显示以下内容:

位于分支 master
您的分支与上游分支 ‘origin/master‘ 一致。
无文件要提交,干净的工作区

但是当我们其中添加一个新文件的时候,再次运行此命令,就会出现不同的结果。如下所示:

$touch README.txt
$git status

执行结果如下:

位于分支 master
您的分支与上游分支 ‘origin/master‘ 一致。
未跟踪的文件:
(使用 "git add <file>..." 以包含要提交的内容)
test.txt
提交为空,但是存在尚未跟踪的文件(使用 "git add" 建立跟踪)

在此提示我们,test.txt未被跟踪。那我们按照提示使用git add命令添加之后再查看状态:

$git add test.txt
$git status

执行结果如下:

位于分支 master
您的分支与上游分支 ‘origin/master‘ 一致。
要提交的变更:
(使用 "git reset HEAD <file>..." 撤出暂存区)
新文件: test.txt

通过结果我们可以看出,此时这个新的文件处于暂存状态。

上面我们看了添加一个新文件时,其状态的变化,下面我们来看看修改一个文件其状态时如何变化的:

首先,我们先修改一个文件(epoll.c),然后查看文件状态

$git status

执行结果如下:

位于分支 master
您的分支与上游分支 ‘origin/master‘ 一致。
尚未暂存以备提交的变更:
(使用 "git add <file>..." 更新要提交的内容)
(使用 "git checkout -- <file>..." 丢弃工作区的改动)
修改:         epoll.c

提示我们当前项目中存在未暂存的文件,接下来我们执行git add后再查看文件状态:

$git add epoll.c
$git status

执行结果如下:

位于分支 master
您的分支与上游分支 ‘origin/master‘ 一致。
要提交的变更:
    (使用 "git reset HEAD <file>..." 撤出暂存区)
修改:         epoll.c

结论:

对于新添加的文件,其状态为未跟踪状态,当执行git add命令后,文件将处于已暂存状态。而对于项目中本身包含的文件,当我们修改后,

其状态为未暂存,当执行git add命令后,将处于已跟踪状态。

注意:git add命令最终只是将文件的状态修改为已暂存状态,而并没有提交修改。

6. 提交修改

在上一节中我们将新增的文件或修改过的文件都处于暂存状态了,接下来我们通过git commit命令来提交我们的修改:

$git commit

此命令将我把我们的修改提交到本地的repository中,如果想要把代码提交到远程的repository中,我们需要执行以下命令:

$git push

此命令将会把我们的本地修改同步到远程的repository中。

注意:当我们初次使用git commit时,会弹出以下信息:

*** Please tell me who you are.
    Run
    git config --global user.email "[email protected]"
    git config --global user.name "Your Name"
    to set your account‘s default identity.
    Omit --global to set the identity only in this repository.
fatal: unable to auto-detect email address (got ‘[email protected](none)‘)

也就说,我们没有配置相关的信息,我们按照提示进行配置即可:

$git config --global user.email yourEmailAddress
$git config --global user.name userName

接下来就可以正常完成提交了!

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-08-28 14:10:37

Git基础教程的相关文章

Git基础教程(一)

本教程为学习笔记,github作为最受欢迎的资源库,不可不学!详细教程参见:廖雪峰的官方网站Git教程系列.准备花两篇幅搞定实战总结,闲言碎语少说,脚踏实地求真! 1,Git入门 Git是目前世界上最先进的分布式版本控制系统(没有之一). ·    1)在Windows上安装Git,安装包详见:https://git-for-windows.github.io,安装成功后: 2)基本配置 配置邮箱和账户名: 1 [email protected]9S4D59CISAA MINGW64 ~(mas

Git基础教程(建库,并将本地文件提交到远程github仓库)

说明: 1.本教程远程仓库使用的是github 2.全命令行操作 3.以下某些文件夹名称为".XX",此类文件夹在windows中默认是隐藏文件,需要打开设置才能显示出现 具体步骤为[打开资源管理器-工具-文件夹选项-导航窗格-勾选"显示所有文件夹"] 正文: 1.软件准备 ①下载并安装客户端. 百度"Git",根据系统类型自行下载相应版本并安装(点击此处直达),以下教程为windows版本 ②打开客户端. 任意目录右击鼠标,选择"Gi

Git 基础教程 之 Git 安装 (windows)

一,安装Git,访问下面网址进行下载 https://www.git-scm.com/download/ 或者 https://pan.baidu.com/s/19imFBVHA2Yibmw1dyzatDg 密码:q650 二,安装后,找到Git Bash,进行简要配置 (右击桌面,一般就能找到) 三,输入: git config --global user.name "hardy" git config --global user.email "[email protect

Git 基础教程 之 撤销修改

Git跟踪并管理的是修改,而非文件.每次修改,如果不用git add到暂存区,那就不会加入到commit中, 要么全部改完后,再add → commit :要么改一点,就add → commit. 撤销修改 场景1:当你该乱工作区某个文件内容,想直接丢弃修改是,用命令:       git checkout -- readme.txt PS: git diff HEAD -- readme.txt比较版本库和工作区文件的区别 场景2:当你不仅改乱了工作区某个文件的内容,还添加到了暂存区,想丢弃修

Git 基础教程 之 创建版本库

一,选择一个合适的地方,创建空目录,下面两种方法都可 ①   手动新建 ②   使用命令: mkdir pythonwork 二,初始化,使目录变成Git可管理的仓库        执行: git init PS:①cd  更改位置: pwd显示当前目录绝对路径  ②仓库创建好后,当前目录多了一个 .git 目录,是用来跟踪管理版本库的,所以平时没有事别动这个文件:默认为隐藏文件, ls -ah 显示所有文件(包括隐藏文件) ③Repository 版本库 又名 仓库.目录.这个目录里面的文件都

Git 基础教程 之 版本回退

不断对文件进行修改,然后不断提交修改到版本库里. 当你觉得文件修改到一定程度时,可以保存一个"快照",这个"快照"在Git中称为"commit". 一旦文件被改乱了.误删了,都可以从最近一个"commit"恢复.        HEAD 表示 当前版本        HEAD^ 表示 上一个版本        HEAD^^ 表示 上上个版本        HEAD~100 表示 往上100个版本 回退到上一个版本      

Git 基础教程 之 暂存区

工作区(working directory),就是目录,例如:pythonwork 版本库(Repository),工作区有一个隐藏的目录 .git 就是Git的版本库. 版本库最重要的是称为stage 或 index 的暂存区: 还有Git为我们创建的一个分支 master ,以及指向 master 的一个指针 HEAD.   把文件往Git版本库添加时,分了两步: ①   git add 添加操作,实际上是把文件修改添加到暂存区 ②   git commit 提交操作,实际上是把暂存区的所有

Git 基础教程 之 标签

所谓标签:就是一个让人容易记住的有意义的名字,与某个commit绑在一起. 创建标签:①切回需要打标签的分支上                  ② git tag <name>  默认标签是打在最新的提交上                      git tag v1.0                      可以为一个版本添加多个tag                                           git tag 查看所有标签--标签不是按时间顺序列出,而是字母

Android基础入门教程——1.5.1 Git使用教程之本地仓库的基本操作

Android基础入门教程--1.5.1 Git使用教程之本地仓库的基本操作 Git是什么? 一个分布式版本控制系统,和SVN类似,但远比SVN强大的一个版本控制系统 ①Git可以方便的在本地进行版本管理,如同你本地有一个版本管理服务器一样 我们可以选择在合适的时间将本地版本推送到统一的版本管理服务器 ②Git每次会提取整个代码仓库的完整镜像,相当于对整个代码仓库都进行了一次备份,这样计时版本服务器除了问题,我们可以直接采用本地仓库恢复!结合本地版本管理功能,远程版本管理服务器出问题了,我们依然