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

Git/GitLab日常使用的命令指南来了!

在 GitLab 中拉取并合并代码的常见流程是通过 Git 命令来完成的。以下是一个标准的 Git 工作流,适用于从远程仓库(如 GitLab)拉取代码、切换分支、合并更新等操作。

🌐 一、基础命令:拉取最新代码

        

# 拉取远程仓库的所有更新(不自动合并)
git fetch origin# 拉取并自动合并当前所在分支的远程更新
git pull origin <branch-name>

例如:

git pull origin main

📂 二、切换分支并拉取

如果你想切换到另一个分支(比如 dev)并拉取最新代码:

# 切换到 dev 分支
git checkout dev# 拉取远程 dev 分支的最新提交并合并到本地
git pull origin dev

如果本地还没有该分支,可以使用:

git checkout -b dev origin/dev

🔀 三、合并代码(比如将 feature 分支合并到 dev)

  1. 先切换到目标分支:
git checkout dev
  1. 然后拉取最新的 dev 分支内容(可选):
git pull origin dev
  1. 合并其他分支(比如 feature 分支):
git merge feature-branch-name

例如:

git merge feature/login

⚠️ 四、处理冲突

合并时如果有冲突,Git 会提示冲突文件。你需要手动打开这些文件解决冲突,然后:

# 标记冲突已解决
git add <file># 提交合并结果
git commit

 🧪 五、推荐工作流程示例(完整)

# 更新远程信息
git fetch origin# 切换到开发分支
git checkout dev# 拉取远程 dev 最新代码并合并
git pull origin dev# 创建并切换到自己的功能分支
git checkout -b feature/new-login# 在此进行开发...# 开发完成后,切回 dev 准备合并
git checkout dev# 再次确保 dev 是最新的
git pull origin dev# 合并你的功能分支
git merge feature/new-login# 推送合并后的 dev 分支到远程仓库
git push origin dev

 

基础操作

克隆仓库

git clone <repository-url>

 拉取最新代码

git pull origin <branch-name>

切换分支

git checkout <branch-name>

推送代码

git push origin <branch-name>

 

合并操作

合并其他分支到当前分支

git merge <source-branch>

解决合并冲突后添加文件

git add <file-path>

完成合并(解决冲突后)

git commit

 

处理合并出错或强制合并

在某些情况下,你可能需要放弃本地更改或强制进行合并。注意,以下操作可能会导致数据丢失,请谨慎使用。

放弃本地修改,强制拉取远程代码

git fetch --all
git reset --hard origin/<branch-name>

 强制推送(覆盖远程分支)

git push --force origin <branch-name>

 如果合并出现大量冲突且希望以自己的版本为准,可以先暂存当前更改

git stash
git pull origin <branch-name>
git stash pop

 然后手动解决冲突,或者根据具体情况选择是否要放弃部分更改。

请记住,git reset --hardgit push --force 是比较危险的操作,它们会重写历史记录并可能导致数据丢失。确保你知道自己在做什么,并考虑在执行这些操作前备份重要数据。如果你是在团队协作环境中工作,最好事先与团队成员沟通后再执行此类操作。

http://www.xdnf.cn/news/464041.html

相关文章:

  • Python——文件、异常、模块与包
  • 深入理解浏览器中的 window、document 和 window.parent
  • HarmonyOs开发之———UIAbility进阶
  • NVIDIA Omniverse 现已支持中文!
  • 问题处理——在ROS2(humble)+Gazebo+rqt下,无法显示仿真无人机的相机图像
  • 【LLIE专题】基于码本先验与生成式归一化流的低光照图像增强新方法
  • 【JS】vue3中组件命名问题
  • 世界模型+大模型+自动驾驶 论文小汇总
  • 测试--BUG(软件测试⽣命周期 bug的⽣命周期 与开发产⽣争执怎么办)
  • 深入解析CountDownLatch的设计原理与实现机制
  • VBA_NZ系列工具NZ10:VBA压缩与解压工具
  • spring boot Controller 和 RestController 的区别
  • 第三章:JavaScript引擎 · 行为之火
  • 深入解析HTTP协议演进:从1.0到3.0的全面对比
  • CSP-J/S初赛知识点:计算机网络与Internet基本概念知识点
  • 在C++模板中,设置一个无名模板参数的默认值为0到底是什么含义
  • repmgr集群故障修复
  • 基于DWT的音频水印算法
  • 2025长三角杯数学建模B题教学思路分析:空气源热泵供暖的温度预测
  • Java转Go日记(三十六):简单的分布式
  • 【PmHub后端篇】PmHub中Seata分布式事务保障任务审批状态一致性
  • 【油藏地球物理正演软件ColchisFM】基于数据驱动的油藏参数叠前地震反演研究进展
  • Scrapy框架下地图爬虫的进度监控与优化策略
  • 智能化招标采购新基建:基于DeepSeek大模型+RAG技术的智能知识服务中枢
  • MinerU安装(pdf转markdown、json)
  • uniapp在APP上如何使用websocket--详解
  • 每日算法刷题计划Day7 5.15:leetcode滑动窗口4道题,用时1h
  • 《数字藏品社交化破局:React Native与Flutter的创新实践指南》
  • 游戏引擎学习第283天:“让‘Standing-on’成为一个更严谨的概念
  • 进程替换讲解