Git 基础知识 -- 环境配置、搭建Git服务器

简介

​ Git 是一种分布式的项目版本控制管理工具,所采取的概念是 “去中心化” ,每个开发人员都有自己的本地代码仓库,同时为同一个远程仓库服务。有了 Git 就可以将某个文件回溯到之前的状态,甚至将整个项目都回退到过去某个时间点的状态。就算乱来一气将项目中的文件删删改改,也照样可以恢复到之前的样子,且额外增加的工作量微乎其微。

​ 通过 Git 可以比较本地代码文件的变化细节,查出最后是谁修改了哪个地方的代码,从而找到导致问题出现的原因,也可以查出是谁在哪个时间点报告了功能缺陷等等。

来源

Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的分布式版本控制系统。

与常用的版本控制工具 CVS, Subversion 等不同,它采用了分布式版本库的方式,不必服务器端软件支持(注:这得分是用什么样的服务端,使用http协议或者git协议等不太一样。并且在push和pull的时候和服务器端还是有交互的),使源代码的发布和交流极其方便。 Git 的速度很快,这对于诸如 Linux kernel 这样的大项目来说自然很重要。 Git 最为出色的是它的合并跟踪(merge tracing)能力。

同生活中的许多伟大事件一样,Git 诞生于一个极富纷争大举创新的年代。Linux 内核开源项目有着为数众广的参与者。绝大多数的 Linux 内核维护工作都花在了提交补丁和保存归档的繁琐事务上(1991-2002年间)。到 2002 年,整个项目组开始启用分布式版本控制系统 BitKeeper 来管理和维护代码。

到了 2005 年,开发 BitKeeper 的商业公司同 Linux 内核开源社区的合作关系结束,他们收回了免费使用 BitKeeper 的权力。这就迫使 Linux 开源社区(特别是 Linux 的缔造者 Linus Torvalds )不得不吸取教训,只有开发一套属于自己的版本控制系统才不至于重蹈覆辙。他们对新的系统制订了若干目标:

  • 速度快
  • 简单的设计
  • 对非线性开发模式的强力支持(允许上千个并行开发的分支)
  • 完全分布式
  • 有能力高效管理类似 Linux 内核一样的超大规模项目(速度和数据量)

自诞生于 2005 年以来,Git 日臻成熟完善,在高度易用的同时,仍然保留着初期设定的目标。它的速度飞快,极其适合管理大项目,它还有着令人难以置信的非线性分支管理系统,可以应付各种复杂的项目开发需求。尽管最初 Git 的开发是为了辅助 Linux 内核开发的过程,但是我们已经发现在很多其他自由软件项目中也使用了 Git。

环境配置

安装

打开 [git官网] https://git-scm.com/,下载git对应操作系统的版本。

若官网下载太慢,可以使用淘宝镜像下载:http://npm.taobao.org/mirrors/git-for-windows/

Git 基础知识 -- 环境配置、搭建Git服务器_第1张图片

最早Git是在Linux上开发的,很长一段时间内,Git只能在Linux/Unix系统上运行。随着Git的使用逐渐普及,一些开发者也慢慢将Git移植到了Windows平台上。目前Git已经发展为可以在 Windows/macOS/Linux/Unix 上运行的跨平台工具。

下载对应的版本即可安装!

安装:无脑下一步即可!安装完毕就可以使用了!

启动Git

安装成功后在开始菜单中会有Git项,菜单下有3个程序:任意文件夹下鼠标右键也可以看到对应的程序:

Git 基础知识 -- 环境配置、搭建Git服务器_第2张图片

  • **Git Bash:**Unix与Linux风格的命令行,使用最多,推荐最多

  • **Git CMD:**Windows风格的命令行

  • Git GUI:图形界面的Git,不建议初学者使用,尽量先熟悉常用命令

以命令行操作为例,使用 Bash 命令行来操作 Git。

Git 工具主要采用 git 命令来指引操作。

Git 配置

安装完 Git 之后,需要进行一次初始化的配置,Git 使用 git config 命令来完成。此命令的作用是配置 Git 的相关环境参数。

初始化配置
设置用户名/邮箱

登录的用户名是你想要克隆、下载到HTTPS / SSH 地址上所属的某个代码托管平台。

$git config --global user.name "xxx" #用户名
$git config --global user.email "[email protected]" #邮箱

当安装Git后首先要做的事情是设置你的用户名称和e-mail地址。这两条配置很重要,每次 Git 提交时都会引用这两条信息,说明是谁提交了更新,所以会随更新内容一起永久纳入历史记录。

如果你传递了 --global 选项,Git 将总是会使用该信息来处理你在系统中所做的一切操作。
如果你希望在一个特定的项目中使用不同的名称或 e-mail 地址,你可以在该项目中运行该命令而不要 --global 选项。

总之–global为全局配置,若舍弃 --global 则表示当前项目的 .git 目录作为独立配置。

删除用户配置信息
$git config --global --unset user.name	#用户名
$git config --global --unset user.email	#邮箱
Git 相关配置权限文件

Git 提供了 git config 指令来配置或读取相应的工作环境变量,而正是这些环境变量决定了 Git 在各个环节的具体工作方式和行为。

这些变量可以存放在以下三个不同的地方:

  • \etc\gitconfig :系统中对所有用户都普遍适用的配置。

    • 对应 --system 系统级
    • 若使用 git config 指令时添加 --system 选项,读写的就是这个文件。
  • C:\Users\Administrator\.gitconfig :用户目录下的配置文件,只适用于当前系统用户的 git 项目。

    • 对应 --global 全局
    • 若使用 git config 指令时添加 --global 选项,读写的就是这个文件。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ioOBLzVf-1657784949840)(git-media\Git 相关配置.png)]

  • .git/config :当前项目的 .git 目录下的配置文件。仅仅只对当前项目有效

这三个配置文件对应了 GIt 中所展示的三种级别的权限 system >> global >> .git

注意:每一个级别的配置都会覆盖上层的相同配置。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-IOPxCgRz-1657784949840)(git-media/Git 配置权限级别.png)]

查看配置
全部配置
$git config -l|[--list]

Git 基础知识 -- 环境配置、搭建Git服务器_第3张图片

不同级别的配置
  • 查看当前项目的 config 配置:
$git config --local --list
  • 查看系统级 config 配置:
$git config --system --list
  • 查看当前用户的全局 config 配置:
$git config --global  --list
配别名

Git 并不会在你输入部分命令时自动推断出你想要的命令。如果不想每次都输入完整的 Git 命令,可以通过 git config 来轻松为每一个命令设置一个别名。

$git config --global alias.[别名] ''

注意:配别名的 git 命令不能带有 git ,且需以 '' / "" 单双引号包裹。

也可以使用 vim 来编辑指定目录的 .gitconfig 代表不同级别的权限:

  • etc/config :–system
  • C:\\User\Administrator\\.gitconfig : --global
  • .git/config :当前项目级
vim .git/config

#用户信息配置
[user]
	username = xxx
	email = xxx
	
#核心配置
[core]
	repositoryformatversion = 0
	filemode = false
	bare = false
	logallrefupdates = true
	symlinks = false
	ignorecase = true

#git 命令别名配置
[alias]
	logAll = log --oneline --decorate --graph --all

示例:

#源完整命令:git log --oneline --decorate --graph --all

#设置别名
$git config --global alias.log-d-all 'log --oneline --decorate --graph --all'

常见 Linux 基本指令

指令 描述
cd 改变目录
pwd 显示当前所在的目录路径
ls / ll 都是列出当前目录中的所有文件,只不过ll(两个ll)列出的内容更为详细
touch xx 在当前目录下新建一个 xx 文件
rm xx 删除 xx 文件
mkdir xx 新建 xx 文件夹。
rm -r xx 删除 xx 文件夹
rm -rf / 切勿在Linux中尝试!删除电脑中全部文件!
mv xx src yy 移动文件 xx 到 src 目录下的 yy。必须保证 xx 文件和目标文件夹 src 在同一目录下。
mv 源文件 重命名文件 重命名
cat xx 查看 xx 文件的内容
reset 重新初始化终端/清屏。
clear 清屏
history 查看执行过的命令历史记录
help 帮助
exit 退出
# 注释
vim xx 编辑 xx 文件
i :插入模式,文件的编辑操作
esc 之后 : 键:执行相关命令
q! 强制退出
wq 保存写入并退出
set nu 设置行号
echo ‘xxx’ 向控制台输出 xxx
echo ‘xxx’ > info.txt 向 info.txt 文件写入 xxx 文本内容
echo ‘xxx’ >> info.txt 向 info.txt 文件支架 xxx 文本内容
find 目录名 将对应的目录及子目录输出到控制台
find 目录名 -type f 将对应目录下的文件输出到控制台
| 管道符。表示将前一个命令的输出值传递给后一个命令进行处理

搭建 Git 服务器

想要搭建 Git 服务器,需要Linux 最基本的网络环境。

同时,可以使用 yum 命令来下载 SVN 第三方资源包。yum是 Linux 系统自带的用来下载第三方资源包的命令工具,相当于 Node.js 的 npm 工具。

搭建步骤:

前提:配置好网络环境。

1、下载git 第三方资源包

$ yum install git -y

2、创建 Git 资源的存储目录

先创建一个 目录用来存储 Git 资源。

$ mkdir xxx
$ cd /xxx/

3、初始化 Git 仓库

切换到存储 Git资源的目录,在此目录中初始化 Git 的基本配置信息。

$ git init --bare xxx.git

4、配置用户。

Git 服务与 SVN 服务不同,Git 服务规定可访问的用户只能是当前的系统用户、所以要先添加一个系统用户,为其设置好密码。

添加系统用户:

$ useradd  <name>

用户组命名默认为当前添加的用户名。例如 : blue : blue

设置密码:

$ passwd <name>

由于添加的是系统用户,如果不对此用户增加权限,那么此用户就可以登录并查看到当前系统的所有文件,为了避免用户权限乱套,需要对 此用户进行权限限制,禁止此用户登录到服务器中。

5、修改 Git 目录所有者

在创建最初,Git 目录是的所属者是 root 用户,需要将 Git 目录的所属者修改为 当前新建的用户。表示此 Git 目录是 此用户所属文件。

修改目录所属用户。

$chown -R 用户名:用户组 xxx.git

参数:

  • -R :递归。表示递归 xxx.git 中的所有文件归属到指定用户身上。
  • xxx.git : 初始化 Git 仓库时创建的配置文件。

6、正式导入 Git 资源到本地。

配置好以上步骤之后,使用 Git 安装时 自带的 Git Bash Here 工具,输入以下格式的指令即可获取指定服务器地址下的 Git 资源。

如:

$git clone 用户名@服务器IP地址:/目录/xxx.git 本地存储目录

如图:Git 基础知识 -- 环境配置、搭建Git服务器_第4张图片

一切 Git 的应用如常。

你可能感兴趣的:(Git,git,服务器,github)