版本控制工具
本文最后更新于 2025年1月27日 凌晨
Git 和 GitHub 是两个密切相关但功能不同的工具,以下是它们的主要区别:
1. 定义
- Git:Git 是一种分布式版本控制系统(DVCS),由 Linus Torvalds(Linux 的创始人)开发。它主要用于跟踪文件和目录的变更历史,帮助开发者在软件开发过程中管理代码版本、协作开发以及回溯历史记录等。
- GitHub:GitHub 是一个基于 Git 的代码托管平台,提供了一个集中式的代码存储和管理服务。它不仅支持 Git 的功能,还增加了许多额外的特性,如代码托管、代码审查、问题跟踪、项目管理、文档托管等。
2. 功能
- Git:
- 版本控制:Git 的核心功能是版本控制,允许开发者在本地创建仓库(repository),记录代码的每一次修改,并通过分支(branch)和合并(merge)等功能进行协作开发。
- 本地操作:Git 的操作主要在本地完成,开发者可以在本地仓库中自由地进行提交(commit)、分支切换、回滚等操作,而不需要依赖网络。
- 灵活性:Git 是一个底层工具,开发者可以根据自己的需求和工作流程灵活地使用它。
- GitHub:
- 代码托管:GitHub 提供了一个远程仓库,开发者可以将本地的 Git 仓库推送到 GitHub 上,方便团队协作和代码共享。
- 协作功能:GitHub 提供了 Pull Request(拉取请求)、Code Review(代码审查)、Issues(问题跟踪)、Projects(项目管理)等功能,方便团队协作和项目管理。
- 社交特性:GitHub 是一个开源社区,开发者可以关注其他项目、参与开源贡献、查看其他人的代码,甚至可以发起开源项目。
- 文档和页面托管:GitHub 支持 Markdown 和 HTML 文件的渲染,用户可以创建项目文档或通过 GitHub Pages 托管静态网页。
- 集成服务:GitHub 提供了与 CI/CD(持续集成/持续部署)、代码分析工具、项目管理工具等的集成,方便开发流程的自动化和管理。
3. 使用场景
- Git:
- 适用于开发者在本地进行代码开发和版本管理。
- 适合小型团队或个人项目,尤其是对版本控制有较高要求的场景。
- 可以独立于 GitHub 使用,但需要自己搭建服务器来托管远程仓库(如 GitLab 或 Gitea)。
- GitHub:
- 适用于团队协作开发,尤其是需要多人参与的项目。
- 适合开源项目,因为 GitHub 是全球最大的开源社区之一。
- 适合需要代码托管、代码审查、项目管理等功能的场景。
4. 存储位置
- Git:主要在本地计算机上操作,代码存储在本地仓库中。
- GitHub:代码存储在远程服务器上,用户通过 Git 将本地仓库与远程仓库同步。
5. 开源性
- Git:完全开源,由社区维护,开发者可以自由使用和修改。
- GitHub:虽然基于开源的 Git,但 GitHub 自身是一个商业平台,部分高级功能需要付费使用。
总结
Git 是一个版本控制系统,用于本地代码的版本管理;GitHub 是一个基于 Git 的代码托管平台,提供了丰富的协作和管理功能。简单来说,Git 是工具,GitHub 是基于 Git 的服务平台。
1.GitHub
2.在vscode里使用git进行版本控制
但实际我在使用的时候碰到了很多问题,有些问题我解决了但有些我选择直接绕过去,我只是想要使用git和github作为一个版本控制的工具。
下面是可以参考的链接:
如何使用vscode上传服务器上代码到GitHub【可视化操作】
第一个方法是先建立本地的仓库,然后再上传到github的远程仓库里,但是我在尝试的过程碰到了问题,就是网络问题,本地仓库同步到远程仓库时间的时候,因为网络的问题就一直在转圈圈。。。。
第二种方法是先在github建立一个远程仓库,然后再克隆到我们的本地里,最后在我们的本地仓库做代码更改并同步到远程仓库做版本控制。但是需要注意在克隆仓库到本地的时候记得使用ssh链接,用https会遇到和第一种办法一样的问题甚至下载失败
网络问题我在网上查了很多,大概就是取消代理啥的,或者是挂的梯子有问题。。。但我懒得解决了,用ssh就算了,我的博客之前也是一直因为网络问题不能上传到github,也是换了ssh部署才解决。。。
最后提交git代码的时候会卡住,发现是因为我提交的时候没有写提交消息。。。因为vscode默认你不添加任何消息它就自个生成一个文件来代替消息提交,但是服务器那边可能不接受这样的消息然后就卡住了,参考这个文章:VS Code使用git提交出现卡顿,慢,一直加载_vscode git提交代码一直加载-CSDN博客