教程 | 超详细的 Git.实用图文教学(七)

2022-12-24 0 704

点选白字高度关注,利牧径助你涨坐姿

教程 | 超详细的 Git.实用图文教学(七)

在此附有 Git 的浏览门牌号

https://git-scm.com/

接中

自订指示行

(一) 自订撤消修正指示

在撤消修正四节中,他们晓得,指示 git reset HEAD file能把甲类的修正撤消掉(unstage),再次放回组织工作区。难道是两个 unstage 操作方式,就能实用性两个 unstage 别称:

$ git config —global alias.unstagereset HEAD教程 | 超详细的 Git.实用图文教学(七)

当你源文件指示:

$ git unstage test.txt教程 | 超详细的 Git.实用图文教学(七)

事实上 Git 继续执行的是:

$ git reset HEAD test.txt教程 | 超详细的 Git.实用图文教学(七)

(二) 自订显示信息

1) 实用性两个“git last”指示行,让其显示最后一次提交信息:

$ git config —global alias.last log -1教程 | 超详细的 Git.实用图文教学(七)

这样,用$ git last 就能显示最近一次的提交

教程 | 超详细的 Git.实用图文教学(七)

2) 甚至还有人丧心病狂地把log实用性成了:

$ git config –global alias.lg “log –color –graph –pretty=format:%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset –abbrev-commit”教程 | 超详细的 Git.实用图文教学(七)

先输入“git log”,作为参照对比

$ git log教程 | 超详细的 Git.实用图文教学(七)

再来看看“git lg”的效果:

$ git-lg教程 | 超详细的 Git.实用图文教学(七)

(三) 实用性文件

实用性 Git 的时候,–global 参数是全局参数,也就是这些指示在这台电脑的所有 Git 仓库下都有用;如果不加,那只针对当前的仓库起作用。Git 的实用性文件能通过指示行修正,也能在文件资源管理器中手动删改。

教程 | 超详细的 Git.实用图文教学(七)

实用性文件放哪了?每个仓库的 Git 实用性文件都放在.git/config 文件中:

别称就在[alias]后面,要删除别称,直接把对应的行删掉即可。

教程 | 超详细的 Git.实用图文教学(七)

而当前用户的 Git 实用性文件放在用户主目录下的两个隐藏文件.gitconfig 中:

教程 | 超详细的 Git.实用图文教学(七)

实用性别称也能直接修正这个文件,如果改错了,能删掉文件再次通过指示实用性。

设置文本编辑器

Windows 系统下如何设置 Git 的默认文本编辑软件

Git 默认的文本编辑软件是 vim(在安装 git 时能更改默认文本编辑器,详尽请参考安装讲义的步骤5)。使用 Windows 系统的人很多不熟悉 vim,那么如何再次实用性文本编辑器呢?

为了更好的使用 Git 进行版本管理,使用自己喜欢的编辑器,修正方法如下:

◆ 添加文本编辑器

假设你喜欢的文本编辑软件(Notepad++)路径是:

C:/Program Files/Notepad++/Notepad++.exe

Step1

$ git config —global core.editor=“C:/Program Files/Notepad++/Notepad++.exe”

或者输入以下指示行:

$ git config —global core.editor  “C:/Program Files/Notepad++/Notepad++.exe”

注意:Program Files:因为中间有空格,所以必须使用单引号括起来。

这里笔者使用添加 Vim 文本编辑器的图片作为演示讲义(因为笔者在安装的时候,直接选择了 Notepad++ 作为 Git 默认的文本编辑器,但是前面的安装讲义步骤5 的截图却是选择 Vim 作为默认文本编辑器。没错,为了后面的讲义我故意没截自己的实用性图,这么说不会被打死吧 wwww)

在窗口中输入 $ git config –global core.editor “vim”,实用性 Vim 文本编辑器

教程 | 超详细的 Git.实用图文教学(七)

Step2

设置完毕,就能调用 $ git config –list 查看实用性了。

注意:因为实用性中使用了–global 参数,所以这种配置修正是对所有用户都有效。

能看到在最后一行控制台输出了,core.editor=vim 就说明 Vim 编辑器设置成功。

教程 | 超详细的 Git.实用图文教学(七)

◆ 删除文本编辑器

如果要删除默认的文本编辑软件,则在 git bash 窗口输入如下指示即可。

因为 Git 能指定多个文本编辑软件,所以删除实用性也有两种方式:

$ git config —unset  —global

core.editor

$ git config —unsetglobal  core.editor=“C:/Program Files/Notepad++/Notepad++.exe”

注意:

● 第一种方式将会删除设置的整个 core.editor 实用性部分;第二章方式则只删除指定的某个 core.editor 实用性。

● $ git config –unset  –global core.editor 指示行只能删除新添加的文本编辑器,安装时默认的编辑器不会被删除,Git 要求保证最少有两个文本编辑器可用。

教程 | 超详细的 Git.实用图文教学(七)

删除完毕,这次再调用 $ git config –list 查看当前文本编辑器的实用性

教程 | 超详细的 Git.实用图文教学(七)

能看到笔者刚刚添加的 Vim 文本编辑器被删除了

搭建 Git 服务器

在 Linux 环境下搭建 Git 私用服务器

然而,在实际使用分布式版本控制系统的时候,其实很少在两人之间的电脑上推送版本库的修正,因为可能你们俩不在两个局域网内,两台电脑互相访问不了,也可能今天你的同事病了,他的电脑压根没有开机。

之前也有提到远程仓库事实上和本地仓库没啥不同,纯粹为了7×24小时开机并交换大家的修正。因此,分布式版本控制系统通常也有一台充当“中央服务器”的电脑,每天24小时开机,其他每个人都从这个“服务器”仓库克隆一份到自己的电脑上,并且各自把各自的提交推送到服务器仓库里,也从服务器仓库中拉取别人的提交。但这个服务器的作用仅仅是用来方便“交换”大家的修正,没有它大家也一样干活,只是交换修正不方便而已。

GitHub 就是两个免费托管开源代码的远程仓库。但是对于某些视源代码如生命的商业公司来说,既不想公开源代码,又舍不得给 GitHub 交保护费,那就只能自己搭建一台 Git 服务器作为私有仓库使用。搭建 Git 服务器需要准备一台运行 Linux 的机器,笔者强烈推荐用 Ubuntu 或 Debian。这样,通过几条简单的 apt指示就能完成安装。

假设你已经有 sudo 权限的用户账号,下面,正式开始安装:

● 第一步,安装 git:

$ sudo apt-get install git

● 第二步,创建两个 git 用户,用来运行 git 服务:

$ sudo  adduser  git

● 第三步,创建证书登录:

收集所有需要登录的用户的公钥,就是他们自己的 id_rsa.pub 文件。

把所有公钥导入到 /home/git/.ssh/authorized_keys 文件里,一行一个。

具体操作方式步骤如下:

$ mkdir  .ssh               //创建两个 .ssh目录$ cd .ssh                    //进入.ssh目录

$ touch authorized_keys        

//在.ssh目录里创建两个authorized_keys文件,用于存放用户的公钥

● 第四步,初始化 Git 仓库:

先选定两个目录作为 Git 仓库,假定是 /srv/service.git,在/srv 目录下输入指示:

$ sudo git init –bare service.git

Git 就会创建两个裸仓库,裸仓库没有组织工作区,因为服务器上的 Git 仓库纯粹是为了共享,所以不让用户直接登录到服务器上去改组织工作区,并且服务器上的 Git 仓库通常都以.git 结尾。(注意仓库必须以.git 结尾,这与客户端在加入 git 中的项目先目录里有个.git 文件是两个道理;.git 事实上就是客户端的本地仓库)

然后,把 owner 改为 git:

$ sudo chown -R git:git service.git/                            //

修正目录的所属组为git。

$ sudo chmod -R 774

 service.git/                    

//修正目录的操作方式权限为所有者和所属组的人为读、写、继续执行。

用 chmod 指示来修正权限;读、写、运行三项权限。读、写、继续执行三项权限能用数字表示,就是r=4,w=2,x=1。774就是 rwxrwxr。意思是该登录用户、他所在的组有最高权限;其他人只有读权限,这里和 GitHub 权限设定一致。

● 第五步,禁用 shell 登录:

出于安全考虑,第二步创建的 git 用户不允许登录shell,这能通过编辑 /etc/passwd 文件完成。

$ sudo vi  /etc/passwd                  

//编辑 passwd 实用性文件

找到类似下面的一行:

$ git:x:1001:1001:,,,:/home/git:/bin/bash

改为:

$ git:x:1001:1001:,,,:/home/git:/usr/bin/git-shell

这样,git 用户能正常通过 ssh 使用 git,但无法登录 shell,因为他们为 git 用户指定的 git-shell 每次一登录就自动退出。

● 第六步,克隆远程仓库:

现在,能通过 git clone 指示克隆远程仓库了,在各自的电脑上运行:

$ git clone git@server:/srv/service

.git

Cloning into sample

warning: You appear to have cloned an empty repository.

剩下的推送就简单了。

至此,Git 的讲义全部结束。

后记

在学习 git 的过程中,笔者查阅了不少资料,其中收益最深的是菜鸟讲义里的《简明 git 讲义》和廖雪峰的《史上最详尽 git 讲义》。但是笔者还是觉得他们的文章略显冗长,越是往后看越是忍不住犯困(或许是为了照顾基础非常薄弱的初学者吧)。事实上,笔者写的文章说是他们讲义的整合复刻版也没错。我写的讲义并不算是真正意义上的原创,都是在网上学习时把初学者容易忽略的知识点四处收集起来做的一份使用心得罢了。删去了大量不是特别需要注意的内容,本讲义的基础篇收录了笔者所有能考虑到的初学者学习 git 的难点,目的是让初学者理解 git 组织工作原理。初学者常遇见的警告基本都能在本篇查找到。结合大学生的学习力做出了相应的内容调整,能仅靠标题索引找到自己想要的内容,不再需要在百度上搜索半天,增加学习的时间成本,笔者希望通过学习本篇全部讲义后能让读者终身受益。

内容参考自:

https://git-scm.com/

https://blog.csdn.net/a13590394462/article/details/74857360

https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000

作者:黄志鹏

利牧径俱乐部ISA

微信:sziitISA

两个让你涨坐姿的团队

相关文章

发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务