git使用

By | 2017年2月17日
目录
[隐藏]

一、简介

Git是一款免费、开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。Git的读音为/gɪt/。
Git是一个开源的分布式版本控制系统,可以有效、高速的处理从很小到非常大的项目版本管理。Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。
Torvalds 开始着手开发 Git 是为了作为一种过渡方案来替代 BitKeeper,后者之前一直是 Linux 内核开发人员在全球使用的主要源代码工具。开放源码社区中的有些人觉得BitKeeper 的许可证并不适合开放源码社区的工作,因此 Torvalds 决定着手研究许可证更为灵活的版本控制系统。尽管最初 Git 的开发是为了辅助 Linux 内核开发的过程,但是我们已经发现在很多其他自由软件项目中也使用了 Git。例如 很多 Freedesktop 的项目迁移到了 Git 上。

二、安装

1.centos使用yum方式安装
yum install git
2.ubuntu使用apt-get安装
apt-get install git
安装之后需要注册

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

因为Git是分布式版本控制系统,所以,每个机器都必须自报家门:你的名字和Email地址。你也许会担心,如果有人故意冒充别人怎么办?这个不必担心,首先我们相信大家都是善良无知的群众,其次,真的有冒充的也是有办法可查的。

注意git config命令的–global参数,用了这个参数,表示你这台机器上所有的Git仓库都会使用这个配置,当然也可以对某个仓库指定不同的用户名和Email地址。

三、使用

1.使用git init初始化。

先创建一个目录,用于存放版本库。

mkdir /learngit

进入learngit文件夹,执行git init

[root@node6 ~]# mkdir /learngit
[root@node6 ~]# cd /learngit/
[root@node6 learngit]# git init
Initialized empty Git repository in /learngit/.git/

2.新增一个文件到版本库。

使用git add file增加一个文件。

使用git commit -m “add file” 提交,-m参数表示对提交文件的说明。

[root@node6 learngit]# vim readme.txt
[root@node6 learngit]# git add readme.txt
[root@node6 learngit]# git commit -m "wrote a readme file"
[master (root-commit) fcfb6a9] wrote a readme file
1 file changed, 2 insertions(+)
create mode 100644 readme.txt

备注:可以进行多次add增加文件,最后统一进行commit提交。

3.状态查看

使用git status 查看工作区状态。

[root@node6 learngit]# git status
# On branch master
nothing to commit, working directory clean

对readme.txt新增一条”hello world!”内容,使用git status查看状态

[root@node6 learngit]# vim readme.txt
[root@node6 learngit]# git status
# On branch master
# Changes not staged for commit:
#   (use "git add <file>..." to update what will be committed)
#   (use "git checkout -- <file>..." to discard changes in working directory)
#
#    modified:   readme.txt
#
no changes added to commit (use "git add" and/or "git commit -a")

上面的命令告诉我们,readme.txt被修改过了,但还没有准备提交的修改.

可以使用git diff查看被修改了什么。

[root@node6 learngit]# git diff
diff --git a/readme.txt b/readme.txt
index 46d49bf..dc0cf6d 100644
--- a/readme.txt
+++ b/readme.txt
@@ -1,2 +1,3 @@
Git is a version control system.
Git is free software.
+hello world!
[root@node6 learngit]#

使用git add 和git commit进行提交。

[root@node6 learngit]# git add readme.txt
[root@node6 learngit]# git commit -m "add hello world"
[master edee36a] add hello world
1 file changed, 1 insertion(+)

4.记录查看

使用git log进行记录查看。

[root@node6 learngit]# git log
commit edee36a91bbc5927c881811bcdc6859dd3477c7c
Author: caoqinghua <caoqinghua@elion.com.cn>
Date:   Fri Feb 17 10:18:16 2017 +0800
add hello world
commit fcfb6a9817424f0ae93c3aec225c049ba925c0b0
Author: caoqinghua <caoqinghua@elion.com.cn>
Date:   Fri Feb 17 09:44:49 2017 +0800
wrote a readme file

可以使用–pretty=oneline命令进行简化输出。

[root@node6 learngit]# git log --pretty=oneline
edee36a91bbc5927c881811bcdc6859dd3477c7c add hello world
fcfb6a9817424f0ae93c3aec225c049ba925c0b0 wrote a readme file

5.版本回退

使用git reset命令进行版本回退

[root@node6 learngit]# git reset --hard HEAD^
HEAD is now at fcfb6a9 wrote a readme file
[root@node6 learngit]# git log --pretty=oneline
fcfb6a9817424f0ae93c3aec225c049ba925c0b0 wrote a readme file

HEAD表示当前版本,HEAD^表示上一个版本,HEAD^^表示上上一个版本。HEAD~10回退往上10个版本。

回退之后如果后悔了,只要知道id,还是可以恢复的。

[root@node6 learngit]# git reset --hard edee36a91
HEAD is now at edee36a add hello world
[root@node6 learngit]# git log --pretty=oneline
edee36a91bbc5927c881811bcdc6859dd3477c7c add hello world
fcfb6a9817424f0ae93c3aec225c049ba925c0b0 wrote a readme file

发现已经恢复到hello world版本了。

如果找不到想要恢复的id,可以使用git reflog命令查看历史记录。

[root@node6 learngit]# git reflog
edee36a HEAD@{0}: reset: moving to edee36a91
fcfb6a9 HEAD@{1}: reset: moving to HEAD^
edee36a HEAD@{2}: commit: add hello world
fcfb6a9 HEAD@{3}: commit (initial): wrote a readme file

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注