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

关于用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.dtcms.com/a/285068.html

相关文章:

  • Redis学习-02安装Redis(Ubuntu版本)、开启远程连接
  • ComfyUI 中RAM内存、VRAM显存、GPU 的占用和原理
  • 基于深度学习的图像识别:从零构建卷积神经网络(CNN)
  • 面对微软AD的安全隐患,宁盾身份域管如何设计安全性
  • Python调用父类方法的三种方式详解 | Python面向对象编程教程
  • 【DOCKER】-5 镜像仓库与容器编排
  • 云服务器如何设置防火墙和安全组规则?
  • Java EE进阶3:SpringBoot 快速上手
  • 【Linux】Makefile(二)-书写规则
  • 【原创】【图像算法】高精密电子仪器组装异常检测
  • 力扣119:杨辉三角Ⅱ
  • Cursor出现This model provider doesn’t serve your region解决方案
  • 【调度算法】
  • javaScript中数组常用的函数方法
  • 洛谷 P1601 A+B Problem(高精)
  • 重构比特币在 Sui DeFi 中的角色
  • Redis中什么是看门狗机制
  • 解决leetcode第3614题用特殊操作处理字符串II
  • 魔术公式轮胎simulink模型建立及参数拟合
  • 实现atm提款简易代码
  • ​​孤儿进程:当父进程先离开时会发生什么?
  • LeetCode|Day17|242. 有效的字母异位词|Python刷题笔记
  • 云服务器的数据如何备份和恢复?
  • Leetcode刷题营第二十八题:二叉树的前序遍历
  • CSS关键字:initial、revert、unset傻傻分不清
  • 打造智慧园区新生态
  • Au速成班-乐理知识补充+网页下载音乐
  • 分层图最短路径算法详解
  • 大模型领域主流向量模型相似度算法、架构及指标对比
  • centos 新加磁盘分区动态扩容