- 完美应用Ubuntu(第4版)
- 何晓龙编著
- 1437字
- 2024-10-30 00:36:47
6.3 版本管理:git和GitHub
2005年Linux内核代码版本控制软件BitBucket失效时,Linux创始人Linus花了一周的时间开发出git这个分布式的版本控制系统,它最初被用于Linux内核代码的版本管理,目前已经成为主流版本管理程序了,多数开源项目都使用git,git的Logo如图6-10所示。
![](https://epubservercos.yuewen.com/8A7C95/19823444008569906/epubprivate/OEBPS/Images/38718-00-104-3.jpg?sign=1739334135-HcXiPAboAIcJX8jEVYKtxsSB5JQ1XRbx-0-910d3b15a320ba77eed12758663e13f6)
图6-10 git的Logo(图片来源:官方网站)
git是一个分布式设计的版本控制程序,凭借其便捷和高效的操作获得了广大开发者的认可,并在互联网上迅速传播,几乎成为开源社区版本控制的标配程序了,之后又诞生了基于git的GitHub在线代码托管服务,它的出现可以说为git打了一针强心剂,可以视为一个WebGUI的git,并提供基于git的版本托管服务,GitHub的Logo如图6-11所示。
![](https://epubservercos.yuewen.com/8A7C95/19823444008569906/epubprivate/OEBPS/Images/38718-00-104-4.jpg?sign=1739334135-Dre60tGm6e5wVnvCLrhfYGMD4KX30ulz-0-f9a8363b18436332427d0358f484d3a2)
图6-11 GitHub的Logo(图片来源:官方网站)
不用命令行也可以使用git,它基于Ruby on Rails开发,由于程序源代码是开发者沟通最直接的手段,所以,开源项目通过GitHub来快速传播与分享,开发者则可以直接浏览和追踪其他开发者、组织开源项目的源代码,并可利用Fork功能快速创建基于现成开源项目的分支,直接参与到开源项目中,大大降低了参与开源软件的门槛,GitHub的Web界面如图6-12所示。
![](https://epubservercos.yuewen.com/8A7C95/19823444008569906/epubprivate/OEBPS/Images/38718-00-105-1.jpg?sign=1739334135-scJ5JZ7HvUkoctGoex7jhPtoWgnXH85B-0-46c76742c9e27a97c5f2798cb4f23fbf)
图6-12 GitHub的Web界面
综上所述,称git和GitHub为开源软件世界的基石一点儿也不为过,下面就通过一个十分简单的实例,介绍git和GitHub的使用,切实帮助开发者、开发团队以及企业提高软件开发的效率和质量。
6.3.1 安装和配置git
Ubuntu 18.04默认没有安装git,故需要安装和配置git,经过简单的安装和配置,就可以使用git来管理自己的代码了。
1)安装git
可以运行如下命令安装git:
![](https://epubservercos.yuewen.com/8A7C95/19823444008569906/epubprivate/OEBPS/Images/38718-00-105-2.jpg?sign=1739334135-kRgkVlo31HkPTxab3UJMGadCtjzi3W7G-0-42295283b4c02673256ea5990ed7177a)
成功安装后,可以键入如下命令检测安装:
![](https://epubservercos.yuewen.com/8A7C95/19823444008569906/epubprivate/OEBPS/Images/38718-00-105-3.jpg?sign=1739334135-8STNf6YKEkpOrcI8OOSEOqwZHOQyuftX-0-c07b38835cbb216348f7575bb3e8b587)
2)配置使git更高效便捷
安装好后就可以使用了,运行如下命令查看git的默认配置:
![](https://epubservercos.yuewen.com/8A7C95/19823444008569906/epubprivate/OEBPS/Images/38718-00-105-4.jpg?sign=1739334135-fuLyP6bwrKJeYiPtUeoImygGpOiv7Joi-0-976b253959972584da3f1058fb25f970)
由于还没有任何配置,所以显示为空。
为了使用git更加顺手和高效,需要为git的常用命令设置一些别名,便于日后操作:
![](https://epubservercos.yuewen.com/8A7C95/19823444008569906/epubprivate/OEBPS/Images/38718-00-105-5.jpg?sign=1739334135-SgiL4Yd2b7QsXMb0RAmwCkGN1h6wcNHn-0-f68db6cb8234f9be8af52facc8a08f72)
添加用户电子邮件和用户名称,具体操作如下:
![](https://epubservercos.yuewen.com/8A7C95/19823444008569906/epubprivate/OEBPS/Images/38718-00-106-1.jpg?sign=1739334135-4xBxT5qahyp6ql47eTb7lriYwPD7GCJX-0-1f6496fd4c79a97ddf966ebad1c73f6d)
3)指定默认编辑器为Vim
多数开发者都有自己熟悉的编辑器,将自己最熟悉的编辑器设置为git默认的编辑器会比较方便,具体方法如下:
![](https://epubservercos.yuewen.com/8A7C95/19823444008569906/epubprivate/OEBPS/Images/38718-00-106-2.jpg?sign=1739334135-i4u9Eq53Kq16YmD3EkfbI6NWVUETlW79-0-080b65a315e0c95dc4d2baa5422d61e4)
启用git输出显示颜色:
![](https://epubservercos.yuewen.com/8A7C95/19823444008569906/epubprivate/OEBPS/Images/38718-00-106-3.jpg?sign=1739334135-1cXBt9z8f81UqZrxQ7RSUryGgtTypWTL-0-5af037dc8c208cfb4f846aab221e88fc)
全部设置完成后,再次运行git config-l命令,就可以看到上述配置了:
![](https://epubservercos.yuewen.com/8A7C95/19823444008569906/epubprivate/OEBPS/Images/38718-00-106-4.jpg?sign=1739334135-tIhpWeYqcrYpUnAvjBZkbCtvEyuKq359-0-9d37eed4467e21dca329e0573f2910be)
6.3.2 关联git和GitHub账号
配置好git之后,需要将git和GitHub的账号关联起来,这样就可以通过git操作GitHub远程服务器上的版本库了,并可即时将本地代码库中的源代码推送到GitHub保存。要实现这个功能,首先需要申请一个GitHub账户,并且配置相关的SSH key,随后在GitHub上创建一个版本库,笔者已经在GitHub上使用自己的账户创建了一个名为C的版本库。
通过自己的GitHub账号创建好一个名为C的版本库,地址:git@github.com:HenryHo/c.git。
使用如下命令创建SSH Key:
![](https://epubservercos.yuewen.com/8A7C95/19823444008569906/epubprivate/OEBPS/Images/38718-00-106-5.jpg?sign=1739334135-555WIOPnobhlCPWRX9UQykXy9D0cfgH9-0-bd9e61ea71ff2db09643285885851f20)
成功创建后切换到~/.ssh目录下,复制id_rsa.pub文件内容到GitHub Settings左侧的SSH and GPG keys-SSH keys配置页面,具体操作如图6-13所示。
![](https://epubservercos.yuewen.com/8A7C95/19823444008569906/epubprivate/OEBPS/Images/38718-00-107-1.jpg?sign=1739334135-14i2IJN6qP4jsUxfOez2MlN2Y9Xi727x-0-35e020548b0a1b2341571c88236a8cf9)
图6-13 保存SSH key到GitHub
确认无误后保存,即可使用如下命令测试与GitHub服务器的连通性:
![](https://epubservercos.yuewen.com/8A7C95/19823444008569906/epubprivate/OEBPS/Images/38718-00-107-2.jpg?sign=1739334135-VpIX76oUVEJM8OK267z5xZVtwUXx0flB-0-d8e73c83474c593a1be2eb389706edc4)
首先输入yes,如果获得如下提示:
![](https://epubservercos.yuewen.com/8A7C95/19823444008569906/epubprivate/OEBPS/Images/38718-00-107-3.jpg?sign=1739334135-6BezAaXxTZ78iW2Jzyb37y780ijR9gKg-0-4129fbab3a99f684e9d8b2b77245e5be)
说明连接没有任何问题,已准备就绪。
6.3.3 使用git将代码推送到GitHub
首先在本地创建或编辑源代码,然后添加、提交到本地代码库,之后再推送到GitHub,具体操作如下。
从远端复制和检测代码:
![](https://epubservercos.yuewen.com/8A7C95/19823444008569906/epubprivate/OEBPS/Images/38718-00-107-4.jpg?sign=1739334135-yaVwl9yiVOEVW8ddn1M76cRFE9rV2UMJ-0-a726ff6376bac23694641327f4e4728a)
在本地创建源代码,示例如下:
![](https://epubservercos.yuewen.com/8A7C95/19823444008569906/epubprivate/OEBPS/Images/38718-00-107-5.jpg?sign=1739334135-dTM1I3PvQF0K9dMgU49ffoHXIlZJqDtx-0-af3ac1054624a5e88216976aa2ae7756)
代码如下:
![](https://epubservercos.yuewen.com/8A7C95/19823444008569906/epubprivate/OEBPS/Images/38718-00-107-6.jpg?sign=1739334135-Jprq9or9TDIcvnv9ZmcK4yVRRUtEK64c-0-5258094db719abcacb06cc6b716ef9b7)
完成后保存退出即可。
创建源代码文件后,首先要添加和提交到本地代码库中,具体操作如下:
![](https://epubservercos.yuewen.com/8A7C95/19823444008569906/epubprivate/OEBPS/Images/38718-00-108-1.jpg?sign=1739334135-8NrNUW1J7A2WFcOOT4X953QenmdYNvpd-0-958af9262da8d54c656bd7ffa299830c)
运行如下命令将本地库中源代码推送到GitHub远端仓库:
![](https://epubservercos.yuewen.com/8A7C95/19823444008569906/epubprivate/OEBPS/Images/38718-00-108-2.jpg?sign=1739334135-1FpZWaJ2bhslVPdsG53r4cCiC8XS9mhn-0-e35b3cbf34c7d08e1a8059b87cbb27c1)
Tips: 避免频繁地输入用户名和地址。
如果在git clone时使用的是https安全地址,在进行git push等操作时,总会提示输入GitHub账号和密码,可以运行如下命令将认证信息保存起来:
![](https://epubservercos.yuewen.com/8A7C95/19823444008569906/epubprivate/OEBPS/Images/38718-00-108-3.jpg?sign=1739334135-YwJPW8jMbk0NfdnirtxwJrcvVRS3GVEQ-0-846b9ca1e1d948351fb6f9f64cfc4d23)
这样只需要输入一次,后续提交或拉取就不用再输入用户名和密码了。
这时,通过浏览器打开GitHub,登录后进入C库,即可看到刚添加的源代码文件。当然这个例子极为简单,实际工作中的操作要复杂得多,这就需要大家多使用多积累。