初识Github(一)
作者: 福州大学
我是一个温柔的刀客
2024/8/18
最近在完成福州大学西二在线的考核任务,刚刚上手github及其不习惯,觉得平时动动手就能完成的东西背后的知识竟是如此复杂,不免感叹为什么github发表博客不能像CSDN一样自由一样轻松哈哈哈,因此在学习过程中遇到了一些困难,通过自己上网查找相关资料,我对它的理解又加深了一层,我相信我的问题也是绝大多数初学者的问题,因此我用Q&A的方式将这些问题以及答案记录了下来,供我自己复习,同时也为同样有困惑的大家解解惑,写作不易,烦请大家点点赞关注一下哟! |
1.到底什么是git/github,为什么要使用git呢,仓库又是什么意思?
当然可以!让我们从头开始解释 Git 的基本概念,以及为什么我们需要使用 Git。
什么是 Git?
Git 是一个分布式的版本控制系统(VCS),由 Linus Torvalds 在 2005 年创建,最初是为了更好地管理 Linux 内核项目的源代码。Git 设计用于高效、可靠地处理从小型到非常大型的项目版本管理。
什么是 Github?
GitHub 是一个基于 Git 的在线代码托管平台和服务,它不仅提供了版本控制功能,还提供了一系列协作工具,让开发者能够更容易地一起工作。GitHub 是目前全球最大的开源社区之一,被广泛用于软件项目的开发和版本控制。
Git 的作用:
- 版本控制:Git 帮助你跟踪文件和代码的变更历史。
- 备份:通过定期提交更改,Git 可以作为项目的备份系统。
- 协作:Git 允许多个开发者在同一个项目上协同工作,每个人都有自己的工作副本。
- 分支管理:Git 支持轻松创建、合并和删除分支,帮助开发者管理不同的开发线程。
- 冲突解决:当多人同时修改同一份代码时,Git 可以帮助解决这些冲突。
为什么使用 Git?
- 高效性:Git 是非常快速的,即使是处理大型项目也能迅速响应。
- 安全性:每个开发者的本地仓库都包含了完整的项目历史记录,即使远程服务器出现问题,也不会丢失数据。
- 灵活性:Git 的分布式特性意味着每个开发者都可以在离线状态下工作,无需时刻连接到互联网。
- 易于协作:Git 使团队成员之间的代码共享变得简单。
- 易于学习:虽然 Git 初学时可能需要一些时间来适应,但一旦掌握了基本概念,就能非常高效地使用它。
仓库(Repository)
在 Git 中,仓库(Repository)是指用来存放项目文件及其历史版本的地方。每个 Git 仓库都包含了项目的完整历史记录,包括每次提交的信息、文件的变更等。
用博主自己的话说,仓库就相当于一个发表在网络上的文件夹,不同于PC端本地的文件夹,在获得访问权限后,任何人都可以进入其他人的仓库,这样大大提高了团队工作的效率.
Git 的工作流程:
- 初始化仓库:使用
git init
命令来创建一个新的 Git 仓库。- 添加文件:使用
git add
命令将文件添加到暂存区(Staging Area),准备进行提交。- 提交更改:使用
git commit
命令将暂存区中的更改提交到仓库中。- 查看状态:使用
git status
命令查看当前仓库的状态。- 查看提交历史:使用
git log
命令查看提交历史。- 分支管理:使用
git branch
创建、查看、切换和删除分支。- 合并分支:使用
git merge
将一个分支的更改合并到另一个分支。- 推送(Push):使用
git push
将本地仓库中的提交同步到远程仓库。- 拉取(Pull):使用
git pull
从远程仓库获取更新并合并到本地仓库。- 克隆(Clone):使用
git clone
命令复制一个远程仓库到本地。使用 Git 的场景:
- 个人项目:用于管理个人项目的版本控制。
- 团队项目:用于团队成员之间的代码共享和版本控制。
- 开源项目:用于开源项目的贡献和维护。
示例:
假设你正在开发一个网站,并希望使用 Git 来管理你的项目:
- 初始化仓库:在项目目录中运行
git init
来创建一个新的 Git 仓库。- 添加文件:使用
git add
命令将文件添加到暂存区。- 提交更改:使用
git commit -m "Initial commit"
将文件的更改提交到仓库中。- 查看状态:使用
git status
查看当前仓库的状态。- 推送更改:使用
git push
将本地更改同步到远程仓库。
2.为什么要使用版本控制系统(VCS)呢?
**版本控制系统(Version Control System, VCS)是一种帮助软件开发者和其他团队成员管理文件变更历史的技术。**想象一下,你在写一篇论文或者制作一份重要文档,随着时间的推移,你会不断地修改这份文档。如果没有版本控制系统,当你需要查看之前的某个版本,或者不小心删除了一些重要的内容时,可能会感到非常头疼。
版本控制系统就像是一个时间机器,它记录每一次对文件所做的更改,并且允许你回到过去的任何版本。这在软件开发中尤其有用,因为一个项目可能涉及到多个文件,并且经常有多人同时参与开发。
下面是一个简单的例子来说明版本控制系统的工作原理:
创建初始版本:当你开始一个新的项目时,你可以将你的代码存入版本控制系统中。这个初始版本被称为“提交”(commit)。
进行修改:随着时间的推移,你可能会添加新功能、修复错误等。每次你完成一些工作后,你可以将其保存为一个新的提交。
回溯历史:如果在某个时候你发现之前的一个版本更好,你可以轻松地回到那个版本。这就像使用撤销功能,但更为强大,因为你不仅可以看到整个项目的状态,还可以看到是谁做的修改以及为什么做这些修改。
多人协作:当一个项目由多个人共同开发时,每个人都可以有自己的副本。他们可以在自己的副本上进行修改,然后将这些修改合并回主副本中。这样可以避免不同人之间的冲突,并确保每个人都在最新的代码基础上工作。
分支与合并:为了尝试新的功能或者修复某些特定的问题,开发者可以创建一个分支,在不影响主副本的情况下进行实验。完成后,可以将这些更改合并回主副本。
常见的版本控制系统:
- 集中式版本控制系统(如 SVN):所有的版本信息都存储在一个中央服务器上,用户从服务器获取最新的版本或者上传自己的更改。
- 分布式版本控制系统(如 Git):每个用户的电脑上都有完整的版本历史记录。这意味着即使没有网络连接,用户也可以继续工作,并且可以在任何时候将更改同步到远程服务器上。(主流)
版本控制系统极大地提高了开发效率,减少了出错的可能性,并且使得多人合作变得更加容易。
3.前端和后端分别指的是什么?
当我们谈论网站或者应用程序开发时,“前端”和“后端”这两个词经常被提到。简单来说,前端和后端指的是不同的部分,它们共同协作来构建一个完整的网站或应用。
举个通俗易懂的小例子,你去一家饭店里吃饭,服务员的待客,上菜等让你看得见的就是前端;厨师采购食材,烹饪的过程等你所看不见的就是后端.
前端(Frontend)
前端通常被称为“客户端”或“用户界面”。它指的是用户可以直接看到和交互的部分,比如网页上的按钮、文字、图片、视频等等。当你浏览一个网站时,所有你能够直接看到和操作的东西都属于前端。
前端技术主要包括:
- HTML:用来定义网页结构的语言。
- CSS:用来设计网页外观(颜色、字体、布局)的语言。
- JavaScript:用来增加网页互动性的编程语言,比如表单验证、动态效果等。
后端(Backend)
后端通常被称为“服务器端”。它处理的是网站背后的数据存储、逻辑处理以及与数据库的交互等工作。用户虽然不能直接看到后端的工作,但它却是网站运行的基础。当用户通过前端进行操作时,比如填写表单、上传文件等,这些数据会被发送到后端进行处理。
后端技术包括:
- 服务器:用于存放网站文件和数据库的地方。
- 数据库:用来存储数据的地方,比如用户的个人信息、文章内容等。
- 服务器端语言:如 Java、Python、PHP、Ruby 等,用来编写处理数据和业务逻辑的程序。
总结
- 前端关注的是网站或应用的外观和用户体验。
- 后端关注的是网站或应用的功能实现、数据管理和逻辑处理。
举个例子,假设你要注册一个网站账号:
- 当你填写用户名、密码并点击“注册”按钮时,这些操作都是在前端完成的。
- 点击之后,这些数据会发送到后端,后端会检查用户名是否已经被占用、密码是否符合安全要求等,然后将信息存入数据库。
4.为什么git要使用CLI(命令行操作)的方式呢,这样对于用户操作来说不是很麻烦吗?
确实,对于初次接触 Git 的用户来说,命令行界面(CLI)可能会显得有些复杂和难以掌握。然而,使用 CLI 有许多优点,这也是为什么 Git 默认采用 CLI 方式的原因之一。下面是一些使用 CLI 的好处:
CLI 的优点:
高效性:一旦熟悉了 Git 的命令行语法,你可以在很短的时间内完成复杂的操作,比如批量修改文件、合并分支、撤销更改等。在图形界面中,这些操作可能需要多个步骤才能完成。
灵活性:CLI 提供了高度的灵活性。你可以组合多个命令来完成特定的任务,或者编写脚本来自动化常见的操作流程。
跨平台一致性:CLI 在所有平台上都是一致的。无论你使用的是 Windows、macOS 还是 Linux,命令行语法都相同,这使得学习和迁移变得容易。
集成性:CLI 很容易与其他工具和系统集成。你可以将 Git 命令嵌入到脚本、持续集成/持续部署(CI/CD)管道、自动化任务中。
可移植性:你不需要安装任何特定的应用程序来使用 Git。只要安装了 Git,你就可以在任何地方通过命令行来管理你的仓库。
可记录性:CLI 命令可以被记录下来,便于以后回顾或重复执行。这对于团队协作和项目管理来说非常有用。
高级功能:CLI 提供了更高级的功能,如复杂的数据分析、过滤、检索等,这些功能在图形界面中可能不容易实现。
用博主自己的话来说,CLI操作的方式就相当于写代码一样,虽然过程可能会很辛苦,但是最后能够达到事半功倍的效果,可以解决一些复杂的问题或者任务.
GUI 工具的优势:
尽管 CLI 有很多优点,但对于一些用户来说,图形用户界面(GUI)工具可能更友好,特别是对于那些不习惯命令行操作的新手。GUI 工具的优点包括:
- 直观性:GUI 提供了可视化界面,使操作更加直观。
- 易于上手:对于初学者来说,GUI 的学习曲线较低。
- 错误减少:GUI 通常会提供错误提示和帮助信息,减少了因命令行语法错误导致的问题。
- 实时反馈:GUI 工具可以提供即时的视觉反馈,帮助用户了解当前的状态和进展。
结合使用:
实际上,很多 Git 用户都会结合使用 CLI 和 GUI 工具。例如,你可以在图形界面上进行日常的基本操作,而在 CLI 中处理更复杂的任务。
常见的 GUI 工具:
- SourceTree:一款流行的跨平台 Git 客户端。
- GitHub Desktop:GitHub 提供的官方客户端。
- GitKraken:另一款跨平台的 Git 客户端。
- Sourcetree:Atlassian 提供的一款免费的 Git 和 Mercurial 客户端。
总之,CLI 和 GUI 工具各有优缺点。随着经验的增长,你可能会发现自己更倾向于使用 CLI,因为它提供了更高的效率和灵活性。但如果你刚开始使用 Git,可以从 GUI 工具开始,逐渐过渡到 CLI。