Git是什么

简单介绍:

Git是一个分布式版本控制 系统,用于跟踪文件的更改,特别是在多人协作开发的环境中。

Key:

分布式 版本控制 系统

最常用于软件开发,但也可以用于管理任何类型的文件和文件夹。

Git帮助团队跟踪和管理文件的历史版本,使得多人可以协同工作、进行并行开发,且能随时回溯到之前的版本。

  • 分布式:

ps.

Computer A 和Computer B 之间的箭头并不意味着它们直接相互交互或交换文件,而是它们通过 与服务器的交互,以保持版本同步。

具体来说,这表示 电脑 A 和电脑 B 都可以与服务器进行数据交换 ,并且它们可以 互相同步和获取版本数据


与传统的集中式分布进行比较:

| 特性 | 集中式版本控制系统 (CVCS) | 分布式版本控制系统 (DVCS) |
| 工作模式 | 依赖中央服务器,必须在线才能操作 | 每个开发者有完整的代码库副本,可以离线工作 |
| 容错能力 | 服务器故障会导致数据丢失或无法工作 | 每个开发者持有完整的代码库副本,服务器故障不影响本地工作 |
| 分支与合并 | 分支操作复杂且难以管理 | 支持快速、简便的分支与合并操作,提高开发灵活性 |
| 协作效率 | 需要频繁与中央服务器同步,可能造成延迟和冲突 | 可以本地完成操作后推送,减少等待时间和冲突,提高协作效率 |

灵活性与管理 主要由中央服务器管理,灵活性较低 支持多个远程仓库之间的数据共享和管理,提供更高的灵活性和分布式管理
  • 版本控制:

主要目的是记录文件的历史变化,并支持团队协作,避免文件冲突和丢失。版本控制系统可以让多个开发者在不同的时间、地点同时编辑同一项目,且能够管理每次修改、查看历史版本,甚至恢复到之前的版本

基本操作:

提交(Commit):保存文件的变更记录。

更新(Update):从版本库拉取最新的变更。

分支(Branch):创建独立的开发路径,用于开发新功能或修复bug。

合并(Merge):将不同分支的改动合并到主分支。

Git工作流程:

Git客户端操作流程:

| 操作步骤 | 命令 | 说明 |
| 1. 初始化Git仓库 | git init | 在当前目录下初始化一个新的Git仓库。 |
| 2. 配置用户信息 | git config --global user.name "Your Name" git config --global user.email "[email protected]" | 配置全局用户名和邮箱,用于标记提交记录。 |
| 3. 添加文件到暂存区 | git add <filename> git add . | 将文件添加到暂存区,准备提交。 |
| 4. 提交文件 | git commit -m "Your commit message" | 将暂存区的文件提交到本地版本库,并添加提交信息。 |
| 5. 查看状态 | git status | 查看当前工作目录和暂存区的状态。 |
| 6. 查看历史 | git log | 查看提交历史,查看项目的变更记录。 |
| 7. 创建分支 | git branch <branch-name> | 创建一个新的分支。 |
| 8. 切换分支 | git checkout <branch-name> | 切换到指定的分支。 |
| 9. 创建并切换分支 | git checkout -b <branch-name> | 创建并立即切换到新的分支。 |
| 10. 合并分支 | git merge <branch-name> | 将指定分支的更改合并到当前分支。 |
| 11. 查看分支 | git branch | 查看当前所有分支及所在的分支。 |
| 12. 删除分支 | git branch -d <branch-name> | 删除不再需要的本地分支。 |
| 13. 关联远程仓库 | git remote add origin <repository-url> | 将本地仓库与远程仓库进行关联。 |
| 14. 推送更改到远程仓库 | git push origin <branch-name> | 将本地分支的更改推送到远程仓库。 |
| 15. 拉取远程仓库更改 | git pull origin <branch-name> | 从远程仓库拉取指定分支的最新更改并合并到本地分支。 |

16. 克隆远程仓库 git clone <repository-url> 克隆远程仓库到本地。
  • 工作示意图:
相关推荐
遇到困难睡大觉哈哈1 分钟前
Git推送错误解决方案:`rejected -> master (fetch first)`
大数据·git·elasticsearch
ON.LIN25 分钟前
Git提交本地项目到Github
git·github
九月镇灵将1 小时前
6.git项目实现变更拉取与上传
git·python·scrapy·scrapyd·gitpython·gerapy
wuyijysx1 小时前
ubuntu git cola gui
git·软件工具
九月镇灵将3 小时前
GitPython库快速应用入门
git·python·gitpython
程序猿chen4 小时前
《JVM考古现场(十五):熵火燎原——从量子递归到热寂晶壁的代码涅槃》
java·jvm·git·后端·java-ee·区块链·量子计算
前端三叶草7 小时前
git subtree 最佳实践
git
Code_Geo9 小时前
Git操作指南
git
阳光_你好10 小时前
解决用git bash终端 tail -f 命令查看日志中文乱码问题
开发语言·git·bash
geekmice19 小时前
多个git账户团队写作
git