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

git 的一些操作总结

1. Git 分支及基础操作指令

1.1 创建分支

# 创建新分支
git branch <branch_name>

# 创建并切换到新分支
git checkout -b <branch_name>

1.2 切换分支

# 切换到指定分支
git checkout <branch_name>

# 切换到上一个分支
git checkout -

1.3 查看分支

# 查看本地分支
git branch

# 查看所有分支(包括远程分支)
git branch -a

1.4 合并分支

# 将指定分支合并到当前分支
git merge <branch_name>

1.5 删除分支

# 删除本地分支
git branch -d <branch_name>

# 强制删除本地分支(未合并的分支)
git branch -D <branch_name>

# 删除远程分支
git push origin --delete <branch_name>

2. Git 分支合并冲突解决

2.1 冲突产生的原因

当两个分支对同一文件的同一部分进行了不同的修改,Git 无法自动合并时,就会产生冲突。

2.2 解决冲突的步骤

  1. 合并分支时发生冲突:
    git merge <branch_name>
    
  2. 查看冲突文件:
    Git 会在冲突文件中标记冲突部分,例如:
    <<<<<<< HEAD
    当前分支的内容
    =======
    合并分支的内容
    >>>>>>> branch_name
    
  3. 手动修改冲突文件,保留需要的内容,删除冲突标记。
  4. 添加修改后的文件到暂存区:
    git add <file_name>
    
  5. 完成合并:
    git commit
    

3. 本地仓库与远程仓库的连接与操作

3.1 建立连接

# 克隆远程仓库到本地
git clone <remote_repo_url>

# 添加远程仓库
git remote add origin <remote_repo_url>

3.2 推送代码

# 将本地分支推送到远程仓库
git push origin <branch_name>

# 推送并设置上游分支(首次推送时使用)
git push -u origin <branch_name>

3.3 拉取代码

# 拉取远程分支的最新代码并合并
git pull origin <branch_name>

# 仅拉取远程分支的最新代码(不合并)
git fetch origin <branch_name>

4. Git 跨团队合作

4.1 Fork 工作流

  1. Fork 远程仓库到自己的账号。
  2. 克隆 Fork 的仓库到本地:
    git clone <forked_repo_url>
    
  3. 添加上游仓库(原始仓库):
    git remote add upstream <original_repo_url>
    
  4. 同步上游仓库的最新代码:
    git fetch upstream
    git merge upstream/main
    
  5. 创建新分支进行开发:
    git checkout -b <feature_branch>
    
  6. 推送代码到 Fork 的仓库:
    git push origin <feature_branch>
    
  7. 提交 Pull Request (PR) 到原始仓库。

4.2 分支权限管理

  • 主分支(如 main)通常受保护,只有管理员可以合并代码。
  • 开发人员应在自己的分支上开发,并通过 PR 提交代码。

5. Git 变基(Rebase)

5.1 变基的作用

将当前分支的提交“移动”到目标分支的最新提交之后,使提交历史更加线性。

5.2 变基操作

# 切换到当前分支
git checkout <feature_branch>

# 将当前分支变基到目标分支(如 main)
git rebase main

5.3 解决变基冲突

  1. 变基过程中发生冲突时,Git 会暂停变基。
  2. 手动解决冲突后,继续变基:
    git add <file_name>
    git rebase --continue
    
  3. 如果放弃变基:
    git rebase --abort
    

5.4 变基与合并的区别

  • 合并:保留分支的完整历史,生成一个合并提交。
  • 变基:使提交历史更加线性,但会重写提交记录。

一、定义
基本概念:

变基是将一系列提交按照原有顺序应用到另一个基点上的过程。

这会创建一个新的提交历史,而不会影响原始分支。

与合并的区别:

合并(Merge)会保留两个分支的历史记录,并生成一个新的合并提交。

变基则会重写历史,使得分支历史看起来像是连续的。

二、使用场景
整理提交历史:

当你的本地分支有很多零散的小提交时,可以使用变基将这些提交整理成一个或几个更有意义的提交。

避免不必要的合并提交:

在将特性分支合并到主分支之前,使用变基可以避免产生额外的合并提交,使历史更加清晰。

同步远程分支:

当你的本地分支落后于远程分支时,可以先拉取远程分支的最新更改,然后通过变基将这些更改应用到你的本地分支上。

解决冲突:

在多人协作的项目中,如果多个开发者对同一部分代码进行了修改,使用变基可以帮助更有效地解决冲突。

在这里插入图片描述

总结

  • Git 分支操作包括创建、切换、合并和删除分支。
  • 合并冲突需要手动解决,修改后重新提交。
  • 本地仓库与远程仓库通过 clonepushpull 进行交互。
  • 跨团队合作常用 Fork 工作流和 PR 机制。
  • 变基可以优化提交历史,但需谨慎使用,避免重写公共提交记录。

相关文章:

  • 【入门音视频】音视频基础知识
  • java23种设计模式-工厂方法模式
  • 自学Linux系统软件编程七天
  • 【优选算法】四数之和
  • Python - 代码片段分享 - Excel 数据实时写入方法
  • 力扣LeetCode:1656 设计有序流
  • Python生成器250224
  • 代码随想录Day46 | 647.回文子串,516.最长回文子序列
  • CI/CD的定义
  • Docker 部署 Jenkins持续集成(CI)工具
  • 20250224-代码笔记02-class CVRPTrainer
  • 谈谈 ES 6.8 到 7.10 的功能变迁(3)- 查询方法篇
  • 开源神器KRR:用数据驱动K8s资源优化
  • 【C】堆的应用1 -- 堆排序
  • ubuntu安装配置docker
  • 《数据库索引设计与优化》译本错误纠正(1)
  • C++类和对象(中)
  • Ocelot 请求聚合
  • 【JavaScript】什么是JavaScript?以及常见的概念
  • jupyterhub on k8s 配置用户名密码 简单版
  • 国创会举办国际茶日活动,十余国驻华大使夫人参加
  • 中铁城市发展投资集团原党委书记、董事长黄天德被查
  • “共栖与绵延”系列对话|张国捷、刘帅:以蚁为序的生命网络
  • 梅花奖在上海丨好戏在上海不缺观众,冷门剧种叫好又叫座
  • 长三角哪些城市爱花钱?这个城市令人意外
  • 海口警方通报“司机驾车拖行虐猫”:系意外,未发现故意虐猫行为