【linux命令】git命令简单使用

git命令简单使用

  • 1. 将代码下载到到本地
  • 2. 查看分支是否正确
  • 3. 将工作目录中的变更添加到暂存区,为下一次提交做准备
  • 4. 提交更改,添加提交信息
  • 5. 将本地的提交推送到远程仓库
  • 6.从远端仓库拉取分支代码
  • 7.查看修改日志
  • 8. 解决冲突


1. 将代码下载到到本地

git clone的基本作用是从远程仓库克隆一个副本到本地。

#克隆远程仓库到当前目录(自动创建项目文件夹)
git clone https://github.com/user/repo.git#克隆特定分支(--branch 或 -b)
git clone -b release https://github.com/user/repo.git#浅克隆(仅最新提交历史)
git clone --depth 1 https://github.com/user/repo.git#克隆单一分支(节省空间)
git clone --single-branch -b release https://github.com/user/repo.git

举例:
git clone --depth 1 -b release https://github.com/user/repo.git

2. 查看分支是否正确

git branch
在这里插入图片描述

3. 将工作目录中的变更添加到暂存区,为下一次提交做准备

git add

# 添加单个文件
git add README.md# 添加多个文件(支持通配符)
git add *.c *.h# 添加整个目录(递归添加)
git add src/# 添加所有变更(包括新建、修改,但不包括删除)
git add .# 添加所有变更(包括新建、修改和删除)
git add -A

4. 提交更改,添加提交信息

基础提交操作

# 标准提交(需先git add)
git commit -m "修复登录验证逻辑"# 自动暂存所有已跟踪文件的修改并提交
git commit -a -m "优化数据库连接池配置"# 修改最近一次提交(修正拼写/添加文件)
git commit --amend# 提交文件
git commit -F 1.txt

5. 将本地的提交推送到远程仓库

# 推送到默认上游分支(需提前设置跟踪)
git push# 明确指定远程仓库和分支
git push origin main# 推送本地分支到远程同名分支(自动创建)
git push origin feature/login# 强制覆盖远程分支(谨慎使用)
git push --force-with-lease origin main

举例:
git push --force-with-lease origin release
正常情况下,如果这个过程没有其他人提交代码,就会正常推送到远端仓库。

6.从远端仓库拉取分支代码

# 从默认上游分支拉取并合并(等效于 fetch + merge)
git pull# 明确指定远程仓库和分支
git pull origin develop# 拉取并自动变基(避免合并提交)
git pull --rebase origin main# 拉取所有远程分支更新
git pull --all

举例(都是自己经常使用):
git pull --rebase --force-with-lease origin release

7.查看修改日志

# 基础历史查看(带完整信息)
git log#显示当前分支比远程发布分支多出的提交(即本地尚未合并到该远程分支的修改)
git log release..HEAD          
会列出在远程分支release-..之后到当前本地 HEAD 之间的提交。

8. 解决冲突

首先,当我执行git push的时候,如果远程仓库已经有了我本地没有的新提交,git会拒绝我的推送,并提示需要先拉取最新的变更。这时候,我需要先将远程的更新合并到本地,解决可能的冲突之后,再重新推送。

那具体应该怎么做呢?可能有两种方法:一种是使用git pull,另一种是先git fetch然后合并或者变基。让我理清这两种方法的区别。git pull实际上是git fetch加上git merge的快捷方式,而如果使用git fetch之后手动合并或者变基,可以更灵活地控制合并过程。

假设我选择使用git pull,这时候git会自动合并远程的修改和本地的提交。如果有冲突的话,git会提示我解决冲突,然后提交合并后的结果。之后,我就可以再次尝试推送了。不过,自动合并可能会产生一个合并提交,有些人可能更倾向于保持线性的提交历史,这时候可能需要使用git pull --rebase,这样可以将我的本地提交变基到远程分支的最新提交之上,避免额外的合并提交。

不过,在使用rebase的时候需要注意,如果我已经将本地提交推送到远程过,那么变基可能会改变提交历史,导致后续推送出现问题。不过在这个场景中,因为我还没有成功推送过,所以使用rebase应该是安全的。

接下来,我应该按照以下步骤操作:

  1. 先执行git pull --rebase origin 分支名,这样可以将远程的更改拉取下来,并将我的本地提交应用到这些更改之后。
  2. 如果在rebase过程中出现冲突,需要手动解决冲突,然后使用git add 文件名来标记冲突已解决,接着执行git rebase --continue继续变基过程。
  3. 完成rebase之后,再次执行git push,这时候应该就能成功推送到远程仓库了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/80845.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

debian系统redis-dump安装

1. ​Ruby 环境​ Redis-dump 是一个 Ruby 工具,需先安装 Ruby 和 RubyGems。 安装命令​: sudo apt update sudo apt install ruby-full build-essential[roota29d39f5fd10:/opt/redis-dump/bin# apt install ruby-full build-essential Reading pac…

微软押注“代理式AI网络”:一场重塑软件开发与工作方式的技术革命

在 2025 年 Build 开发者大会上,微软正式发布了其面向“开放代理式网络(Open Agentic Web)”的宏大战略,推出超过 50 项 AI 相关技术更新,涵盖 GitHub、Azure、Windows 和 Microsoft 365 全线产品。这一系列更新的核心…

【音频】wav文件如何解析编码格式(压缩格式)?

要确定一个WAV文件的编码格式,可以通过以下几种方法实现,包括使用操作系统自带工具、专业音频软件或编程解析文件头信息。以下是详细说明: 一、通过文件属性查看(Windows/macOS) 1. Windows系统 步骤: 右…

算法打卡第三天

10.长度最小的子数组 (力扣209题) 给定一个含有 n 个正整数的数组和一个正整数 target 。 找出该数组中满足其总和大于等于 target 的长度最小的 子数组 [numsl, numsl1, ..., numsr-1, numsr] ,并返回其长度**。**如果不存在符合条件的子…

数字电子技术基础(六十二)——使用Multisim软件绘制边沿触发的D触发器和JK触发器

1 使用Mulitism软件模拟时钟触发的D触发器 D触发器是一种基本的数字电路存储元件,它在时钟信号的边沿将输入数据D传递到输出Q。下面开始使用Multisim软件来模拟时钟触发的D触发器。 器件选择: 触发器选择:在组选项栏中点击Misc Digital&am…

自动获取新版本 js 静态文件

场景 代码里有静态js文件,发布一个版本1.0在真实环境,再修改重新发布2.0,用户如何得到新版本? 方法 一、文件名哈希策略(最推荐) 通过构建工具为文件生成唯一哈希值,使每次更新后的文件名不同…

第13天-用BeautifulSoup解析网页数据:以百度热搜可视化为例

一、BeautifulSoup简介 BeautifulSoup是Python最受欢迎的HTML/XML解析库之一,它能将复杂的网页文档转换为树形结构,支持多种解析器(如lxml、html.parser)。配合requests库,可以快速构建网页爬虫项目。 二、环境准备 pip install requests beautifulsoup4 matplotlib 三…

PyTorch中cdist和sum函数使用详解

torch.cdist 是 PyTorch 中用于计算**两个张量之间的成对距离(pairwise distance)**的函数,常用于点云处理、图神经网络、相似性度量等场景。 基本语法 torch.cdist(x1, x2, p2.0)参数说明: 参数说明x1一个形状为 [B, M, D] 或 …

智能视觉检测技术:制造业质量管控的“隐形守护者”

在工业4.0浪潮的推动下,制造业正经历一场以智能化为核心的变革。传统人工质检模式因效率低、误差率高、成本高昂等问题,逐渐难以满足现代生产对高精度、高速度的需求。智能视觉检测技术作为人工智能与机器视觉融合的产物,正成为制造业质量管控…

水浒后传-暹罗国建立新国家的故事

第一节《怒海余生》 李俊率领残部穿越台风海域,在暹罗湾遭遇葡萄牙舰队突袭。童猛为掩护船队突围,驾驶火船与敌舰同归于尽,留下最后的忠义绝唱。 第二节《血染王城》 李俊与暹罗旧贵族势力在曼谷河畔展开决战。中原阵法与暹罗象兵碰撞出惊心…

1.portainer

容器可视化工具 商业版Business、社区版Community docker容器部署portainer,对外暴露端口9443是一个自签名的证书端口。还有另外一个暴露的端口8000。 volume 要想看得到,需要通过 portainer可视化界面看到volume,就必须使用: d…

使用Starrocks制作拉链表

5月1日向ods_order_info插入3条数据: CREATE TABLE ods_order_info(dt string,id string COMMENT 订单编号,total_amount decimal(10,2) COMMENT 订单金额 ) PRIMARY KEY(dt, id) PARTITION BY (dt) DISTRIBUTED BY HASH(id) PROPERTIES ( "replication_num&q…

Linux下Docker使用阿里云镜像加速器

在中国大陆环境中配置 Docker 使用阿里云镜像加速器,并确保通过 Clash 代理访问 Docker Hub 我这里用的Debian12。 步骤 1:获取阿里云镜像加速器地址 登录阿里云容器镜像服务控制台:(qinyang.wang) 网址:阿里云登录 - 欢迎登录阿…

Electron 后台常驻服务实现(托盘 + 开机自启)

基于 electron-vite-vue 项目结构 本篇将详细介绍如何为 Electron 应用实现后台常驻运行,包括: ✅ 创建系统托盘图标(Tray)✅ 支持点击托盘菜单控制窗口显示/退出✅ 实现开机自启功能(Auto Launch) &#…

opencv的直方图

理解并运用 OpenCV 中的图像直方图 📊🖼️ 图像直方图是计算机视觉和图像处理中一种基本且强大的工具,它提供了图像像素强度分布的图形化表示。OpenCV 作为一个全面的计算机视觉库,内置了计算和可视化直方图的强大功能。本文将深…

Linux 内核探秘:从零构建 GPIO 设备驱动程序实战指南

在嵌入式系统开发领域,GPIO(通用输入 / 输出)作为硬件与软件交互的桥梁,是实现设备控制与数据采集的基础。编写高效、稳定的 GPIO 设备驱动程序,对于发挥硬件性能至关重要。本文将深入剖析 Linux 内核中 GPIO 驱动开发…

嵌入式单片机中STM32F1演示寄存器控制方法

该文以STM32F103C8T6为示例,演示如何使用操作寄存器的方法点亮(关闭LED灯),并讲解了如何调试,以及使用宏定义。 第一:操作寄存器点亮LED灯。 (1)首先我们的目的是操作板子上的LED2灯,对其实现点亮和关闭操作。打开STM32F103C8T6的原理图,找到LED2的位置。 可以看到…

牛客网 NC16407 题解:托米航空公司的座位安排问题

牛客网 NC16407 题解:托米航空公司的座位安排问题 题目分析 解题思路 本题可以采用深度优先搜索(DFS)来解决: 从左上角开始,按行优先顺序遍历每个座位对于每个座位,有两种选择: 选择该座位(如果满足条件…

智慧展馆数字孪生平台

2022年进博会上,国家会展中心凭借“数字孪生机器人调度平台”惊艳全球,实现人机协同、虚实联动的智慧运营;2023年天府农博园通过“BIMIoT”技术,贯穿展馆全生命周期管理,成为农业会展的数字化标杆。这些案例背后&#…

胡说八道1---豆包问答总结

用户提问 1 指令:25 - - [21/May/2025:01:35:45 0000] “POST /prod-api/system/base/getList HTTP/1.1” 405 559 “http://192.168.1.109:16380/login” “Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 …