简介
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是在Linux上开发的,很长一段时间内,Git只能在Linux/Unix系统上运行。随着Git的使用逐渐普及,一些开发者也慢慢将Git移植到了Windows平台上。目前Git已经发展为可以在 Windows/macOS/Linux/Unix 上运行的跨平台工具。
下载对应的版本即可安装!
安装:无脑下一步即可!安装完毕就可以使用了!
启动Git
安装成功后在开始菜单中会有Git项,菜单下有3个程序:任意文件夹下鼠标右键也可以看到对应的程序:
- 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]
不同级别的配置
- 查看当前项目的 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
命令不能带有
git
,且需以
'' / ""
单双引号包裹。**
也可以使用
vim
来编辑指定目录的
.gitconfig
代表不同级别的权限:
etc/config
:–systemC:\\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 installgit -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 的应用如常。
版权归原作者 小白菜duang 所有, 如有侵权,请联系我们删除。