Git是一种分布式版本控制系统,它是由Linus Torvalds为了管理Linux内核开发而开发的。与中心化的版本控制系统(如SVN)不同,Git是一种分布式系统,它将代码库(repository)复制到多个开发者的本地计算机上,每个开发者都有自己的代码库,可以在本地提交代码、管理分支、合并代码等操作。Git通过在本地存储完整的代码历史记录,使得开发者可以离线工作,并支持多个开发者并行开发。
Git与SVN的主要区别如下:
分布式与中心化:Git是一种分布式版本控制系统,而SVN是一种中心化版本控制系统。在Git中,每个开发者都有自己的代码库,并可以在本地提交代码、管理分支、合并代码等操作。而在SVN中,代码库存储在中央服务器上,开发者需要从服务器上获取代码,并将更改提交到服务器。
分支管理:Git的分支管理功能非常强大,它支持快速创建、切换、合并分支,还支持本地分支和远程分支。而在SVN中,分支管理功能相对较弱,只支持创建分支,而分支合并操作需要通过服务器来完成。
性能和扩展性:Git在处理大型代码库时具有优异的性能和扩展性,因为每个开发者都有自己的代码库,并且可以离线工作。而SVN在处理大型代码库时可能会遇到性能和扩展性方面的挑战,因为所有开发者都需要连接到中央服务器。
可以从Git官方网站下载并安装Git工具,以下是具体步骤:
打开Git官方网站:Git - Downloads
选择您所使用的操作系统,例如Windows,macOS,Linux等,并点击相应的下载按钮。
如果您使用的是Windows系统,下载完成后,双击.exe文件,打开安装向导,按照提示进行安装。如果您使用的是macOS或Linux系统,您可以通过命令行安装Git,具体安装方法请参考官方文档。
安装完成后,您可以在命令行终端中输入git --version
命令,以确认Git是否已成功安装并显示版本信息。
安装完成后,您就可以在命令行终端中使用Git命令来管理您的代码库。同时,您也可以使用Git GUI客户端,如GitHub Desktop,SourceTree等,来进行更加直观的Git操作。
首先可以注册一个github账号,创建一个仓库。
然后可以看到创建的仓库:
这里说明一下最后一个License许可证的作用
在创建Git仓库时选择证书可以指定代码仓库的许可证类型。这个许可证类型决定了在何种情况下其他人可以使用、修改或分发代码。
常见的许可证类型包括MIT、Apache、GPL等,每种许可证都有其独特的限制和条款,开发者应该根据自己的需求选择适合的许可证类型。
例如,MIT许可证允许使用、修改和分发源代码和二进制文件,只要在所有副本中包含原始版权和许可声明。Apache许可证要求所有修改的代码都必须以Apache许可证的形式发布。GPL许可证则要求所有修改的代码都必须以GPL许可证的形式发布,并且在某些情况下可能要求以开源形式发布整个应用程序。
选择合适的证书有助于保护你的知识产权并促进代码的分享和协作。
不同的开源软件许可证类型有不同的限制和条款,下面是一些常见的证书的主要限制和条款的概述:
MIT许可证:MIT许可证是一种简单的、宽松的许可证,允许使用、修改和分发源代码和二进制文件,只要在所有副本中包含原始版权和许可声明。MIT许可证没有任何附加条件或限制。
Apache许可证:Apache许可证是一种广泛使用的许可证,允许使用、修改和分发源代码和二进制文件,只要所有修改的代码都必须以Apache许可证的形式发布。此外,如果你使用Apache许可证的代码,你必须提供原始版权和许可声明,并在使用任何Apache许可证代码的产品或文件中包含一个 NOTICE 文件。
GPL许可证:GPL许可证是一种最为严格的开源许可证,要求任何使用、修改或分发GPL许可证的软件必须以相同的许可证类型发布,并且源代码必须始终可用。此外,如果你在你的代码中使用GPL许可证的代码,则你的代码也必须是GPL许可证的。
BSD许可证:BSD许可证是一种较为宽松的许可证,允许使用、修改和分发源代码和二进制文件,只要在所有副本中包含原始版权和许可声明。BSD许可证没有任何附加条件或限制,允许代码的商业使用和闭源修改。
Mozilla Public License(MPL):MPL是一种与GPL和LGPL兼容的开源许可证,允许使用、修改和分发源代码和二进制文件,只要所有修改的代码都以MPL许可证的形式发布。MPL还要求在修改的代码中包含原始代码的许可证和版权声明。
在Windows上生成公钥以绑定GitHub仓库需要进行以下步骤:
打开Git Bash终端:在开始菜单中搜索Git Bash,或者右键单击您要使用的文件夹,并从上下文菜单中选择“Git Bash Here”。
创建SSH密钥:在Git Bash终端中,输入以下命令,然后按Enter:
ssh-keygen -t rsa -b 4096 -C "[email protected]"
这会生成一对RSA密钥,其中包括公钥和私钥。您需要输入自己的电子邮件地址。
3.将公钥添加到GitHub账户:复制公钥内容并将其添加到您的GitHub账户中。您可以在GitHub网站上转到“Settings”(设置)>“SSH and GPG keys”(SSH和GPG密钥),然后单击“New SSH key”(新SSH密钥)按钮,将公钥粘贴到文本框中,然后单击“Add SSH key”(添加SSH密钥)按钮。
4.现在,您已经将公钥添加到GitHub账户中,并可以通过SSH协议使用Git访问GitHub仓库。
注意:如果您需要使用另一个账户访问GitHub仓库,则需要为该账户创建新的SSH密钥。
3.1 在开始在github上托管代码前,需要配置账号邮箱信息:
Git可以通过git config命令来配置用户信息,包括用户名和电子邮件地址。这些信息会被Git用于记录每次提交的作者信息。
git config --global user.name "Your Name"
git config --global user.email "[email protected]"
3.2 开始提交代码
git clone [email protected]:xxxx/LearnCoding.git #克隆远程代码
cd /d/MyProject/LearnCoding (main) #切换到仓库目录
vi test.c #创建一个test.c文件,然后写个helloworld程序
git status #查看git跟踪文件状态
git add test.c #将test.c文件添加到暂存区
git commit -m'你好,新世界' #将暂存区的内容添加到提交区,并添加说明
git push origin main #将本地代码推送到远程相同仓库的main分支
克隆github上的仓库
结果演示:如何查看提交的内容
常见开源的代码仓库:
GitHub:GitHub是目前最受欢迎的代码托管平台之一,它提供了Git的基本功能,并支持代码审查、项目管理、协作开发等功能。
GitLab:GitLab是一个自托管的Git代码仓库管理工具,它提供了类似GitHub的功能,同时还支持CI/CD、容器注册表等功能。
Bitbucket:Bitbucket是一个基于Git和Mercurial的代码托管平台,它提供了与GitHub类似的功能,同时还提供了一些额外的功能,如JIRA软件集成和支持私有仓库等。
SourceForge:SourceForge是一个开源软件开发平台,它提供了Git、SVN和Mercurial等版本控制系统,并提供了项目管理、协作开发等功能。
Apache Subversion(简称SVN):SVN是一个开源的集中式版本控制系统,它提供了类似Git的版本控制功能,但相比Git,它更加适合处理较小、集中化的代码库。
Codeberg:Codeberg是一个德国的非营利性开源项目托管平台,它提供了基于Git的代码仓库管理功能,同时支持在线代码编辑和协作开发。
Gitea:Gitea是一个基于Git的开源自托管Git代码仓库管理工具,它提供了与GitHub类似的功能,并提供了快速、易用、轻量的体验。
Learning Git branch:可视化的操作演示,非常适合初学者
对应的网址:
GitHub:https://github.com/
GitLab:https://about.gitlab.com/
Bitbucket:https://bitbucket.org/
SourceForge:https://sourceforge.net/
Apache Subversion(简称SVN):https://subversion.apache.org/
Codeberg:https://codeberg.org/
Gitea:https://gitea.io/
Learning Git branch :https://learngitbranching.js.org/