Git仓库托管基本使用05——远程仓库操作

embedded/2025/2/12 0:09:11/

推送

推送操作是将本地分支的更改同步到远程仓库。以下是具体步骤和命令:

1.1 确保本地更改已提交

在推送之前,你需要确保所有更改已经提交到本地分支。可以使用以下命令检查状态并提交更改:

# 查看当前更改
git status# 添加所有更改到暂存区
git add .# 提交更改到本地分支
git commit -m "Your commit message"
1.2 推送更改到远程分支

使用 git push 命令将本地分支的更改推送到远程仓库:

# 推送当前分支到远程仓库
git push origin <branch-name>
  • origin 是远程仓库的默认名称(你可以通过 git remote -v 查看远程仓库的名称和地址)。

  • <branch-name> 是你当前工作的本地分支名称。

1.3 推送新分支到远程仓库

如果你创建了一个新的本地分支并希望将其推送到远程仓库,可以使用以下命令:

# 推送新分支到远程仓库
git push -u origin <new-branch-name>
  • -u 参数会设置上游分支(upstream),这样后续的 git pushgit pull 就可以省略分支名称。

1.4 强制推送

在某些情况下,你可能需要强制推送更改(例如,当你需要覆盖远程分支的内容时)。请注意,强制推送可能会导致远程仓库的历史记录丢失,应谨慎使用

# 强制推送当前分支
git push origin <branch-name> --force

或者更安全的方式:

# 强制推送并保留远程仓库的提交历史
git push origin <branch-name> --force-with-lease

 抓取(Fetch)

1.1 定义

git fetch 是一个相对“被动”的操作,它从远程仓库获取最新的分支和提交信息,但不会自动合并这些更改到本地分支。抓取操作只是将远程仓库的最新状态更新到本地的远程分支引用中(例如 origin/main)。

1.2 常见用途
  • 查看远程更改:当你只想检查远程仓库的最新状态,但不想立即合并这些更改时,fetch 是一个非常有用的命令。

  • 更新远程分支信息:在进行代码审查或比较分支差异时,fetch 可以确保你的本地仓库拥有最新的远程分支信息。

1.3 常用命令
# 从默认远程仓库(通常是 origin)抓取所有分支的最新信息
git fetch# 从指定的远程仓库抓取
git fetch <remote-name># 仅抓取指定的分支
git fetch <remote-name> <branch-name>
1.4 示例

假设远程仓库的 main 分支有新的提交,运行以下命令:

git fetch origin

此时,远程分支 origin/main 会更新为最新的状态,但你的本地分支(如 main)不会自动更改。

你可以通过以下命令查看远程分支的最新状态:

git log origin/main

拉取(Pull)

2.1 定义

git pull 是一个更“主动”的操作,它不仅会从远程仓库获取最新的更改,还会自动合并这些更改到当前的本地分支。本质上,git pullgit fetchgit merge 的组合操作。

2.2 常见用途
  • 更新本地分支:当你希望将远程仓库的最新更改合并到你的本地分支时,pull 是最直接的方式。

  • 保持本地分支与远程分支同步:在多人协作的项目中,定期使用 pull 可以确保你的本地代码是最新的。

2.3 常用命令
# 从默认远程仓库拉取并合并到当前分支
git pull# 从指定的远程仓库拉取并合并到当前分支
git pull <remote-name> <branch-name>
2.4 示例

假设你在本地的 main 分支上工作,远程的 main 分支有新的提交。运行以下命令:

git pull origin main

Git 会自动执行以下操作:

  1. 从远程仓库 originmain 分支获取最新的提交(相当于 git fetch origin main)。

  2. 将这些更改合并到你的本地 main 分支(相当于 git merge origin/main)。

如果在合并过程中出现冲突,Git 会提示你手动解决冲突。


http://www.ppmy.cn/embedded/161461.html

相关文章

如何精确掌控网页布局?深入解析 CSS 样式与盒模型

系列文章目录 01-从零开始学CSS选择器&#xff1a;属性选择器与伪类选择器完全指南 02-避免样式冲突&#xff1a;掌握CSS选择器优先级与层叠规则的终极指南 03-如何精确掌控网页布局&#xff1f;深入解析 CSS 样式与盒模型 文章目录 系列文章目录前言一、CSS 样式基础1.1 字体…

MATLAB | 基于Theil-Sen斜率和Mann-Kendall检验的栅格数据趋势分析

最近看到一些博主分享关于 SenMK 检验的代码&#xff0c;对于新手来说可能有点复杂。我们编写了一段 MATLAB 代码&#xff0c;能够一次性解决这些问题&#xff0c;简化操作流程。我们还准备了几个关于趋势检验的空间分布图&#xff0c;供大家参考。 一、Sens Slope和Mann-Kenda…

【Java 面试 八股文】Redis篇

Redis 1. 什么是缓存穿透&#xff1f;怎么解决&#xff1f;2. 你能介绍一下布隆过滤器吗&#xff1f;3. 什么是缓存击穿&#xff1f;怎么解决&#xff1f;4. 什么是缓存雪崩&#xff1f;怎么解决&#xff1f;5. redis做为缓存&#xff0c;mysql的数据如何与redis进行同步呢&…

< 自用文儿 > 在 Ubuntu 24 卸载 Docker 应用软件与运行的容器

环境&#xff1a; Host: usw OS: Ubuntu 24.04 TLS 目标: 卸载在运行的 Docker APP。 &#xff08;上运行了一个 container: 可以在线看 WSJ RSS 新闻&#xff0c;都 docker 预装两个网口&#xff0c;今天发现路由表有些看不懂&#xff0c;决定卸载&#xff09; 卸载 Dock…

Go 语言环境安装指南

Go 语言环境安装指南 引言 Go 语言,也称为 Golang,是一种开源的静态强类型、编译型编程语言。由于其高效的并发支持和简洁的语法设计,Go 语言受到了全球开发者的喜爱。本指南旨在帮助您快速了解如何安装 Go 语言环境。 1. 安装前准备 在安装 Go 语言之前,您需要满足以下…

储能系统-系统架构

已更新系列文章包括104、61850、modbus 、单片机等&#xff0c;欢迎关注 IEC61850实现方案和测试-1-CSDN博客 快速了解104协议-CSDN博客 104调试工具2_104协议调试工具-CSDN博客 1 电池储能系统&#xff08;BESS&#xff09; 架构 电池储能系统主要包括、电池、pcs、本地控制…

学JDBC 第二日

数据库连接池 作用 使数据库连接达到重用的效果&#xff0c;较少的消耗资源 原理 在创建连接池对象时&#xff0c;创建好指定个数的连接对象 之后直接获取连接对象使用即可&#xff0c;不用每次都创建连接对象 从数据库连接池中获取的对象的close方法真的关闭连接对象了吗…

SQL最佳实践(笔记)

写在前面&#xff1a; 之前baeldung的Java Weekly &#xfeff;Reviews里面推荐了一篇关于SQL优化的文章&#xff0c;正好最近在学习数据库相关知识&#xff0c;记一些学习笔记 原文地址&#xff1a;SQL Best Practices Every Java Engineer Must Know 1. 使用索引 使用索引…