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 "your.email@example.com" | 配置全局用户名和邮箱,用于标记提交记录。 |
| 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> 克隆远程仓库到本地。
  • 工作示意图:
相关推荐
zhaqonianzhu37 分钟前
git gerrit安装钩子
git·gerrit
这是个栗子1 小时前
【问题解决】VSCode终端中看不到Git-Bash
ide·git·vscode
悲伤小伞1 小时前
linux_git的使用
linux·c语言·c++·git
天机️灵韵2 小时前
云效DevOps vs Gitee vs 自建GitLab的技术选型
git·开源项目
荔枝吻9 小时前
【AI总结】Git vs GitHub vs GitLab:深度解析三者联系与核心区别
人工智能·git·github
mrbone1110 小时前
Git-git worktree的使用
开发语言·c++·git·cmake·worktree·gitab
小哈龙11 小时前
裸仓库 + Git Bash 搭建 本地 Git 服务端与客户端
开发语言·git·bash
GISer_Jing21 小时前
Git协作开发:feature分支、拉取最新并合并
大数据·git·elasticsearch
高山莫衣1 天前
git rebase多次触发冲突
大数据·git·elasticsearch
码农藏经阁1 天前
工作中常用的Git操作命令(一)
git