Git介绍以及SSH配置
目录
1. Git介绍
Git是一款功能强大的分布式版本控制系统,最初由Linux操作系统的开发者Linus Torvalds在2005年开发,用于管理Linux内核的源代码,现已成为广泛使用的版本控制工具之一。以下是对Git的详细介绍:
1.1 Git的基本原理
- 分布式版本控制:Git将整个代码库复制到每个开发者的本地计算机上,每个开发者都有自己的完整副本。这意味着开发者可以在没有网络连接的情况下继续工作,并且可以在不同的分支上进行独立开发。
- 快照式存储:Git保存的是文件提交时的快照,而不是差异内容。这样可以更全面地跟踪文件历史和版本变化。
- SHA-1算法保证完整性:Git使用SHA-1加密算法对文件数据进行校验,确保数据的完整性和一致性。
1.2 Git的主要功能
- 克隆远程仓库:从服务器克隆版本数据库(包括代码和版本信息)到本地。
- 提交代码:在自己的分支上创建新代码或修改现有代码,并提交到本地仓库。
- 合并分支:将不同的分支合并到一个共同的分支上,例如将功能分支合并到主分支。
- 拉取远程代码:从远程仓库获取最新代码,并与本地代码合并。
- 解决代码冲突:当两个分支的代码同时修改了同一部分,Git会自动检测冲突,需要开发者手动解决。
- 查看提交历史:查看代码提交的历史记录,包括每次提交的作者、日期和提交信息。
- 标签管理:为特定的提交创建标签,便于跟踪重要版本。
1.3 Git的优点
- 分布式:提高了开发的灵活性和效率,开发者可以在离线状态下进行操作。
- 强大的分支管理:可以轻松地创建、合并和删除分支,使得多人协作开发变得更加方便。
- 快速高效:采用快照方式进行版本控制,文件只需通过计算hash值来进行唯一标识,因此在提交、切换分支等操作上非常快速。
- 本地保存完整历史记录:可以随时查看代码的变更历史和版本演进,不受网络连接的限制。
- 安全可靠:采用了SHA-1算法对每个文件进行hash计算,从而确保文件的完整性。并且支持对代码提交进行签名,以确保代码的来源可信。
- 强大的协作功能:提供了一系列强大的协作功能,例如代码的合并、冲突解决、代码审查等。
1.4 Git的缺点
- 学习曲线陡峭:Git相对于其他版本控制系统来说,学习曲线较陡峭,需要一定的时间和精力去掌握。
- 需要命令行操作:Git的使用大部分情况下都倾向于使用命令行,对于不熟悉命令行操作的用户来说可能会感到不便。
- 分布式架构导致仓库庞大:每个开发者都拥有完整的代码仓库的副本,当仓库较大时,每次克隆或拉取代码都需要较长的时间和大量的磁盘空间。
- 文件冲突解决复杂:需要手动合并代码,对于不熟悉解决冲突的开发者来说可能会产生困惑。
- 无法跟踪空的文件夹:只能跟踪具有文件的文件夹,无法直接跟踪空的文件夹。
- 不适用于大型二进制文件:对于大型的二进制文件(如图像、音频、视频)的版本控制效率较低。
- 不适用于大规模团队协作:当多个开发者同时对同一分支进行操作时,可能会导致冲突和性能下降。
2. Git安装
在 Mac 上安装 Git 有多种方式。 最简单的方法是安装 Xcode Command Line Tools。 Mavericks (10.9) 或更高版本的系统中,在 Terminal 里尝试首次运行 'git' 命令即可。
$ git --version
如果没有安装过命令行开发者工具,将会提示你安装。
如果你想安装更新的版本,可以使用二进制安装程序。 官方维护的 macOS Git 安装程序可以在 Git 官方网站下载,网址为 Redirecting…。
3. SSH配置
步骤一:先确认Git是否已经配置了ssh,存在id_rsa和id_rsa.pub说明已经配置过ssh。
ls -al ~/.ssh
步骤二:如果Git还没配置ssh,那么按照接下来的配置去设置。
#配置用户名
git config --global user.name "userName"
步骤三:配置用户名关联的邮箱
git config --global user.email "userEmail"
步骤四:继续在命令行敲入一下命令,生成公钥和私钥。
#输入这个命令之后连续敲击三次 回车键
ssh-keygen -t rsa -C "userEmail"
步骤五:查看生成的公钥,并把公钥复制到github上。
cat ~/.ssh/id_rsa.pub
公钥复制到github上(用户头像 -> setting -> SSH and GPG keys)
步骤六:找一个github项目clone到本地。
git clone git@github.com:xxx/xxxx.git
原文地址:https://blog.csdn.net/MCC_MCC_MCC/article/details/143650775
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!