Git版本控制与协作

一、Git 基础概念

1.版本控制系统(VCS):Git 是一种分布式版本控制系统。他能追踪文件的变化,记录项目的每一个版本。

2.仓库:存储项目所有文件和版本历史的文件夹。

(1)本地仓库:位于本地电脑上的项目副本。

(2)远程仓库:位于服务器上的项目副本,通常是 GitHub、GitLab 等平台。

3.工作区:正在编辑的本地文件目录。

4.暂存区:一个中间区域,用于存放下一次提交的内容。

5.提交:将暂存区的内容正式保存到本地仓库,形成一个版本。每一次提交都有一个唯一的哈希值和一段描述信息。

二、基本操作

  1. git init:在你的项目文件夹中初始化一个本地 Git 仓库。

  2. git status:查看工作区和暂存区的状态。这个命令能告诉哪些文件被修改了,哪些文件可以被提交。

  3. git add <文件名>:将工作区的修改添加到暂存区。

4.git commit -m "提交信息":将暂存区的内容提交到本地仓库,并附上清晰的提交信息。

5.示例

(1) git init:创建一个新仓库。

(2)修改文件

(3) git status:查看修改。

(4) git add .:将修改添加到暂存区。

(5) git commit -m "完成新功能":提交修改。

三、分支和合并

  1. git branch:查看本地所有分支。

  2. git checkout <分支名>:切换到指定的分支。

  3. git checkout -b <新分支名>:创建并切换到新分支。

  4. git merge <分支名>:将指定分支的修改合并到当前分支。

5.示例

(1)git check main:确保你在主分支。

(2) git pull:拉取远程最新代码,保证本地代码是最新的。

(3)git check -b feature-a:创建一个名为 feature-a 的新分支。

(4)在 feature-a 分支上开发新功能,并多次提交。

(5)git checkout main:切换回主分支。

(6)git merge feature-a:将 feature-a 分支的修改合并到 main 分支。

四、远程仓库操作

1.git remote:管理远程仓库。

(1) git remote -v:查看当前仓库关联的远程仓库。

(2) git remote add origin <远程仓库 URL>:将本地仓库与一个远程仓库关联起来。origin 是默认的远程仓库名称。

2.git push:将本地提交推送到远程仓库。

(1)git push -u origin main:第一次推送时,需要使用-u 参数将本地的 main 分支与远程的 main 分支关联起来。

(2)git push:之后只需要简单地执行 git push 即可。

3.git pull:将远程仓库的最新代码拉取到本地仓库

(1)git pull origin main:拉取远程 origin 仓库的 main 分支

(2)git pull:如果已设置跟踪分支,可以直接使用 git pull。

五、GitHub工作流

1.克隆仓库:团队成员通过 git clone 将项目从 GitHub 克隆到本地。

2.创建新分支:每个成员为新功能或修复创建一个独立的分支。

git checkout -b feature-a

3.开发并提交:在新分支上进行开发,并多次提交(git add -> git commit)。

4.推送分支:将自己的新分支推送到 GitHub。

git push origin feature-a

5.创建拉取请求:在 GitHub页面上,为此分支创建一个拉取请求(PR)。

(1)PR 是一个协作和代码审查的平台。团队成员可以在 PR 中审查代码、提意见、讨论问题。

6.合并代码:审查通过后,将 PR 合并到主分支(通常是 main 或 dev)。

7.删除分支:合并后,可以删除远程和本地的分支。

相关推荐
深海鱼在掘金2 天前
Git 完全指南 —— 第1章:Git 概览与版本控制演进
git
noravinsc3 天前
关于Git Flow
git
蜜獾云3 天前
在Git中配置用户名和密码
git
scx_link3 天前
通过git bash在本地创建分支,并推送到远程仓库中
开发语言·git·bash
南大白3 天前
IntelliJ IDEA 运行时的 JVM 本地内存溢出崩溃
git
码农小旋风3 天前
Claude Code 基础用法大全:对话、分析、修改、测试、Git 和工作流
人工智能·git·chatgpt·claude
南大白3 天前
Git 撤回提交完整方案
git
像风一样的男人@3 天前
python --实现代理服务器
git·ui
sbjdhjd3 天前
从零搭建企业级 CI/CD(下):Jenkins+GitLab+Harbor 全链路实战指南
git·servlet·ci/cd·云原生·云计算·gitlab·jenkins
码云数智-大飞3 天前
Go Channel 详解:并发通信的正确姿势
前端·数据库·git