Github是一个面向全球的代码托管平台,在开源代码托管领域它是Number One,各大公司如谷歌、微软、华为、阿里等都在github上由大量的开源项目,Linux内核的代码也托管在github上。
Github上有无数的开发者在为代码开源贡献着自己的力量,如果没有开源,我们的计算机时代不可能发展地这么好。所以学习git,我们理应加入github,利用git分布式的优势,加入到全球最大的开源社区,使用git向全世界展示我们自己写的伟大代码。
首先,我们需要注册一个github账号
-
打开github的官网
https://github.com
,如果打开很慢,请参考《github无法访问克隆不了项目下载失败没反映的解决方法》 -
点击
Sign up
进入注册页面,根据提示信息,输入相关信息进行账号注册 -
注册成功后我们就会进入github的个人主页
-
点击那个绿色的"New"按钮,创建一个代码仓库(repository),这个仓库就是用来保存我们的代码的地方,也是向全世界展示我们的代码的地方。输入仓库名称,将"Add a README file"打上勾,最后点击
Create Repository
。 -
仓库创建成功后,我们就可以看到我们的刚创建的项目了
在本机生成SSH公私密钥对,用于免密登陆到Github
-
打开终端
-
在终端安装
openssh-client
,如已安装请忽略jagitch@1438a383552c:~$ sudo apt install openssh-client -y
- 1
-
使用
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
-
此时,在
~/.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免密登陆到第三方平台了。所以私钥文件千万不能丢失,否则别人就能使用你的私钥文件登陆你在第三方平台的账号了。 -
将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公钥
-
点击头像,打开github的设置页面,点击右侧的
SSH and GPG Keys
-
点击绿色的
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
仓库克隆到本地进行开发了。
-
在github中打开我们的仓库
-
点击绿色的
Code
按钮,点击SSH,复制文本框中的内容 -
在本机打开终端,切换到我们保存代码的路径
jagitch@1438a383552c:~$ mkdir code jagitch@1438a383552c:~$ cd code
- 1
- 2
-
使用
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
最后,让我们开发一个伟大的程序,然后公布到全世界
-
进入项目文件夹
jagitch@1438a383552c:code$ cd hello-world
- 1
-
编写程序
jagitch@1438a383552c:hello-world$ echo "这是一个伟大的程序的开端" >> README.md
- 1
-
提交
jagitch@1438a383552c:hello-world$ git commit -m "伟大的程序的开端" [main b30b4cb] 伟大的程序的开端 1 file changed, 1 insertion(+), 1 deletion(-)
- 1
- 2
- 3
-
将代码推送到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) 比虚拟机安装系统省时省心省力
评论记录:
回复评论: