java中git版本控制,git版本控制管理是什么?git如何实现版本控制?

大家好,今天要跟大家讲的是关于git版本控制管理的一点小知识,git相信程序员小伙伴们都已经很熟悉了,很多项目开发都需要git,所以,git版本控制管理到底是干嘛的呢?Git又如何实现版本控制呢?下面就与大家讲解一下。

先介绍一下 Git 的特点,主要有两大特点:

版本控制:可以解决多人同时开发的代码问题,也可以解决找回历史代码的问题。

分 布

式:Git是分布式版本控制系统,同一个Git仓库,可以分布到不同的机器上。首先找一台电脑充当服务器的角色,每天24小时开机,其他每个人都从这个“服务器”仓库克隆一份到自己的电脑上,并且各自把各自的提交推送到服务器仓库里,也从服务器仓库中拉取别人的提交。可以自己搭建这台服务器,也可以使用GitHub网站。

1. Git 安装[root@kai ~]# yum install git -y

[root@kai ~]# git --version

git version 1.8.3.1

2.创建一个版本库

新建一个目录git_test,在git_test目录下创建一个版本库,命令如下:[root@kai ~]# mkdir git_test

[root@kai ~]# cd git_test/

[root@kai git_test]# ll -a

total 0

drwxr-xr-x 2 root root 6 Mar 13 21:43 .

dr-xr-x---. 5 root root 228 Mar 13 21:43 ..

[root@kai git_test]# git init

Initialized empty Git repository in /root/git_test/.git/

[root@kai git_test]# ll -a

total 0

drwxr-xr-x 3 root root 18 Mar 13 21:44 .

dr-xr-x---. 5 root root 228 Mar 13 21:43 ..

drwxr-xr-x 7 root root 119 Mar 13 21:44 .git

可以看到在git_test目录下创建了一个.git隐藏目录,这就是版本库目录。

3.版本创建与回退

3.1 基本使用

在git_test目录下创建一个文件code.txt,编辑内容如下:[root@kai git_test]# vim code.txt

[root@kai git_test]# cat code.txt

this is the first line

使用如下两条命令可以创建一个版本:[root@kai git_test]# git commit -m 'version1'

*** 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 'root@kai.(none)')

# 出现该错误原因是我们没有配置git库的用户名与邮箱,按提示创建即可。[root@kai git_test]# git config --global user.email "kai@qq.com"

[root@kai git_test]# git config --global user.name "kai"

# 再次提交

[root@kai git_test]# git commit -m 'version1'

[master (root-commit) 020bf02] version1

1 file changed, 1 insertion(+)

create mode 100644 code.txt

使用如下命令可以查看版本记录:[root@kai git_test]# git log

commit 020bf021ec6d1b77836db4e96541d3659251714e

Author: kai

Date: Wed Mar 13 21:57:42 2019 -0400

version1

若是想回到某一个版本,可以使用命令:git reset --hard HEAD^。HEAD 表示当前版本,HEAD^ 表示上一个版本,HEAD^^

表示上上个版本。也可以使用另一种表示方式:HEAD~n 表示前n个版本。

如果想回到版本1,可以使用如下命令:[root@kai git_test]# git reset --hard HEAD^

HEAD is now at 020bf02 version1

[root@kai git_test]# git log

commit 020bf021ec6d1b77836db4e96541d3659251714e

Author: kai

Date: Wed Mar 13 21:57:42 2019 -0400

version1

[root@kai git_test]# cat code.txt

this is the first line

[root@kai git_test]#

执行命令后使用git log查看版本记录。

工作区和暂存区

(1)工作区(Working Directory)

电脑中的目录,比如我们的git_test,就是一个工作区。

(2)版本库(Repository)

工作区有一个隐藏目录.git,这个不是工作区,而是git的版本库。

git的版本库里存了很多东西,其中最重要的就是称为stage(或者叫index)的暂存区,还有git为我们自动创建的第一个分支master,以及指向master的一个指针叫HEAD。因为我们创建git版本库时,git自动为我们创建了唯一一个master分支,所以,现在

git commit 就是往master分支上提交更改。

可以简单理解为,需要提交的文件修改通通放到暂存区,然后,一次性提交暂存区的所有修改。

下面上图理解:844fb185f26a2d049ffbede0f3d3ae1e.png

前面说了我们把文件往git版本库里添加的时候,是分两步执行的:

第一步是用git add把文件添加进去,实际上就是把文件修改添加到暂存区;

第二步是用git commit提交更改,实际上就是把暂存区的所有内容提交到当前分支。

下面在git_test目录下再创建一个文件code2.txt,然后编辑内容,同时修改code.txt的内容:[root@kai git_test]# vim code2.txt

[root@kai git_test]# cat code2.txt

the code2 first line

[root@kai git_test]# vim code.txt

[root@kai git_test]# cat code.txt

this is the first line

this is the second line

this is the third line

使用如下命令查看当前工作树的状态:[root@kai git_test]# git status

# On branch master

# Changes not staged for commit:

# (use "git add ..." to update what will be committed)

# (use "git checkout -- ..." to discard changes in working directory)

#

# modified: code.txt

#

# Untracked files:

# (use "git add ..." to include in what will be committed)

#

# code2.txt

no changes added to commit (use "git add" and/or "git commit -a")

[root@kai git_test]#

上面提示我们code.txt被修改,而code2.txt没有被跟踪。

我们使用如下命令把code.txt和code2.txt加入到暂存区,然后再执行git status命令,结果如下:[root@kai git_test]# git add code.txt

[root@kai git_test]# git add code2.txt

[root@kai git_test]# git status

# On branch master

# Changes to be committed:

# (use "git reset HEAD ..." to unstage)

#

# modified: code.txt

# new file: code2.txt

#

[root@kai git_test]#

所以git add命令是把所有提交的修改存放到暂存区。

一旦提交后,如果你又没有对工作区做任何修改,那么工作区就是“干净”的。执行如下命令可以发现:[root@kai git_test]# git status

# On branch master

nothing to commit, working directory clean

[root@kai git_test]#

现在我们的版本库变成了这样:

a91592175ea480febab85bce7055e9b4.png

好了,今天的内容就是这样,更多相关内容请持续关注本站。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值