当前位置: 首页 > 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 是比较危险的操作,它们会重写历史记录并可能导致数据丢失。确保你知道自己在做什么,并考虑在执行这些操作前备份重要数据。如果你是在团队协作环境中工作,最好事先与团队成员沟通后再执行此类操作。

相关文章:

  • 前端代码生成博客封面图片
  • 寻找两个正序数组的中位数 - 困难
  • 【BotSharp详细介绍——一步步实现MCP+LLM的聊天问答实例】
  • vscode c++编译onnxruntime cuda 出现的问题
  • 浏览器宝塔访问不了给的面板地址
  • 运维职业发展思维导图
  • 幼儿学前教育答辩词答辩技巧问题答辩自述稿
  • React Native/Flutter 原生模块开发
  • BGP实验(联邦及反射器)
  • SQL:MySQL函数:条件函数(Conditional Functions)
  • Day 21 训练
  • Spring+LangChain4j小智医疗项目
  • 如何让open-mpi在不同版本的OS上运行
  • java方法的练习题
  • Python内存管理:赋值、浅拷贝与深拷贝解析
  • 数智管理学(九)
  • 【匹配】Smith-Waterman
  • 【高频面试题】LRU缓存
  • JavaScript - 运算符之逗号操作符与逗号分隔符(逗号操作符概述、逗号操作符用法、逗号分隔符、逗号分隔符用法)
  • Miniconda介绍介绍和使用
  • 小米汽车机盖门陷谈判僵局,车主代表称小米表示“退订会造成崩塌”
  • 上海“城市文明开放麦”全城总动员,樊振东担任首位上海城市文明大使
  • 刘强东坐镇京东一线:管理层培训1800人次,最注重用户体验
  • 病重老人被要求亲自取钱在农业银行门口去世?株洲警方介入
  • 联合国第二届运动会闭幕,刘国梁受邀成为“联合国运动会大使”
  • 佩斯科夫:俄方代表团15日将在伊斯坦布尔等候乌克兰代表团