Git的安装及基本用法

Git的安装

Git简介

在这里插入图片描述
Git是一个免费的开源 分布式版本控制系统,旨在快速高效地处理从小型到大型项目的所有内容。

Git 易于学习, 占地面积小,具有闪电般的快速性能。它具有诸如Subversion,CVS,Perforce和ClearCase之类的SCM工具,并且具有廉价的本地分支,方便的暂存区域和 多个工作流等功能,今天我们来说一下Git的安装
Git的官方下载地址:点击进入

实验环境

机器IP地址
git-server192.168.200.112
git-client192.168.200.113

首先我们要安装所需要的依赖包,两台机器都要安装以及Git的源码包,我这里用的2.2

yum -y install curl-devel expat-devel gettext-devel openssl-devel zlib-devel
[root@git-server ~]# tar xf git-2.22.0.tar.gz -C /usr/src/	
[root@git-server ~]# cd /usr/src/git-2.22.0/
[root@git-server git-2.22.0]# make configure
[root@git-server git-2.22.0]# ./configure --prefix=/usr/local/git &&make && make install
[root@git-server git-2.22.0]# ln -sf /usr/local/git/bin/* /usr/bin/ 
[root@git-server git-2.22.0]# git --version
git version 2.22.0

客户端进行配置

git config --global user.name "abc"
git config --global user.email "abc@163.com"
git config --global color.ui true
git config --list

服务端创建及初始化Git仓库

[root@git-server ~]# mkdir git_data.git
[root@git-server ~]# cd git_data.git/
[root@git-server ~]# git --bare init

客户端克隆到本地

首先创建密钥发给服务端,然后在远程克隆到本地

[root@git-client ~]# ssh-keygen
[root@git-client ~]# ssh-copy-id 192.168.200.112
[root@git-client ~]# git clone root@192.168.200.112:/root/git_data.git
[root@git-client git_data]# cd git_data/

Git的基本使用

继续上图
在这里插入图片描述
现在所在的 git_data/目录下,就等于图中的workspace;
当你在工作区编写完代码后,可以使用git status来查看一下当前状态

[root@git-client git_data]# touch a.txt
[root@git-client git_data]# git status
位于分支 master
未跟踪的文件:
  (使用 "git add <文件>..." 以包含要提交的内容)

	a.txt

提交为空,但是存在尚未跟踪的文件(使用 "git add" 建立跟踪)

将文件添加到暂存区

[root@git-client git_data]# git add a.txt 
[root@git-client git_data]# git status
位于分支 master
要提交的变更:
  (使用 "git reset HEAD <文件>..." 以取消暂存)

	新文件:   a.txt

还可以取消暂存

[root@git-client git_data]# git reset HEAD a.txt 
[root@git-client git_data]# git status
位于分支 master
未跟踪的文件:
  (使用 "git add <文件>..." 以包含要提交的内容)

	a.txt

提交为空,但是存在尚未跟踪的文件(使用 "git add" 建立跟踪)

提交到暂存区后,我们可以用commit来添加到本地仓库

[root@git-client git_data]# git add a.txt 
[root@git-client git_data]# git commit -m "kongde" a.txt 
[master 28079c7] kongde
 1 file changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 a.txt
[root@git-client git_data]# git status
位于分支 master
无文件要提交,干净的工作区

-m是添加注释信息,不加的话会给给你一个类似于vim的界面,在里面添加提交说明信息

还可以进行代码的回滚恢复操作,先模拟一下操作

[root@git-client git_data]# git commit -a -m"jia12345"
[master 0890b98] jia12345
 1 file changed, 1 insertion(+)
[root@git-client git_data]# echo "6789" >> a.txt 
[root@git-client git_data]# git commit -a -m"jia6789"
[master 6212225] jia6789
 1 file changed, 1 insertion(+)
[root@git-client git_data]# cat a.txt 
12345
6789
[root@git-client git_data]# git log 
commit 621222506180d49d1520c4399eafa9de62623ab3 (HEAD -> master)
Author: abc<abc@163.com>
Date:   Wed Nov 13 10:22:00 2019 +0800

    jia6789

commit 0890b98d6f3977d26a32327711e9959f1223e111
Author: abc<abc@163.com>
Date:   Wed Nov 13 10:21:30 2019 +0800

    jia12345

commit 28079c712d7c8a08bedbbe0a2334aeca9ea14f19
Author: abc<abc@163.com>
Date:   Wed Nov 13 10:18:07 2019 +0800

    kongde

git -log:用来查看历史提交记录
git -log n:查看最进几条的提交记录(n>=1)

例如,我想要回到最开始的状态,即内容为空的状态,选择部分commit值即可

[root@git-client git_data]# cat a.txt 
12345
6789
[root@git-client git_data]# git reset --hard 28079c712d
HEAD 现在位于 28079c7 kongde
[root@git-client git_data]# cat a.txt 
[root@git-client git_data]# git log 
commit 28079c712d7c8a08bedbbe0a2334aeca9ea14f19 (HEAD -> master)
Author: abc<abc@163.com>
Date:   Wed Nov 13 10:18:07 2019 +0800

    kongde

当然,也可以撤销,即回到未来的数据

[root@git-client git_data]# git reflog
28079c7 (HEAD -> master) HEAD@{0}: reset: moving to 28079c712d
6212225 HEAD@{1}: commit: jia6789
0890b98 HEAD@{2}: commit: jia12345
28079c7 (HEAD -> master) HEAD@{3}: commit: kongde
[root@git-client git_data]# git reset --hard 6212225
HEAD 现在位于 6212225 jia6789
[root@git-client git_data]# cat a.txt 
12345
6789

我们也可以给添加标签,通过标签来进行数据的回滚

[root@git-client git_data]# git tag v1.0
[root@git-client git_data]# git log -2
commit 621222506180d49d1520c4399eafa9de62623ab3 (HEAD -> master, tag: v1.0)
Author: yuanxinghong <yuanxinghong@163.com>
Date:   Wed Nov 13 10:22:00 2019 +0800

    jia6789

commit 0890b98d6f3977d26a32327711e9959f1223e111
Author: yuanxinghong <yuanxinghong@163.com>
Date:   Wed Nov 13 10:21:30 2019 +0800

    jia12345
[root@git-client git_data]# echo "000000" > a.txt 
[root@git-client git_data]# git commit -a -m"jia0000"
[master 3548a6a] jia0000
 1 file changed, 1 insertion(+), 2 deletions(-)
[root@git-client git_data]# git log -3
commit 3548a6a20bb751a19bc38c6cb2d3802183e6e75a (HEAD -> master)
Author: yuanxinghong <yuanxinghong@163.com>
Date:   Wed Nov 13 10:44:30 2019 +0800

    jia0000

commit 621222506180d49d1520c4399eafa9de62623ab3 (tag: v1.0)
Author: yuanxinghong <yuanxinghong@163.com>
Date:   Wed Nov 13 10:22:00 2019 +0800

    jia6789

commit 0890b98d6f3977d26a32327711e9959f1223e111
Author: yuanxinghong <yuanxinghong@163.com>
Date:   Wed Nov 13 10:21:30 2019 +0800

    jia12345
[root@git-client git_data]# cat a.txt 
000000
[root@git-client git_data]# git reset --hard v1.0
HEAD 现在位于 6212225 jia6789
[root@git-client git_data]# cat a.txt 
12345
6789

提交到远程仓库

[root@git-client git_data]# git push root@192.168.200.112:/root/git_data.git
枚举对象: 20, 完成.
对象计数中: 100% (20/20), 完成.
压缩对象中: 100% (10/10), 完成.
写入对象中: 100% (20/20), 1.49 KiB | 1.49 MiB/s, 完成.
总共 20 (差异 0),复用 0 (差异 0)
To 192.168.200.112:/root/git_data.git
 * [new branch]      master -> master
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值