开发者
【编译迁移】使用git命令获取github仓上的单个文件
【编译迁移】使用git命令获取github仓上的单个文件
发表于2024/02/23
210

举例:我们在鲲鹏环境上做软件迁移适配时,在github上获取到主软件的源码,但有时候直接用主软件的源码适配的时候,会发现适配不成功,例如一些sse指令集,这时候需要在github上获取一些开源的头文件进行替代,例如https://github.com/DLTcollab/sse2neon里的sse2neon.h。这时,可能大部分开发者都是会git clone https://github.com/DLTcollab/sse2neon.git,把整个sse2neon的仓给git clone下来。然后才能拿到sse2neon.h。但其实我们只需要里面的单个文件sse2neon.h,只是恰好https://github.com/DLTcollab/sse2neon这个仓不大,如果是遇到一些其他软件依赖比较大的时候,git clone下来是很慢的,我们希望是只是获取其中一个文件而已。

此时,我们可以这么做,首先在浏览器上打开https://github.com/DLTcollab/sse2neon,然后找到sse2neon.h这个文件打开,此时浏览器的地址应该是https://github.com/DLTcollab/sse2neon/blob/master/sse2neon.h,如下图:

cke_19083.png

cke_25496.png

如果这时候,在服务器上通过wget命令或者curl -O命令去下载这个sse2neon.h,你会发现下载下来的是一个html文件,并不是我们想要的头文件,如下图:

cke_44514.png

此时,我们接着在页面https://github.com/DLTcollab/sse2neon/blob/master/sse2neon.h中找到“raw”,点击打开文件,如下图:

cke_65080.png此时我们发现浏览器的地址是https://raw.githubusercontent.com/DLTcollab/sse2neon/master/sse2neon.h,如下图

cke_72035.png

这时候我们就可以在服务器上使用wget或者curl -O去下载这个文件,但这时候可能会由于DNS的原因,导致下载失败,例如下图:

cke_117043.png

可以通过修改/etc/hosts的方式去添加raw.githubusercontent.com的ip

ip可以通过ip.cn查询,如查询到raw.githubusercontent.com的ip是185.199.108.133,则可以采用以下命令添加到/etc/hosts

echo "185.199.108.133 raw.githubusercontent.com" >> /etc/hosts

此时,在服务器上再次重新wget,则下载成功,且是我们需要的头文件而不是html文件,如下图:

cke_213191.png

收藏举报
Level 1
0
帖子
0
粉丝
0
获赞