当前位置: 首页 > news >正文

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.删除分支:合并后,可以删除远程和本地的分支。

http://www.lryc.cn/news/624280.html

相关文章:

  • 数字时代著作权侵权:一场资本与法律的博弈
  • PYTHON让繁琐的工作自动化-函数
  • week2-[循环结构]找出正数
  • Vue3 中使用 Element Plus 完整指南
  • 从哲学(业务)视角看待数据挖掘:从认知到实践的螺旋上升
  • [数据结构] ArrayList 与 顺序表
  • 基于W55MH32Q-EVB 实现 HTTP 服务器配置 OLED 滚动显示信息
  • AI重塑商业格局:从多模态生成到智能应用的2025行业变革与机遇
  • 重温k8s基础概念知识系列四(服务、负载均衡和联网)
  • 视频讲解:CatBoost、梯度提升 (XGBoost、LightGBM)对心理健康数据、交通流量及股票价格预测研究
  • 【网络安全实验报告】实验七:简单的防火墙搭建实验
  • 数据结构(03)——线性表(顺序存储和链式存储)
  • HTTP协议-4-浏览器是怎么抉择HTTP版本的?
  • LeetCode 45.跳跃游戏II:贪心策略下的最少跳跃次数求解
  • 如何在windows下使用usbview查看USB设备信息
  • 局域网视频软件BeeWorks,内网顺畅沟通
  • CloudBase AI ToolKit + VSCode Copilot:打造高效智能云端开发新体验
  • 8.19 note
  • AI心理助手开发文档
  • 《Python学习之使用标准库:从入门到实战》
  • ST05跟踪MRP的运行(MD01)过程
  • Day8--滑动窗口与双指针--1004. 最大连续1的个数 III,1658. 将 x 减到 0 的最小操作数,3641. 最长半重复子数组
  • vite+react+antd,封装公共组件并发布npm包
  • 实践笔记-VSCode与IDE同步问题解决指南;程序总是进入中断服务程序。
  • RocksDB 解密可逆哈希:BijectiveHash的设计奥秘
  • Vue diff简介
  • Rust学习笔记(六)|Rust 中的常用集合(Vector、String、HashMap)
  • MiniMax Agent 上线 Market Place ,AI一键复制克隆网站
  • 部署 HAProxy 高可用
  • python 数据拟合(线性拟合、多项式回归)