关于用git上传远程库的一些常见命令使用和常见问题:

克隆远程库gitee到本地用命令git clone 
git clone https://gitee.com/automated-piggy-senior/20250717-test.gitLinux/macOS 终端:
执行 touch readme.txt(创建空文件),或 echo "这是说明文件" > readme.txt(创建并写入内容)。把所有修改提交到暂存区
git add readme.txt一次性把所有修改从暂存区提交到分支
git commit -m "第一次提交"查看状态
git status把本地库所有内容推送到远程库(默认情况下,远程库的名字就是origin)
git push -u origin master查看操作历史记录(嫌输出太多信息可以在后面加上--pretty==oneline这样就是一次操作就是一行)
git log
git log  --pretty=oneline回退到上一个版本(用 HEAD 表示当前版本,也就是最新的提交 1094adb...(注意我的提交 ID 和你的肯定不一样),上一个版本就是 HEAD^,上上一个版本就是 HEAD^^,当然往上 100 个版本写 100 个 ^ 比较容易数不过来,所以写成 HEAD~100。)
git reset --hard HEAD^这个命令会显示本地仓库中所有分支的 “引用日志”,包括每个版本的 commit ID 以及操作记录(如 commit、reset、checkout 等)
git reflog回到之前的版本之后想回去怎么办(版本号commit ID没必要写全,前几位就可以了,Git 会自动去找。当然也不能只写前一两位,因为 Git 可能会找到多个版本号,就无法确定是哪一个了。)
git reset --hard 46d69如何删除文件:rm 文件名
这个时候,Git 知道你删除了文件,因此,工作区和版本库就不一致了,git status 命令会立刻告诉你哪些文件被删除了现在你有两个选择,一是确实要从版本库中删除该文件,那就用命令 git rm 删掉,并且 git commitrm readme.txtgit rm readme.txt
git commit  -m "remove readme.txt"如何恢复删除的文件
没用git rm 文件名 命令的情况:git  checkout -- readme.txt
用了git rm 文件名命令的情况:由于工作区和暂存区的都被删除了,用上面的命令会报错,只能先将文件从暂存区恢复到工作区,再 checkout
(git rm 会同时删除工作区文件并将删除操作加入暂存区,此时单纯 checkout 无法恢复,因为暂存区已经记录了 “删除” 状态。
git reset HEAD <文件> 会撤销暂存区的操作,让文件状态回到 “已删除(暂存)” 变回 “已删除(仅工作区)”,之后才能用 checkout 从版本库恢复。)
先
git reset HEAD readme.txt
再
git checkout -- readme.txt


常见问题1:错误提示 fatal: pathspec 'readme.txt' did not match any files 表示 Git 找不到名为 readme.txt 的文件,导致无法执行 git add 操作。以下是具体的解决步骤:

1. 确认文件是否存在

首先检查当前目录下是否真的有 readme.txt 文件:

  • Windows 命令提示符 / PowerShell
    执行 dir readme.txt(查看是否有该文件)。
  • Linux/macOS 终端
    执行 ls readme.txt(查看是否有该文件)。

如果命令返回 “找不到文件”,说明文件不存在,需要先创建文件或检查文件名是否正确。

2. 检查文件名拼写和大小写

Git 对文件名的大小写敏感(尤其是在 Linux/macOS 系统上),例如:

  • Readme.txtREADME.TXT 和 readme.txt 会被视为不同文件。
  • 可能不小心多打了空格(如 readme .txt)或少打了字母(如 readme.tx)。

仔细核对文件名,确保与实际文件名完全一致。

3. 确认当前目录是否正确

git add 只能操作当前仓库目录下的文件。如果 readme.txt 在子目录中(例如 docs/readme.txt),直接执行 git add readme.txt 会找不到文件。

解决方法:

  • 切换到文件所在目录:cd 子目录路径(例如 cd docs),再执行 git add readme.txt
  • 直接指定文件的相对路径:git add 子目录路径/readme.txt(例如 git add docs/readme.txt)。

4. 若文件不存在,创建文件后再添加

如果确实需要添加 readme.txt,但文件还未创建,可以先创建文件:

  • Windows 命令提示符
    执行 echo 内容 > readme.txt(创建文件并写入内容,例如 echo "这是说明文件" > readme.txt)。
  • Linux/macOS 终端
    执行 touch readme.txt(创建空文件),或 echo "这是说明文件" > readme.txt(创建并写入内容)。

创建成功后,再执行 git add readme.txt 即可。

5. 检查是否在 Git 仓库目录中

git add 必须在已初始化的 Git 仓库中执行(即包含 .git 文件夹的目录)。如果还未初始化仓库:

  1. 执行 git init(初始化当前目录为 Git 仓库)。
  2. 再执行 git add readme.txt

总结步骤

  1. 确认文件存在且文件名正确(拼写、大小写)。
  2. 确认文件在当前目录或正确指定路径。
  3. 确保在 Git 仓库目录中操作。

按照以上步骤排查后,git add readme.txt 应该能正常执行了。如果仍有问题,可以提供具体的目录结构和文件名,进一步分析解决。


常见问题2:你现在的情况是:已经用 git rm readme.txt 删除了 readme.txt,但还没有提交这个删除操作,此时直接用 git checkout -- readme.txt 无法恢复,因为 git rm 已经将文件从暂存区和工作区同时移除了。

解决方法:恢复被 git rm 删除的文件

需要先将文件从暂存区恢复到工作区,再 checkout:

  1. 先用 git reset HEAD readme.txt 取消暂存区的删除操作:

    bash

    git reset HEAD readme.txt
    
  2. 再执行 checkout 恢复文件:

    bash

    git checkout -- readme.txt
    

执行后,readme.txt 就会恢复到工作区,此时用 ls 命令就能看到该文件了。

原理说明:

  • git rm 会同时删除工作区文件并将删除操作加入暂存区,此时单纯 checkout 无法恢复,因为暂存区已经记录了 “删除” 状态。
  • git reset HEAD <文件> 会撤销暂存区的操作,让文件状态回到 “已删除(暂存)” 变回 “已删除(仅工作区)”,之后才能用 checkout 从版本库恢复。

常见问题3

rm只是删除工作区的文件

git rm删除了暂存区的文件,如果没有进行git commit即使进行git push -u origin master上传到远程库也不会生效删除这个文件的操作;所以说要想删除远程库的文件就得进行git rm和git commit这两个操作


常见问题4:这个错误 non-fast-forward 表示本地分支落后于远程分支(远程有你本地没有的新提交),因此 Git 拒绝直接推送送,防止覆盖远程的更新。

解决方法:先拉取远程更新,再推送

  1. 拉取远程分支的最新内容(会自动合并到本地分支):

    bash

    git pull origin master
    
    • 如果拉取时出现冲突,需要打开冲突文件,找到并解决冲突(冲突部分会用 <<<<<<< HEAD=======>>>>>>> origin/master 标记),解决后执行 git add . 和 git commit -m "解决冲突"
  2. 再次推送本地分支

    bash

    git push -u origin master
    

原理说明:

  • “non-fast-forward” 意味着远程分支比你本地分支新(别人可能推送了新内容),直接推送会导致历史不一致。
  • git pull 会先将远程的新提交拉取到本地并合并,让本地分支与远程保持同步,之后就能正常推送了。

执行以上步骤后,你的本地修改就能就能成功推送到远程仓库了。


常见问题5:出现 “Everything up-to-date” 但 Gitee 上看不到更新,通常是因为本地分支的修改没有被正确提交到版本库,导致没有可推送的内容。具体原因和解决方法如下:

可能的原因

  1. 修改未提交到本地版本库
    你可能只在工作区修改了文件(比如新增了 2.c/ 目录或修改了 readme.txt),但没有执行 git add 和 git commit 将修改保存到本地版本库。此时 Git 认为 “没有新内容需要推送”,所以提示 “Everything up-to-date”。

  2. 新增的目录 / 文件未被 Git 跟踪
    如果 2.c/ 是新建的目录,且目录内没有文件(或文件未被 git add),Git 不会跟踪空目录,因此不会将空目录推送到远程。

解决方法:提交本地修改后再推送

按照以下步骤操作,确保本地修改被正确提交:

  1. 检查当前文件状态
    执行 git status 查看哪些文件未被跟踪或修改未提交:

    bash

    git status
    
    • 红色文件表示 “未跟踪” 或 “已修改但未暂存”。
    • 绿色文件表示 “已暂存但未提交”。
  2. 暂存修改的文件
    将需要推送的文件 / 目录添加到暂存区(如果 2.c/ 内有文件,需指定具体文件或递归添加):

    bash

    # 暂存所有修改(包括新增、修改的文件)
    git add .
    # 或单独暂存某个文件/目录(例如 readme.txt 和 2.c/ 内的文件)
    git add readme.txt 2.c/
    
  3. 提交到本地版本库
    用 git commit 记录暂存区的修改:

    bash

    git commit -m "描述你的修改,例如:新增2.c目录和更新readme"
    
  4. 再次推送到远程
    提交后执行推送命令,此时就会将新提交推送到 Gitee:

    bash

    git push origin master
    

验证是否成功

  • 推送成功后,终端会显示类似 1 file changed, 1 insertion(+) 的信息,说明有内容被推送。
  • 刷新 Gitee 仓库页面,即可看到更新的文件 / 目录。

补充说明

  • 如果 2.c/ 是空目录,即使执行 git add 2.c/ 也不会被 Git 跟踪,因为 Git 只跟踪文件,不跟踪空目录。需在 2.c/ 内添加至少一个文件(例如 2.c/test.c),再执行上述提交步骤。
  • 若推送后仍看不到更新,可在 Gitee 仓库页面检查当前分支是否为 master(默认推送的是 master 分支,需确保查看的是对应分支)。


常见问题6:修改文件夹(目录)名字的操作可以通过命令行完成,同时需要让 Git 记录这个修改。以下是具体步骤:

1. 重命名文件夹

在终端(或 Git Bash)中使用 mv 命令重命名,例如将 old_folder 改名为 new_folder

bash

mv old_folder/ new_folder/

  • 注意文件夹名后的 / 可加可不加,不影响命令执行。
  • 如果文件夹名包含空格,需要用引号包裹,例如:mv "old folder/" "new folder/"

2. 让 Git 识别修改

重命名后,Git 会将其视为 “删除旧文件夹 + 新增新文件夹”,需要通过 git add 跟踪这个变化:

bash

# 查看状态,确认修改被识别
git status# 添加修改到暂存区(会自动处理旧文件夹的删除和新文件夹的新增)
git add .

3. 提交修改到本地仓库

bash

git commit -m "重命名文件夹:old_folder -> new_folder"

4. 推送到远程仓库(更新远程显示)

bash

git push origin master  # 或当前分支名

完成后,本地和远程仓库的文件夹名字都会更新,且文件夹内文件的历史记录会被保留。

注意:

  • 如果文件夹内有文件,重命名后文件会自动移动到新文件夹,无需额外操作。
  • 若操作后发现命名错误,可重复上述步骤再次修改。

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

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

相关文章

想删除表中重复数据,只留下一条,sql怎么写

PostgreSQL 方法: DELETE FROM tbl_case_model WHERE id NOT IN (SELECT MIN(id) -- 保留id最小的记录FROM tbl_case_modelGROUP BYcolumn1, -- 替换为实际重复列名column2, -- 继续添加重复列... -- [所有需要比较的列] );因为我这次遇到的情况比较特殊&#xff0…

微服务中token鉴权设计的4种方式

1. JWT鉴权 「概述」&#xff1a;JWT是一种用于双方之间安全传输信息的简洁的、URL安全的令牌标准。它基于JSON格式&#xff0c;包含三个部分&#xff1a;头部&#xff08;Header&#xff09;、负载&#xff08;Payload&#xff09;和签名&#xff08;Signature&#xff09;。J…

nodejs搭建

1.创建一个空文件夹&#xff0c;在vscode中打开 2.执行命令开启package文件 npm init -y3.设置根目录文件app.js 先执行 npm install express 命令安装 express 模块 执行 npm install cors 命令安装 cors 模块 // app.js const express require(express) const app express…

frp内网穿透(二)

frp内网穿透&#xff08;二&#xff09; 前言 前篇内网穿透 上面一文中已描述如何安装frp进行内网穿透&#xff0c;并配置ssh穿透连接内网服务器&#xff0c;本篇主要介绍如何配置web服务 使用场景 A服务器为公网服务器&#xff0c;B服务器为家庭中内网服务器&#xff0c;且B…

Spring 应用中 Swagger 2.0 迁移 OpenAPI 3.0 详解:配置、注解与实践

从 Swagger 2.0 到 OpenAPI 3.0 的升级指南 为什么升级 OpenAPI 3.0提供了更强大的功能、更简洁的配置和更好的性能&#xff0c;同时保持了与 Swagger 2.0 的基本兼容性。本文将详细介绍升级的各个步骤&#xff0c;并提供代码示例。 1. 依赖管理的变化 Swagger 2.0 依赖配置 &l…

用 Flink CEP 打造实时超时预警:从理论到实战

目录 1. Flink CEP 是什么?为什么它能让你的数据“开口说话”? 2. 超时预警的业务场景:从电商到物联网 3. Flink CEP 超时机制的核心原理 3.1 模式匹配与时间窗口 3.2 超时事件的处理 3.3 事件时间与水位线 3.4 核心组件一览 4. 实战案例:电商订单超时预警 4.1 准备…

Rocky Linux 9 源码包安装php7

Rocky Linux 9 源码包安装php7大家好&#xff01;我是星哥。尽管现在 PHP 版本已迭代至 8.x&#xff0c;但有时为了兼容遗留系统或特定应用需求&#xff0c;我们仍需部署特定版本的 PHP。最主要的是之前的项目采用的PHP7.3&#xff0c;未来兼容旧的项目&#xff0c; 今天&#…

uniapp+vue3+鸿蒙系统的开发

前言&#xff1a; uniappvue3鸿蒙系统的开发。 实现效果&#xff1a; 鸿蒙pad端真机测试效果-下面是正常的日志效果 实现步骤&#xff1a; 1、安装鸿蒙的开发工具&#xff0c;点击安装&#xff0c;注意版本不能太旧了 deveco-studio 2、下载下来是个压缩包&#xff0c;解压后…

【C++类和对象解密】面向对象编程的核心概念(下)

之前我们了解到构造函数是在对象实例化之时对对象完成初始化工作的一个函数。在我们不写时&#xff0c;编译器会自动生成构造函数。构造函数有一些特点&#xff0c;比如&#xff0c;他对内置类型不做处理&#xff0c;对自定义类型的成员会去调用其自身的构造。我们上篇文章还提…

Flutter基础(前端教程①②-序列帧动画)

&#x1f9e0; 核心思路总结​​彻底绕过 Image组件重建带来的性能瓶颈​​&#xff1a;不再让 setState重建包含 Image的 Widget 树&#xff08;这是开销大、可能导致闪烁的根源&#xff09;&#xff0c;改为使用底层画布 (Canvas) 直接绘制预先处理好的图像帧数据。好的&…

Qt添加dmp文件生成及pdb文件

1.Pdb文件生成 下图先通过构建生成Pdb文件&#xff0c;然后运行程序&#xff0c;通过提前准备的崩溃按钮使得程序崩溃&#xff0c;生成“dump文件”的演示。 # #添加dmp文件生成及pdb文件生成DEFINES QT_MESSAGELOGCONTEXT DEFINES QT_DEPRECATED_WARNINGS# # 添加DUMP文件…

opencv、torch、torchvision、tensorflow的区别

一、框架定位与核心差异PyTorch动态计算图&#xff1a;实时构建计算图支持Python原生控制流&#xff08;如循环/条件&#xff09;&#xff0c;调试便捷。学术主导&#xff1a;2025年工业部署份额24%&#xff0c;适合快速原型开发&#xff08;如无人机自动驾驶、情绪识别&#x…

离散与组合数学 杂记

生成函数 概念 又称母函数把一个无穷数列 {an}\{a_n\}{an​}&#xff08;默认从 000 项起&#xff09;表示成 G(x)∑i≥0aixiG(x)\displaystyle\sum_{i\ge0} a_ix^iG(x)i≥0∑​ai​xi 的函数形式。例如&#xff1a; ai2ia_i2^iai​2i&#xff1a;G(x)∑i≥02ixiG(x)\display…

学习OpenCV---显示图片

学习OpenCV—显示图片 最近在学习OpenCV入门&#xff0c;于是记录一下自己的学习过程。 一、配置环境 第一步 从官方网站中下载OpenCV开源库。官方下载网站 打开官网后&#xff0c;能看到有很多的版本。我个人下载的是4.11.0版本。点击图中的下载 下载完成后&#xff0c;解…

第一次接触自动化监测,需要付费厂家安装服务吗?比人工测量主要区别是啥?

人工检测是依靠目测检查或借助于便携式仪器测量得到的信息&#xff0c;但是随着整个行业的发展&#xff0c;传统的人工检测方法已经不能满足检测需求&#xff0c;从人工检测到自动化监测已是必然趋势。 a. 从检测方式看 人工检测需要耗费大量的精力&#xff0c;从摆放检测工具到…

VMware Workstation Pro 17下载安装

注册账号 进入下载地址&#xff1a;Free Downloads - Support Portal - Broadcom support portal - https://support.broadcom.com/ 会让注册账号&#xff0c;注册一个就行 在右上角 下载 地址&#xff1a;Free Downloads - Support Portal - Broadcom support portal - ht…

SpringBoot 3.x集成阿里云OSS:文件上传 断点续传 权限控制

SpringBoot 3.x集成阿里云OSS&#xff1a;文件上传&#xff0f;断点续传&#xff0f;权限控制Spring Boot 3.x 集成阿里云 OSS 终极指南一、环境准备与依赖配置1. 添加阿里云 OSS SDK 依赖2. 配置 OSS 连接参数二、基础文件上传服务1. OSS 客户端配置2. 文件上传服务三、断点续…

牛客周赛 Round 100

A小红的双排列没什么好说的 直接 1 1 2 2 3 3 4 4……#define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<iostream> #include<bits/stdc.h> #define ll long long using namespace std; int n; int main(){ios::sync_with_stdio(false); …

【Dv3Admin】菜单管理集成阿里巴巴自定义矢量图标库

图标选择是后台管理系统中高频功能。相比用 Element UI、Ant Design 等自带的 icon 集&#xff0c;阿里巴巴 iconfont.cn 支持上传和管理自定义图标&#xff0c;并生成矢量字体&#xff0c;便于统一维护和扩展。 本文目标是支持自定义 iconfont 图标的展示和选择&#xff0c;并…

NO.7数据结构树|线索二叉树|树森林二叉树转化|树森林遍历|并查集|二叉排序树|平衡二叉树|哈夫曼树|哈夫曼编码

线索二叉树 线索二叉树的基本概念 为了解决无法直接找到该结点在某种遍历序列中的前驱和后继结点的问题&#xff0c; 出现了线索二叉树。 一个二叉树通过如下的方法“穿起来” &#xff1a; 所有原本为空的右(孩子)指针改为指向该节点在某种遍历序列中的后继&#xff0c; 所有原…