git工具使用詳細教程-------命令行和TortoiseGit圖形化

下載

git下載地址:https://git-scm.com/downloads

TortoiseGit(圖形化工具)下載地址:https://tortoisegit.org/download/

認識git結構

工作區:存放代碼的地方

暫存區:臨時存儲,將工作區的代碼讓git知道,通過git add將代碼放到暫存區

本地庫:將暫存區的代碼提交到本地庫,就會生成對應的歷史版本,這個代碼就無法刪除

遠程庫:將本地庫的代碼推送到遠程庫

git常用的命令

git config --global user.name 用戶名? ? ? ? ? ? ? ?設置用戶名

git config --global user.email 郵箱? ? ? ? ? ? ? ? ? ?設置用戶郵箱

git init? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?初始化本地庫

git status? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 查看本地庫狀態

git add 文件名? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 添加到暫存區

git commit -m " 日志信息" 文件名? ? ? ? ? ? ? ? ? ? 提交到本地庫

git reflog? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??查看歷史記錄

git reset --hard 版本號? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?版本穿梭

git命令行操作

git在安裝好之后,右擊鼠標,會出現Open Git Bash here,這里是打開本地的git命令行終端的位置。

設置用戶名和郵箱的作用是,之后再向服務提交數據的時候,標注作者,在每一個版本的提交信息中可以查看到。

其中 --global 是?個可選項。如果使?了該選項,表?這臺機器上所有的 Git 倉庫都會使?這個配置。如果你希望在不同倉庫中使?不同的 name 或 e-mail ,可以不要 --global 選項,但要注意的是,執?命令時必須要在倉庫?。

在這里設置好用戶的名稱和郵箱之后,使用cat ~/.gitconfig可以查看本地的作者名稱和郵箱信息。

初始化本地倉庫

使用git init的作用是獲取當前目錄的管理權。

首先,我們在當前文件夾下進行上圖操作,顯示當前文件夾下影藏文件。這個時候,當前文件夾是沒有隱藏的文件的。

然后我們在命令行終端執行git init

可以看見,這里出現了.git的隱藏文件夾。.git文件夾是Git跟蹤管理倉庫的,不要手動修改這個目錄里面的文件,不然改亂了,就把Git倉庫破壞了。

查看本地庫狀態

git status

在當前目錄下,創建文件

然后再次查看本地庫狀態

這里的紅色,表示工作區存在文件,但是git從未追蹤過這個文件。

添加暫存區

git add 文件名

使用git add將文件添加至暫存區之后,讓后再次查看本地庫狀態,這個文件就變成了綠色。

提交本地庫

git commit -m " 日志信息" 文件名

使用git commit -m '日志信息'命令之后,再查看本地庫的狀態,綠色的文件消失了。使用git reflog查看提交的日志信息,使用git log查看完整的提交日志信息。

git命令行完整操作

修改當前文件內容

查看本地庫狀態

git追蹤到工作區的文件修改,將該文件標紅。

將文件添加到暫存區

文件有紅色變為綠色

將文件提交到本地庫,查看本地庫狀態,工作區文件就處理好了

歷史版本

查看歷史版本

git?reflog?查看版本信息

git?log?查看版本詳細信息

版本回退

git?reset?–hard?版本號

Git 切換版本, 底層其實是移動的 HEAD 指針。

git分支操作

分支操作命令

git branch 分支名? ? ? ? ??? ? ? ? ??創建分支

git branch -v? ? ? ? ? ? ? ? ? ? ? ??? ? 查看分支

git checkout 分支名? ? ? ? ? ? ??? ?切換分支

git merge 分支名? ? ? ? ? ? ? ??? ? ?把指定的分支合并到當前分支上

查看分支

git branch -v? ? ? ? ? ? ? ? ? ? ? ??? ? 查看分支

當前只有主分支。

創建分支

git branch 分支名? ? ? ? ??? ? ? ? ??創建分支

創建分支,再使用git branch -v查看分支,如上。現在有了兩條分支,且工作分支還是在主分支上,主分支顯示為綠色。

切換分支

git checkout 分支名? ? ? ? ? ? ??? ?切換分支

現在分支已經切換到了branchTest上了,對應分支也變成了綠色了。

修改文件內容如下

git檢查本地庫狀態

可以看見,在剛剛新建的分支上,檢查到工作區上有修改的文件。

將修改的文件添加至暫存區,在提交到本地庫中。

合并分支

git merge 分支名? ? ? ? ? ? ? ??? ? ?把指定的分支合并到當前分支上

這里將在master分支上合并branchTest分支。

切回master分支上

再合并branchTest分支

現在再查看test.txt文件的內容,如下

沖突

產生沖突

沖突產生的表現: 后面狀態為 MERGING

沖突產生的原因:

合并分支時,兩個分支在同一個文件的同一個位置有兩套完全不同的修改。 Git 無法替我們決定使用哪一個。必須人為決定新代碼內容。

查看狀態(檢測到有文件有兩處修改)

首先在master分支上修改test.txt文件,修改如下

切換到branchTest分支上,修改test.txt文件,修改如下

再回到master分支上合并branchTest分支

這個時候就可以看見已經產生了沖突

解決沖突

特殊符號: <<<<<<< HEAD 當前分支的代碼 ======= 合并過來的代碼 >>>>>>> branchTest

修改文件如下

接下來再將文件添加至暫存區,提交到本地庫。

注意:我們修改的只是master分支的內容,hot-fix分支的內容沒有發生改變

遠程倉庫操作

git remote -v? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?查看當前所有遠程地址別名

git remote add 別名 遠程地址? ? ? ? ? ??起別名(第一次)

git push 別名 分支? ? ? ? ? ? ? ? ? ? ? ? ? ? ??推送本地分支上的內容到遠程倉庫

git clone 遠程地址? ? ? ? ? ? ? ? ? ? ? ? ? ? ??將遠程倉庫的內容克隆到本地(第一次)

git pull 遠程庫地址別名 遠程分支名? ?將遠程倉庫對于分支最新內容拉下來后與當前本地分支直接合并

創建遠程倉庫別名

git?remote?-v?查看當前所有遠程地址別名

git?remote?add?別名 遠程地址

拉取遠程倉庫內容

git pull 遠程庫地址別名 遠程分支名? ?(將遠程倉庫對應分支最新內容拉下來后與當前本地分支直接合并)

首次拉取會出現錯誤Git 認為你的本地分支和遠程分支的提交歷史是完全獨立的,因此拒絕合并。

?解決辦法:使用git pull 拉去遠程分支加上--allow-unrelated-histories選項

過程中會自動打開一個文件,鍵盤輸入:q推出即可

然后,在本地文件夾中就能看見遠程分支中的文件了。

推送本地分支至遠程倉庫

git?push?別名 分支? ?(推送的最小單位是分支,所以一定要指定分支)

將本地的master分支推送至遠程倉庫

首先本地分支切換到master分支,然后將master分支推送至遠程倉庫。

這里就推送成功了。再遠程倉庫中也能查看到剛剛提交的文件。

克隆遠程倉庫至本地

git clone 遠程地址? ? ? ? ? ? ? ? ? ? ? ? ? ? ??將遠程倉庫的內容克隆到本地(第一次)

我們將遠程倉庫克隆至桌面上。

首先在桌面上打開git終端,然后在gitee倉庫中拿到倉庫地址

然后再去桌面打開的git終端上進行命令行操作

打開文件,可以看見文件夾的內容和遠程倉庫都是一樣的了。

圖形化界面操作

建立本地倉庫

建立本地倉庫有兩種方式。git init 方式git clone 方式

git init方式

新建立一個tortoiseTest目錄,進入目錄,然后右鍵點擊 Git Create repository here , 會自動生成一個.git 隱藏目錄。

然后彈出一個對話框,選擇ok

現在目錄下就產生了一個.git隱藏目錄結構了

git clone方式

這時候會彈出一個框 , URL 是遠程倉庫的地址,Directory 是存放在哪個目錄下。

完成之后點擊close關閉

接著在目錄下就會出現遠程倉庫克隆的副本

提交代碼

在剛剛克隆的本地倉庫中新增一個文件tortoiseGit.txt文件

首先將文件添加到暫存區中,右鍵選擇Git add

在彈出的對話框中選擇ok

繼續選擇ok

查看版本庫

右鍵,選擇tortoiseGit,然后選擇Repo-browser

然后就能看見已經將文件提交至了版本庫中了

續上剛剛的提交代碼部分,繼續右鍵選擇Git Commit

在Message輸入提交信息,選擇commit

接著選擇push

然后選擇本地和遠程對應需要的分支,點擊ok

然后文件就提交完成了,點擊close

在遠程倉庫中就能查看到剛剛提交的文件了

更新代碼

首先在遠端文件進行修改

回到本地倉庫中,右鍵,選擇 pull

選擇遠端倉庫的名稱和分支,然后點擊ok

接著就把遠端倉庫的文件更新至本地倉庫了。選擇close

查看本地倉庫的文件,就能看見剛剛在遠端修改的文件,在本地也更新了

回滾版本

右鍵,選擇tortoiseGit,然后選擇show log

選中某個版本右鍵點擊 Reset master to this 即可

接下來出現的對話框選擇ok

回滾完成,選擇close

查看版本庫,里邊就沒剛剛的tortoiseGit.txt文件了

創建分支

右鍵點擊Create Branch

輸入新建分支的名稱,然后點擊ok

切換分支

右鍵點擊checkout

選擇剛剛創建的分支名

然后選擇close

合并分支

解決沖突

首先我們構建一個沖突,比如我之前在分支master上提交了一次代碼,然后我在另外一個文件夾上在沒有拉取的情況下也修改了同一處地方,然后提交的時候,會提示我們先拉取分支,然后再提交,拉取后又提示我們先要解決沖突,

在遠端倉庫做以下修改

然后在本地倉庫做以下修改

然后將本地的文件推送至遠端倉庫上,就會產生沖突,這里提示在推送之前先整合遠端倉庫的變化。

然后我么在拉取遠端倉庫的文件,就發生了沖突。因為遠端倉庫的修改和本地的修改并不相同,需要人為的選擇

在本地文件中修改沖突

修改如下

?選擇resolve解決,點擊ok

選擇提交

小的對話框點擊確定,

寫入自己的提交信息

然后提交

推送至遠端倉庫

點擊close完成推送,然后查看遠端倉庫文件信息

再查看本地文件信息,文件顏色變綠了

忽略上傳文件列表

添加忽略文件

在本地倉庫新建一個需要忽略的文件

現在右鍵選擇git add,可以看見git是能檢查出當前工作區內容的變化的

現在,選擇cancel,回到目錄。選中需要忽略的文件,右鍵選擇TortoiseGit,選擇add to ignore list,然后后邊有兩個選項,一個是忽略當前文件,另外一個是忽略當前文件后綴的所有文件。按照你的需求進行選擇。

然后選擇忽略類型和忽略文件存放的位置

然后該目錄就生成了對應的忽略文件

點擊查看忽略文件內容,我們剛剛的文件就被加進去了。

現在再去查看工作區,就已經干干凈凈了

然后,現在需要把新的忽略文件提交至遠程倉庫。直接選擇git commit,添加提交信息推送至遠程倉庫

推送成功

在遠端查看新的忽略文件

將忽略的文件再次提交

在本地的忽略文件中將忽略文件的信息刪除

然后選擇git add,將工作區的文件添加至暫存區

可以看見,忽略文件又能被git檢測出來了。選擇git commit

推送至遠程倉庫,

成功之后,查看遠程倉庫中,就有了剛剛被忽略的文件。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/81483.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/81483.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/81483.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

構建RAG混合開發---PythonAI+JavaEE+Vue.js前端的實踐

7GB顯存如何部署bf16精度的DeepSeek-R1 70B大模型&#xff1f;-CSDN博客 服務容錯治理框架resilience4j&sentinel基礎應用---微服務的限流/熔斷/降級解決方案-CSDN博客 conda管理python環境-CSDN博客 快速搭建對象存儲服務 - Minio&#xff0c;并解決臨時地址暴露ip、短…

【Java ee初階】jvm(3)

一、雙親委派機制&#xff08;類加載機制中&#xff0c;最經常考到的問題&#xff09; 類加載的第一個環節中&#xff0c;根據類的全限定類名&#xff08;包名類名&#xff09;找到對應的.class文件的過程。 JVM中進行類加載的操作&#xff0c;需要以來內部的模塊“類加載器”…

wps excel將表格輸出pdf時所有列在一張紙上

記錄&#xff1a;wps excel將表格輸出pdf時所有列在一張紙上 1&#xff0c;調整縮放比例&#xff0c;或選擇將所有列打印在一頁 2&#xff0c;將表格的所有鋪滿到這套虛線

分布式微服務系統架構第134集:筆記1運維服務器經驗,高并發,大數據量系統

加群聯系作者vx&#xff1a;xiaoda0423 倉庫地址&#xff1a;https://webvueblog.github.io/JavaPlusDoc/ https://1024bat.cn/ https://github.com/webVueBlog/fastapi_plus https://webvueblog.github.io/JavaPlusDoc/ ? 一、查看端口是否被占用的常用命令 1?? lsof 命令&…

IS-IS 中間系統到中間系統

前言&#xff1a; 中間系統到中間系統IS-IS&#xff08;Intermediate System to Intermediate System&#xff09;屬于內部網關協議IGP&#xff08;Interior Gateway Protocol&#xff09;&#xff0c;用于自治系統內部 IS-IS也是一種鏈路狀態協議&#xff0c;使用最短路徑優先…

前端安全:XSS、CSRF 防御與最佳實踐

引言 隨著互聯網應用的普及&#xff0c;前端安全問題日益凸顯。作為開發者&#xff0c;了解并防范常見的安全威脅至關重要。本文將深入探討兩種最常見的前端安全威脅&#xff1a;跨站腳本攻擊&#xff08;XSS&#xff09;和跨站請求偽造&#xff08;CSRF&#xff09;&#xff…

uniapp 彈窗封裝(上、下、左、右、中五個方位)

無腦復制即可&#xff01;&#xff01;&#xff01; <template><view><viewv-if"mask"class"tui-drawer-mask":class"{ tui-drawer-mask_show: visible }":style"{ zIndex: maskZIndex }"tap"handleMaskClick&qu…

Axure制作可視化大屏動態滾動列表教程

在可視化大屏設計中&#xff0c;動態滾動列表是一種常見且實用的展示方式&#xff0c;能夠有效地展示大量信息。本文將詳細介紹如何使用Axure制作一個動態滾動的列表展示模塊。 一、準備工作 打開Axure軟件&#xff1a;確保你已經安裝并打開了Axure RP軟件。創建新項目&#x…

零基礎玩轉Apache Superset可視化部署

根據官方Quick Start Guide&#xff0c;你可以按照以下步驟進行部署&#xff1a; 1. 確認環境2. 獲取代碼3. 獲取官方最新代碼4. 啟動服務5. 訪問Superset Web界面6. 接入數據源 前提條件&#xff1a; dockerdocker compose 1. 確認環境 安裝Docker和Docker Compose 確保你…

服務器數據恢復—XFS文件系統分區消失的數據恢復案例

服務器數據恢復環境&故障&#xff1a; 服務器上有一組由raid卡組建的raid5磁盤陣列。上層安裝linux才做系統&#xff0c;采用XFS文件系統&#xff0c;劃分了3個分區。 管理員將服務器的操作系統重裝后&#xff0c;發現服務器上的分區發生了改變&#xff1a;一個分區消失&am…

2025/5/18

繼續研究一下大佬的RAG項目。開始我的碎碎念。 RAG可以分成兩部分&#xff1a;一個是問答&#xff0c;一個是數據處理。 問答是人提問&#xff0c;然后查數據庫&#xff0c;把查的東西用大模型組織成人話&#xff0c;回答人的提問。 數據處理是把當下知識庫里的東西&#xf…

在 Vue 中插入 B 站視頻

前言 在 Vue 項目中&#xff0c;有時我們需要嵌入 B 站視頻來豐富頁面內容&#xff0c;為用戶提供更直觀的信息展示。本文將詳細介紹在 Vue 中插入 B 站視頻的多種方法。 使用<iframe>標簽直接嵌入,<iframe>標簽是一種簡單直接的方式&#xff0c;可將 B 站視頻嵌…

OpenCv高階(八)——攝像頭調用、攝像頭OCR

文章目錄 前言一、攝像頭調用通用方法1、導入必要的庫2、創建攝像頭接口 二、攝像頭OCR1.引入庫2、定義函數&#xff08;1&#xff09;定義顯示opencv顯示函數&#xff08;2&#xff09;保持寬高比的縮放函數&#xff08;3&#xff09;坐標點排序函數&#xff08;4&#xff09;…

特斯拉虛擬電廠:能源互聯網時代的分布式革命

在雙碳目標與能源轉型的雙重驅動下&#xff0c;特斯拉虛擬電廠&#xff08;Virtual Power Plant, VPP&#xff09;通過數字孿生技術與能源系統的深度融合&#xff0c;重構了傳統電力系統的運行范式。本文從系統架構、工程實踐、技術挑戰三個維度&#xff0c;深度解析這一顛覆性…

【漫話機器學習系列】258.拐點(Inflection Point)

拐點&#xff08;Inflection Point&#xff09;詳解&#xff1a;定義、原理與應用 在數學分析與數據建模中&#xff0c;“拐點&#xff08;Inflection Point&#xff09;”是一個非常重要的概念。今天這篇文章&#xff0c;我們將結合圖示&#xff0c;深入理解拐點的定義、數學…

語音識別——聲紋識別

通過將說話人的聲音與數據庫中的記錄聲音進行比對&#xff0c;判斷說話人是否為數據庫白名單中的同一人&#xff0c;從而完成語音驗證。目前&#xff0c;3D-Speaker 聲紋驗證的效果較為出色。 3D-Speaker 是一個開源工具包&#xff0c;可用于單模態和多模態的說話人驗證、說話…

DeepSeek 賦能軍事:重塑現代戰爭形態的科技密碼

目錄 一、引言&#xff1a;AI 浪潮下的軍事變革與 DeepSeek 崛起二、DeepSeek 技術原理與特性剖析2.1 核心技術架構2.2 獨特優勢 三、DeepSeek 在軍事偵察中的應用3.1 海量數據快速處理3.2 精準目標識別追蹤3.3 預測潛在威脅 四、DeepSeek 在軍事指揮決策中的應用4.1 戰場態勢實…

uWSGI是什么?

uWSGI 是一個功能強大的應用服務器&#xff0c;專為部署高性能 Web 應用設計&#xff0c;尤其適合 Python 生態系統。以下是對其核心介紹及適用場景的總結&#xff1a; uWSGI 是什么&#xff1f; uWSGI 是一個實現了 WSGI&#xff08;Web Server Gateway Interface&#xff09…

Digi XBee XR 系列介紹

Digi 延續了 20 多年來亞 GHz 射頻模塊的傳統&#xff0c;推出了 Digi XBee XR 系列遠距離模塊&#xff0c;包括 Digi XBee XR 900 - 已通過多個地區的預先認證 - 以及 Digi XBee XR 868 - 已通過歐洲地區應用的預先認證。 這些先進的射頻模塊專為遠距離抗干擾無線通信而設計。…

RabbitMq C++客戶端的使用

介紹 RabbitMQ 是一個開源的消息代理和隊列服務器&#xff0c;用于在分布式系統之間傳遞消息。它實現了高級消息隊列協議(AMQP)&#xff0c;同時也支持其他協議如 STOMP、MQTT 等。 核心概念 Producer(生產者): 發送消息的應用程序 Consumer(消費者): 接收消息的應用程序 Q…