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

GitLab 公共仓库:coding 用到的 git 命令

在公司的 gitlab 公共仓库中写代码做项目时,主要涉及以下常用 git 命令:

一、单个命令讲解

1. 拉取代码

(1)git clone [仓库 URL]‌

  • 克隆远程仓库到本地(需确保 URL 正确) ‌

(‌2)git pull [远程仓库名] [分支名]‌

  • 从远程仓库拉取最新代码(默认拉取 origin 仓库的 main 分支)

(3)git fetch [远程仓库名] [分支名]‌

  • 仅下载远程分支更新,不自动合并

2. 分支操作

(‌1)git checkout [分支名]‌

  • 切换到指定分支(如 main、develop 等)

  • 加选项“-b”即创建并切换到该分支

(‌2)git switch [分支名]‌

  • 切换分支(仅 Git 2.23+ 版本支持)

(‌3)git branch [新分支名]‌

  • 创建并切换到新分支(如 feature-branch)

(4)git merge [分支名]

  • 将指定分支的代码合并到当前分支

3. 代码管理

(1)git init

  • 初始化一个新的 git 仓库

  • 进入到目标文件夹,运行该命令在当前文件夹下创建一个 .git 文件夹,作为 git 的仓库

(2)git pull

  • 更新本地仓库,将远程仓库的改动拉取到本地

  • 运行该命令命令更新本地仓库,并将远程仓库的改动拉取到本地

(‌3)git status‌

  • 查看本地仓库状态(是否需要提交、是否存在冲突等)

  • 运行该命令可以查看项目下存在改动的所有文件

(4)git diff [文件名]

  • 查看指定文件的详细的修改内容

(‌5)git add [文件名/目录]‌

  • 将文件添加到暂存区

  • 建议每次检查完某个文件单独执行 add,避免只用“add .”批量执行操作

(‌6)git commit -m "描述信息"‌

  • 提交暂存区的代码(需配合 add 命令一起使用)

  • “描述信息”:提炼出本次提交的关键信息即可

(7)git push -u origin [分支名]

  • 将本地仓库的改动推送到远程仓库

  • 建议推送到自己的分支上,避免影响公共仓库

  • -u 选项:建立本地分支与远程分支的跟踪关系

(8)git log

  • 查看提交历史记录

4. 冲突处理

(‌1)git rebase‌

  • 将本地提交重新排列到远程分支最新提交之上(保持线性历史)

(2)git merge [远程分支]‌

  • 合并远程分支到当前分支(保留合并记录)

5. 团队协作

(1)git fetch‌

  • 更新本地跟踪的远程分支信息(不自动合并)

(‌2)git log --graph‌

  • 查看分支合并历史(辅助团队协作排查问题)

6. 注意事项

  • 确保使用公司网络环境可访问仓库

  • 避免在公共分支执行 rebase 操作(可能破坏他人提交历史)

  • 定期使用 git fetch 更新远程跟踪分支信息

二、常用演示示例

  • “张三”在某公司的公共代码仓库中进行项目的开发,该仓库的主分支(主干)假设为“master”:

# 若是第一次开发,则需从仓库中克隆代码到本地
git clone git@git.abcd.ef:gh/test.git
# git@git.abcd.ef:gh/test.git 为仓库的 URL# 仓库为公共仓库,故需要创建自己的开发分支,不可在主分支 master 进行开发
git checkout -b zhangsan
# 把自己本地的分支推送到远程仓库
git push origin zhangsan# 查看当前仓库的所有分支(本地的)
git branch
# 切换到其他的分支,假设本地有另一个分支 zhangsan01
git checkout zhangsan01# 若非第一次开发,即之前已经将代码克隆到本地了,需要在开发前拉取仓库的最新代码,方可进行开发(因为公共仓库存在已经有人提交过最新代码的可能性)
git pull
git pull origin master
# 以上两个命令看情况使用,判断有无跟踪关系# 完成代码开发后,提交之前进行检查
git status
git diff [文件名]# 检查无误后,再进行暂存(建议文件需要逐个检查,逐个暂存,不建议批量)
git add [文件名]# 完成所有修改文件的暂存后,方可进行提交
git commit -m [zhangsan coding]# 最后推送到远程的自己的分支
git push -u origin zhangsan
# 最后再 gitlab 上检查完后,发送 merge 请求(若无权限审批该请求,找有权限的人即可)
  • 上述经历根据个人经历而言,仅供参考

三、补充 - rebase 情况

  • 首先要注意使用 rebase 的场景:未共享给他人的个人分支

  • 在为期较长时间的代码开发过程,每天开发前使用一遍 rebase 可让合并简单化

  • 建议:在最后合并 CI 之前,再进行一遍 rebase

1. 个人分支

  • 目的:保持分支 zhangsan 与主分支 master 同步,避免最终合并时冲突

# 每天开始工作前:
git checkout master
git pull origin master          # 拉取最新代码
git checkout zhangsan
git rebase master               # 将本地提交“移动”到最新 main 上

2. 整理提交历史

  • 如果 zhangsan 分支上有大量琐碎提交(如“fix typo”等),可以通过交互式 rebase 整理

# 合并/编辑提交
git rebase -i main
http://www.lryc.cn/news/602307.html

相关文章:

  • Springboot社区养老保险系统小程序
  • 一文理清 Linux 软件管理核心知识:从程序组成到包管理工具
  • Java面试宝典:MySQL8新特性
  • shell学习从入门到精通(第二部分)
  • 机器学习sklearn:决策树的参数、属性、接口
  • nccl中__syncthreads的作用及例子 (来自deepseek)
  • 135端口与WMI攻防全解析
  • 网络安全基础知识【4】
  • python中类变量 __slots__ 解析
  • 5190 - 提高:DFS序和欧拉序:树上操作(区域修改1)
  • 排序算法 (Sorting Algorithms)-JS示例
  • AI原生应用:从人机关系重构到数字空间革命
  • RF随机森林分类预测+特征贡献SHAP分析,通过特征贡献分析增强模型透明度,Matlab代码实现,引入SHAP方法打破黑箱限制,提供全局及局部双重解释视角
  • 力扣7:整数反转
  • OCR 赋能合同抽取:不良资产管理公司的效率加速器
  • Kafka 顺序消费实现与优化策略
  • 数据结构之顺序表链表栈
  • 【Git】Linux-ubuntu 22.04 初步认识 -> 安装 -> 基础操作
  • 图片PDF识别工具:扫描PDF文件批量OCR区域图识别改名,识别大量PDF区域内容一次性改名
  • 基于LSTM和GRU的上海空气质量预测研究
  • 图片上传 el+node后端+数据库
  • 如何用VUE实现用户发呆检测?
  • Android通知(Notification)全面解析:从基础到高级应用
  • 【前端】解决Vue3+Pinia中Tab切换与滚动加载数据状态异常问题
  • 05 OpenCV--图像预处理之图像轮廓、直方图均衡化、模板匹配、霍夫变化、图像亮度变化、形态学变化
  • 数据结构:下三角矩阵(Lower Triangular Matrix)
  • MySQL SQL性能优化与慢查询分析实战指南:新手DBA成长之路
  • Eigen 中矩阵的拼接(Concatenation)与 分块(Block Access)操作使用详解和示例演示
  • 简明量子态密度矩阵理论知识点总结
  • 搜索二维矩阵Ⅱ C++