關于用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
英文地址,請注明出處:http://en.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; 所有原…