1.TortoiseGit 详细教程
2.如何克隆Linux内核git库到Win11电脑上(一)
TortoiseGit 详细教程
TortoiseGit详细教程
作为软件开发人员,码安Git版本控制系统不可或缺。码安不过,码安命令众多可能让人感到困扰。码安本教程将教你如何通过TortoiseGit,码安一个图形化的码安稳定cp源码Git客户端,轻松上手。码安它并非深入命令行,码安而是码安通过GUI界面辅助CLI操作,让学习更加直观易懂。码安TortoiseGit简介
TortoiseGit,码安中文名海龟Git,码安是码安一款开源的Git客户端,支持Windows系统,码安包括XP、码安Vista、7、,bav指标源码且有中文版本。它能帮助你管理文件历史,恢复旧版本。接下来的教程主要针对使用TortoiseGit的用户。安装与配置
首先,需要下载安装Git和TortoiseGit。Git可从git-for-windows.github.io获取,安装过程可参考相关博客。接着,下载TortoiseGit及中文语言包,参考相关教程进行安装。配置时,设置一个Git项目目录,例如E:\Git,并在资源管理器中右键选择TortoiseGit设置,配置语言为简体中文,取消自动升级选项,干支纪年源码指定git.exe路径。 用户信息是个人标识,需在TortoiseGit设置中填写名字和邮箱。通过全局或本地配置文件存储SSH密码,以便自动登录。使用示例
克隆项目时,可选择HTTPS或SSH方式。通过SSH URL,需先生成并配置SSH Key,将其添加到GitHub或Gitblit服务器。克隆GitHub或Gitblit仓库时,使用SSH URL路径。 提交和推送代码时,先在本地进行修改和提交,然后通过Git同步拉取最新版本,解决冲突后,再推送至远程仓库。海南源码代购总结
借助TortoiseGit,Git的复杂操作得以简化,让开发工作更加高效。虽然本文主要介绍了TortoiseGit的基本操作,但源代码管理工具如Source Tree也是不错的选择。如果你在VS开发环境中,还可以结合VS的Git模块使用。强烈推荐廖雪峰的Git教程作为深入学习的资源。如何克隆Linux内核git库到Win电脑上(一)
假设我们没有使用虚拟机,不开启WSL,没有安装ext4驱动和ext4文件系统,仅仅有一个单纯的NTFS分区,只想将Linux内核源码代码下载到本地进行学习。在进行这一操作前,我们需要找到Linux内核源码的git库。Linux内核官方网站是 kernel.org。在这个网站上,吃透源码原理Linus Torvalds维护的内核库是主要的资源。不过,由于git服务器位于国外,如新加坡,国内发起的下载网速可能非常慢。为了解决这一问题,我们可以选择使用国内类似github的网站gitee。gitee提供了Linux内核代码的镜像下载,其git库地址为 /mirrors/linux_old1.git。这个镜像库的名字是 /mirrors/linux_old1.git,其与Linus Torvalds在github上托管的库 /torvalds/linux 相关联。gitee每天会自动从github上同步一次,这个频率对于大多数用户已经足够。
下一步是安装git工具,以及下载git库。有许多支持git的工具,比如从 pc.qq.com 下载的Git(带图形界面,也支持命令行),或者TortoiseGit(一系列软件版本管理工具之一),都是不错的选择。通过gitee下载Linux kernel库的命令如下:
在gitee上下载速度快到令人发指,很快就能看到结算界面。然而,下载完成后,我们可能无法进行checkout操作,导致在 /mirrors/linux_old1/ 目录下看不到任何文件。
为了解决checkout问题,我们需要调整Windows系统默认不允许使用诸如 "aux" 这样的设备名字作为普通文件名的规则。调整方法如下:
在完成这一系列操作后,git开始进行checkout文件的输出,尽管有一些警告信息,但最终出现%和Done,表示checkout操作完成。在 /mirrors/linux_old1/ 目录下,我们可以看到完整的Linux内核代码的目录结构,非常完美。
然而,在实际操作中,我们可能会遇到一个图像表示的问题,其中猩红的字体提示checkout过程中闪过的警告信息。使用git diff查看后,我们发现文件存在差异。接下来,我们需要解决这个问题。
首先,我们怀疑git软件可能存在bug,但考虑到git是Linus Torvalds亲自编写,且全球用户都在使用,这个问题不太可能出现在git本身。因此,我们尝试检查自己是否在命令中输入了错误。实际上,问题出在Windows系统上。由于Windows系统不区分文件名的大小写,当创建文件时,即使使用大写字母,文件系统也会将它们转换为小写。因此,即使我们在NTFS文件系统上创建的文件名使用了大写,文件系统在进行文件名比较时也会转换为小写。
在gitee.com/mirrors/linux_old1/.../查看原始目录结构时,我们发现目录下存在名为"xt_CONNMARK.h"和"xt_connmark.h"的两个文件,而我们的硬盘上只有一个名为"xt_CONNMARK.h"的文件。因此,git在尝试checkout文件时,发现文件名不匹配。
解决这个问题的方法是使用自带的fsutil工具,将指定目录的属性设置为区分大小写。这样做后,我们可以在同一目录下同时存在大写和小写的文件名。使用标准命令进行操作后,git开始checkout文件,但NTFS系统再次阻止我们更改目录属性。网络上关于fsutil工具的文章中,很少有人提到这个问题,也没有人提供解决方案。
解决这个问题的方法是先创建一个空目录,然后再尝试更改其属性。当目录为空时,fsutil工具可以更改目录的属性,之后我们可以让git还原目录下的所有文件。通过使用此命令,我们成功解决了问题。
接下来,我们解决的是git在NTFS文件系统上创建git库时将参数core.ignoreCase设置为true的问题。由于Linux kernel的netfilter子系统在处理文件时引入了一些错误,因此即使底层NTFS系统已经设置为区分大小写,我们还需要在上层的git软件配置中相应地进行更改。
在解决了一系列问题后,我们最终可以顺利将Linux内核代码从gitee下载到本地。接下来,我们将继续讨论如何在Linux下生成交叉索引,以解决后续可能遇到的问题。