首页 最新 热门 推荐

  • 首页
  • 最新
  • 热门
  • 推荐

【Git从入门到精通】系列课程03:一分钟让你成为开源的一分子/使用github托管我们的代码

  • 25-03-05 12:40
  • 2403
  • 12433
blog.csdn.net

Github是一个面向全球的代码托管平台,在开源代码托管领域它是Number One,各大公司如谷歌、微软、华为、阿里等都在github上由大量的开源项目,Linux内核的代码也托管在github上。

Github上有无数的开发者在为代码开源贡献着自己的力量,如果没有开源,我们的计算机时代不可能发展地这么好。所以学习git,我们理应加入github,利用git分布式的优势,加入到全球最大的开源社区,使用git向全世界展示我们自己写的伟大代码。

首先,我们需要注册一个github账号

  1. 打开github的官网https://github.com,如果打开很慢,请参考《github无法访问克隆不了项目下载失败没反映的解决方法》

    在这里插入图片描述

  2. 点击Sign up进入注册页面,根据提示信息,输入相关信息进行账号注册

    在这里插入图片描述

  3. 注册成功后我们就会进入github的个人主页

    在这里插入图片描述

  4. 点击那个绿色的"New"按钮,创建一个代码仓库(repository),这个仓库就是用来保存我们的代码的地方,也是向全世界展示我们的代码的地方。输入仓库名称,将"Add a README file"打上勾,最后点击Create Repository。

    在这里插入图片描述

  5. 仓库创建成功后,我们就可以看到我们的刚创建的项目了

    在这里插入图片描述

在本机生成SSH公私密钥对,用于免密登陆到Github

  1. 打开终端

  2. 在终端安装openssh-client,如已安装请忽略

    jagitch@1438a383552c:~$ sudo apt install openssh-client -y
    
    • 1
  3. 使用ssh-keygen生成公私密钥对,遇到提示直接回车使用默认值即可

    jagitch@1438a383552c:~$ ssh-keygen -t rsa
    Generating public/private rsa key pair.
    Enter file in which to save the key (/home/jagitch/.ssh/id_rsa): 
    Created directory '/home/jagitch/.ssh'.
    Enter passphrase (empty for no passphrase): 
    Enter same passphrase again: 
    Your identification has been saved in /home/jagitch/.ssh/id_rsa
    Your public key has been saved in /home/jagitch/.ssh/id_rsa.pub
    The key fingerprint is:
    SHA256:0V1gxMYWuOl3vPLKrZVtUbtMRApCAQKbBljV+m9E5nI jagitch@1438a383552c
    The key's randomart image is:
    +---[RSA 3072]----+
    |.o.ooo .o+.*=o.. |
    |. . o o  .oo*.o  |
    |   + .  . .=.. ..|
    |  . .   o.o   . o|
    |     . +S.   . + |
    |      o E . . =oo|
    |       =   . .o+o|
    |        o  ..o.. |
    |       .    +=o  |
    +----[SHA256]-----+
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
  4. 此时,在~/.ssh目录下就会有以下文件

    jagitch@1438a383552c:~$ tree ~/.ssh
    /home/jagitch/.ssh
    ├── id_rsa
    └── id_rsa.pub
    
    1 directory, 2 files
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    tree是一个输出文件夹层次结构的命令,如果命令不存在,使用sudo apt install tree -y安装即可
    id_rsa是私钥文件,需要妥善保存,千万不能泄漏
    id_rsa.pub是公钥文件
    公钥可以将它比做账号名,私钥文件相当与密码,使用免密登陆时将公钥设置到第三方平台,然后就可以在本机通过ssh免密登陆到第三方平台了。所以私钥文件千万不能丢失,否则别人就能使用你的私钥文件登陆你在第三方平台的账号了。

  5. 将id_rsa.pub的内容,复制下来

    jagitch@1438a383552c:~$ cat ~/.ssh/id_rsa.pub
    ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCwSstanbpcvzitFK39mC8mURVOAOe0GDEyC56i3uqj+jbY6ptsPogSbiItkSWqLhvIQyeu3psmEBxZtUuc9I+f2buNMEBniBhimNSX/xxyhBhVTohLic47Vq7qeBUUEoDRUtIQ3m7g39dX85bQdGPXOyMBFNcol4YSfGzjwj54oql1pxamveAzZsuCbO0SGqSK12Hab2MD1+znffR3+l1cH8ByTf7FhU9bxuf8EQYQnR/TZpxDItwkD3/tLDBkZI2EkQ8Ynb+vXZ1mLh9gNHxwmXHy0KvyGegIabzXdmbIfn4zt27lJF/l3DtLGhnpc126NuFqufUXwNrVZKULW9coR3dOFcSgR4l/SThiVS4teMRibTskJw8RoK0OW3CdHqTlRDdXSsnS+1MxPlC/dFkXMruxPSma/NFxX3rr4mP3SkGuyMVqZ7k4iBykwvf4J7+FPT5N4CKWpG/5nAOs6uzl9xwP7Qmge0JxyEGj9qplVZsMHy9DawRdARBr1NCG+rU= jagitch@1438a383552c
    
    • 1
    • 2

在github中配置SSH公钥

  1. 点击头像,打开github的设置页面,点击右侧的SSH and GPG Keys

    在这里插入图片描述

  2. 点击绿色的New SSH Key,打开新建SSH界面,输入Title和将上个步骤复制的id_rsa.pub的内容复制粘贴到Key文本框,然后点击绿色的Add SSH key,如果跳转到github Two-factor authentication界面,则参考《超级详细的Github双重验证开启教程&github Two-factor authentication》配置github双重验证。

    在这里插入图片描述

克隆仓库到本地

将过上面的设置,此时我们就可以把我们在github上创建的hello-world仓库克隆到本地进行开发了。

  1. 在github中打开我们的仓库

    在这里插入图片描述

  2. 点击绿色的Code按钮,点击SSH,复制文本框中的内容

    在这里插入图片描述

  3. 在本机打开终端,切换到我们保存代码的路径

    jagitch@1438a383552c:~$ mkdir code
    jagitch@1438a383552c:~$ cd code
    
    • 1
    • 2
  4. 使用git clone加上粘贴我们第2步复制的内容执行,此时将会把github中的远程项目克隆到本地了

    jagitch@1438a383552c:code$ git clone [email protected]:jagitch/hello-world.git
    Cloning into 'hello-world'...
    The authenticity of host 'github.com (20.205.243.166)' can't be established.
    ED25519 key fingerprint is SHA256:+DiY3wvvV6TuJJhbpZisF/zLDA0zPMSvHdkr4UvCOqU.
    This key is not known by any other names.
    Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
    Warning: Permanently added 'github.com' (ED25519) to the list of known hosts.
    remote: Enumerating objects: 3, done.
    remote: Counting objects: 100% (3/3), done.
    remote: Total 3 (delta 0), reused 0 (delta 0), pack-reused 0
    Receiving objects: 100% (3/3), done.
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

最后,让我们开发一个伟大的程序,然后公布到全世界

  1. 进入项目文件夹

    jagitch@1438a383552c:code$ cd hello-world
    
    • 1
  2. 编写程序

    jagitch@1438a383552c:hello-world$ echo "这是一个伟大的程序的开端" >> README.md
    
    • 1
  3. 提交

    jagitch@1438a383552c:hello-world$ git commit -m "伟大的程序的开端"
    [main b30b4cb] 伟大的程序的开端
     1 file changed, 1 insertion(+), 1 deletion(-)
    
    • 1
    • 2
    • 3
  4. 将代码推送到github远程仓库中

    jagitch@1438a383552c:hello-world$ git pull
    Already up to date.
    jagitch@1438a383552c:hello-world$ git push
    Enumerating objects: 5, done.
    Counting objects: 100% (5/5), done.
    Delta compression using up to 16 threads
    Compressing objects: 100% (2/2), done.
    Writing objects: 100% (3/3), 315 bytes | 315.00 KiB/s, done.
    Total 3 (delta 0), reused 0 (delta 0), pack-reused 0
    To github.com:jagitch/hello-world.git
       3f975a8..b30b4cb  main -> main
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    每次推送代码之前,先使用git pull这是个好习惯

总结

经过一番勤劳的操作,我们终于成为了开源世界的一员,以后我们就可以将自己编写的很有趣很有用的代码开源分享出来,为开源奉献自己的一份力。

推荐阅读

1. 【Go零基础系列】002:第一个Go程序
2. 【Git从入门到精通】系列课程02:从0开始为项目使用git进行版本控制
3. 教你如何1秒安装一个Linux系统(ubuntu,debian,centos) 比虚拟机安装系统省时省心省力

文章知识点与官方知识档案匹配,可进一步学习相关知识
Git技能树Git入门Git简介7505 人正在系统学习中
注:本文转载自blog.csdn.net的gopyer的文章"https://blog.csdn.net/fuxily/article/details/139358915"。版权归原作者所有,此博客不拥有其著作权,亦不承担相应法律责任。如有侵权,请联系我们删除。
复制链接
复制链接
相关推荐
发表评论
登录后才能发表评论和回复 注册

/ 登录

评论记录:

未查询到任何数据!
回复评论:

分类栏目

后端 (14832) 前端 (14280) 移动开发 (3760) 编程语言 (3851) Java (3904) Python (3298) 人工智能 (10119) AIGC (2810) 大数据 (3499) 数据库 (3945) 数据结构与算法 (3757) 音视频 (2669) 云原生 (3145) 云平台 (2965) 前沿技术 (2993) 开源 (2160) 小程序 (2860) 运维 (2533) 服务器 (2698) 操作系统 (2325) 硬件开发 (2492) 嵌入式 (2955) 微软技术 (2769) 软件工程 (2056) 测试 (2865) 网络空间安全 (2948) 网络与通信 (2797) 用户体验设计 (2592) 学习和成长 (2593) 搜索 (2744) 开发工具 (7108) 游戏 (2829) HarmonyOS (2935) 区块链 (2782) 数学 (3112) 3C硬件 (2759) 资讯 (2909) Android (4709) iOS (1850) 代码人生 (3043) 阅读 (2841)

热门文章

101
推荐
关于我们 隐私政策 免责声明 联系我们
Copyright © 2020-2024 蚁人论坛 (iYenn.com) All Rights Reserved.
Scroll to Top