Git基础教程

来源:互联网 发布:天津广电网络网上缴费 编辑:程序博客网 时间:2024/05/16 17:37

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 "you@example.com"    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 'ju@ju-Product.(none)')

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

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

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

0 0
原创粉丝点击