1.什么是Git
Git是一个免费的、分布式的版本控制工具,或是一个强调了速度快的源代码管理工具
1.2关于版本控制
什么是版本控制?版本控制是一种记录若干文件内容变化,以便将来查阅特定版本修订情况的系统。在本文所展示的例子中,我们仅对保存着软件源代码的文本文件作版本控制管理,但实际上,你可以对任何类型的文件进行版本控制。
1.3Git内文件的三种状态
对于任何一个文件,在 Git 内都只有三种状态:已提交(committed),已修改(modified)和已暂存(staged)。
已提交表示该文件已经被安全地保存在本地数据库中了;
已修改表示修改了某个文件,但还没有提交保存;
已暂存表示把已修改的文件放在下次提交时要保存的清单中。
Git 管理项目时,文件流转的三个工作区域:Git 的工作目录,暂存区域,以及本地仓库。
1.4Git工作流程
1.在工作目录中修改某些文件。
2.对修改后的文件进行快照,然后保存到暂存区域。
3.提交更新,将保存在暂存区域的文件快照永久转储到 Git 目录中。
所以,我们可以从文件所处的位置来判断状态:如果是 Git 目录中保存着的特定版本文件,就属于已提交状态;如果作了修改并已放入暂存区域,就属于已暂存状态;如果自上次取出后,作了修改但还没有放到暂存区域,就是已修改状态。
已提交(committed):表示数据文件已经顺利提交到Git版本库中。
已修改(modified):表示数据文件已经被修改,但未被保存到Git版本库中。
已暂存(staged):表示数据文件已经被修改,并会在下次提交时提交到Git版本库中。
2搭建Git服务器
2.1环境
2.2软件安装
安装方法有两种:
一、yum命令安装,此方法简单,并且会自动安装依赖的包,而且会从源里安装最新的版本,不过不一定是git最新的。
二、源码安装,这个要比yum方式较麻烦点,不过过程还是比较清晰的,毕竟源码安装也比较普遍了。
本文采用yum方式安装git,操作如下:
[root@cong11 ~]# yum install -y git
[root@cong12 ~]# yum install -y git
查看git版本
[root@localhost ~]# git --version
3 git使用
3.1服务用户创建空仓库
3.1.1创建git账号
[root@cong11 ~]# useradd git
[root@cong11 ~]# passwd git
3.1.2创建版本库
[root@cong11 ~]# su git #切换到git用户
[git@cong11 ~]$ mkdir project.git
[git@cong11 ~]$ ls
project.git
[git@cong11 ~]$ cd project.git/
[git@cong11 project.git]$ git init --bare #初始化仓库
初始化空的 Git 版本库于 /home/git/project.git/
3.2linux客户端初始化测试
3.2.1创建工作目录
[root@cong12 ~]# mkdir git
3.2.2拉取到本地库
[root@cong12 ~]# cd git
[root@cong12 git]# git clone git@192.168.1.11:/home/git/project.git
[root@cong12 git]# ll
total 0
drwxr-xr-x. 3 root root 18 Jun 24 22:31 project
3.2.3给本地新项目添加文件
给project项目添加一个文件
[root@cong12 project]# echo " NO.1">1.thml
[root@cong12 project]# git status
On branch master
Initial commit
Untracked files:
(use "git add <file>..." to include in what will be committed)
1.thml
nothing added to commit but untracked files present (use "git add" to track)
第一次查看,这个文件还没有添加到暂存区的
3.2.4 添加到暂存区
使用git add把新建的文件加到git缓冲区
[root@cong12 project]# git add 1.thml
然后在查看状态
[root@cong12 project]# git status
On branch master
Initial commit
Changes to be committed:
(use "git rm --cached <file>..." to unstage)
new file: 1.thml
有添加,那就有删除
它也提示你了
git rm --cached readme
3.2.5提交到本地仓库
使用git commit把缓存区的文件添加到本地仓库
[root@cong12 project]# git commit -m "NO.1"
*** 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@cong12.(none)')
然后它会提示你设置邮箱和姓名,我们设置一下邮箱和姓名
[root@cong12 project]# git config --global user.email "2890679012qq.com"
[root@cong12 project]# git config --global user.name "lisi"
然后我们重新提交到本地仓库
[root@cong12 project]# git commit -m "NO.1"
[master (root-commit) be1e6d3] NO.1
1 file changed, 1 insertion(+)
create mode 100644 1.thml
3.2.6 git log查看日志
[root@cong12 project]# git log、
commit be1e6d33038e8ccb73875009c1868321ba590891
Author: lisi <2890679012qq.com>
Date: Sat Jun 25 08:16:48 2022 +0800
到目前为止自己本地仓库就提交结束了。之后就是提交到远程仓库
3.2.7 git remote -v查看本地仓库状态和仓库信息
[root@cong12 project]# git remote -v
origin git@192.168.1.11:/home/git/project.git (fetch)
origin git@192.168.1.11:/home/git/project.git (push)
origin表示的是远程仓库的别名,以后提交代码的时候只需要使用origin这个别名即可
3.2.8git push把本地仓库代码推送到远程仓库
[root@cong12 project]# git push origin master
git@192.168.1.11's password:
Counting objects: 3, done.
Writing objects: 100% (3/3), 204 bytes | 0 bytes/s, done.
Total 3 (delta 0), reused 0 (delta 0)
To git@192.168.1.11:/home/git/project.git
- [new branch] master -> master
上面就是一个标准的代码提交的过程,到此自己创建的文件就推到了远程的git仓库了。
4Git的初始化
4.1git clone git init
git clone: 这是较为简单的一种初始化方式,当你已经有一个远程的Git版本库,只需要在本地克隆一份
例如:
[root@cong12 ~]# mkdir -p /var/www/html //git仓库目录
[root@cong12 ~]# git clone git@192.168.1.11:/home/git/project.git /var/www/html/
说明:'git clone git@192.168.1.11:/home/git/project.git /var/www/html/'命令就是将' git@192.168.1.11:/home/git/project.git '这个URL地址的远程版本库完全克隆到本地/var/www/html/目录下面
git init和git remote:这种方式稍微复杂一些,当你本地创建了一个工作目录,你可以进入这个目录,使用git init命令进行初始化,Git以后就会对该目录下的文件进行版本控制。这时候如果你需要将它放到远程服务器上,此时你就可以利用 git remote add 命令来增加一个远程服务器端,例如' git remote add test ssh://git@192.168.1.11/home/git/project.git '这条命令就会增加URL地址为' ssh://git@192.168.1.11/home/git/project.git ',名称为test的远程服务器,以后提交代码的时候只需要使用test别名即可。
例如:
[root@cong12 ~]# mkdir /git_test
[root@cong12 ~]# git init /git_test //初始化git,指定git仓库路径,同时也是工作目录。
[root@cong12 ~]# cd /git_test/
[root@cong12 git_test]# git remote add test ssh://git@192.168.1.11/home/git/project.git //添加远程库
[root@cong12 git_test]# git remote -v
test ssh://git@192.168.1.11/home/git/project.git (fetch)
test ssh://git@192.168.1.11/home/git/project.git (push)
4.2Git 基本命令
上面都有说过下面就简单了解一下
git pull:从版本库(既可以是远程的也可以是本地的)将代码拉到本地
git add:将所有改动的文件(新增和有变动的)放在暂存区,由git进行管理
git rm:从当前的工作空间中和索引(暂存区)中删除文件
git commit:提交当前工作空间的修改内容到本地仓库
git push:将本地commit的代码更新到远程版本库中,例如'git push origin branchname'就会将本地的代码更新到名为orgin的远程版本库中branchname分支
git log:查看历史日志
版权归原作者 胤要努力学习 所有, 如有侵权,请联系我们删除。