目錄
目錄
什麼是git?
您需要知道的核心概念
如何訪問git
動手
GIT的登台區
進行更改
不進行舞台
如何從跟踪中忽略某些文件
處理異常值
看到差異
git diff進行了救援
如何獲得上一個提交的更改
回顧
結論
首頁 科技週邊 人工智慧 初學者的git教程

初學者的git教程

May 07, 2025 am 09:36 AM

在軟件開發中,跨多個貢獻者管理代碼可能會變得凌亂。想像一下,有幾個人同時編輯同一文檔,每個人都添加新想法,修復錯誤或調整功能。沒有結構化的系統,很難跟踪誰改變了什麼,何時以及為什麼?錯誤可能很難撤消,並且合併不同版本的項目可能會很快變得混亂。這是Git的核心問題,並且通過擴展,GitHub旨在解決,從而為開發人員提供了一種有力的方法來跟踪更改,有效協作並管理代碼庫的多個版本,而無需踩到彼此的腳趾。本文將為那些掙扎的人提供git教程,並將提供初學者的權限演練。

目錄

  • 什麼是git?
  • 您需要知道的核心概念
  • 如何訪問git
  • 動手
    • GIT的登台區
    • 進行更改
    • 不進行舞台
    • 如何從跟踪中忽略某些文件
    • 處理異常值
    • 看到差異
    • git diff進行了救援
    • 如何獲得上一個提交的更改
    • 回顧
  • 結論

什麼是git?

GIT是一個分佈式版本控制系統。隨著時間的流逝,它用於監視代碼更改。它允許開發人員分開工作,並在沒有衝突的情況下結合工作。 Git還提供了整個項目的單獨副本以及代碼歷史記錄,這使其更快,更可靠。因此,它適用於個人和協作項目。 Git主要基於命令行,它為用戶提供了強大的工具箱,可以分支功能,提交更新,階段更改和精確撤消錯誤。要記住git只是管理代碼的工具,這一點至關重要。它完全獨立於GitHub等網站,並且可以在沒有Internet或任何託管服務的情況下運行。

您需要知道的核心概念

這是GIT背後主要思想的快速分解:

  • 存儲庫(repo) :git跟踪您的文件和更改的目錄。
  • 克隆:本地計算機上遙控庫的副本。
  • 提交:在給定的時刻,您的代碼快照,並帶有描述更改的消息。
  • 分支:代碼庫的單獨版本,用於處理新功能或修復程序。
  • 合併:將一個分支的變化集成到另一個分支。
  • 推/拉:將更改發送到GitHub或拉下其他人的更新。

如何訪問git

以下是您可以訪問git的三種不同方式:

  1. 命令行- 最廣泛使用的訪問Git的方法。
  2. IDES - Git的最受歡迎的擴展名是Gitlens - 它在VS代碼中帶來了許多擴展
  3. GUI for Git - 您可以參考官方網站 - https://git-scm.com/downloads/guis
    1. Gitkraken - Git Gui是受歡迎的GUI之一
    2. Sourcetree - 僅適用於Windows和Mac

我們將主要關注本文的命令行。要安裝git,請遵循本指南。

動手

現在,我們已經涵蓋了基礎知識並在系統上設置了GIT,現在該使我們的手變得骯髒了。在本節中,我們將介紹每個開發人員應該知道的一些最重要的GIT命令。無論您是啟動一個新項目還是在現有項目上進行協作,這些命令構成有效使用GIT的核心工作流程。我們將保持簡單,實用且對初學者友好。沒有花哨的設置,只需實際使用的真實命令即可。打開您的終端,讓我們潛入!

創建一個目錄

mkdir git_learning
登入後複製

更改目錄

CD git_and_github
登入後複製

初始化git

 git init
登入後複製

此命令使用初始化GIT存儲庫。

初學者的git教程

您可以找到一個.git文件夾。這是GIT維護的重要文件夾。執行Git Init命令時,它將創建。 GIT基本上使用哈希來存儲文件,這確實是內存效率的。

現在,讓我們創建一些文件。

創建文件

觸摸file1.txt
登入後複製

編輯文件

vi file1.txt
登入後複製

輸入i進入插入模式,然後添加一些文本,然後單擊“逃生”並輸入:WQ以保存文件。

也為另一個文件執行此操作。

觸摸file2.txt

vi file2.txt 
登入後複製

初學者的git教程

初學者的git教程

了解存儲庫的狀態

git狀態
登入後複製

該命令將顯示目錄中所做的更改以及是否進行了跟踪。

初學者的git教程

為了短暫的狀態,您可以使用

git狀態-s
登入後複製

GIT的登台區

在GIT提交之前,我們有一些稱為登台區域的東西。在做出提交之前,我們將看到所做的更改並會審查它們。這是git中的一個特殊功能。我們可以回顧上一個提交和分階段更改之間的更改,然後進行新的提交。

為了進行目錄中所做的更改,我們將使用

git添加

git add file1.txt file2.txt
登入後複製

初學者的git教程

這將開始跟踪目錄中所做的更改。

現在,要將目錄中的所有文件添加到分期,您可以簡單地使用:

 git添加。
登入後複製

使用此命令時要謹慎。這是因為它將跟踪您目錄中的所有內容,例如日誌,環境文件,數據集等。這可能會超載git並導致效率低下的版本管理。

每個提交都有一個:

  1. ID - 唯一標識符(hashvalue)。
  2. 消息- 描述已完成的更改。
  3. 日期/時間- 什麼時候更改。
  4. 作者- 已更改文件的人。
  5. 完整的快照- 在提交時。

您可能會認為,每次提交中保存整個快照都會利用非常效率的內存。但是Git不會存儲重複的內容並壓縮內容以減少內存空間。因此,畢竟這可能是一個可行的策略!

進行更改

git commit -m“簡短描述”
登入後複製

-m用於消息。

初學者的git教程

但是有時候,我們對簡短的描述感到不滿意。我們將不得不提供有關所做更改的更多背景。

為此,我們將使用:

 git提交
登入後複製

這將在我們的編輯器中打開一個文件,我們可以在其中輸入一個少於80個字符的描述(在描述後不要忘記添加換行符)。為了實現這一目標,讓我們為新提交做一些更改。讓我添加另一個空文件並提交更改。

初學者的git教程

初學者的git教程

一個誤解是“當我們進行分階段時;登台區變為空!”這是不正確的。登台區並沒有變為空,而是分期區域和先前的提交之間沒有區別。

指南

  1. 提交不應該太大或太小。我們不必對每個文件進行小更改。另外,我們不必只在做出很多更改之後就提交。當您達到要記錄​​的狀態時,然後進行提交。
  2. 如果您有錯誤的含義和錯誤的含義:在解決錯誤時發現了錯別字;兩者都不應在重現錯別字時同時犯下,而該錯誤也將被恢復。因此,我們必須單獨這樣做。另外,如果您一起上演,我們也可以單獨拆除它們。
  3. 提交消息應該是有意義的。由於GIT也用於協作(不僅用於版本控制),提供有意義的提交消息,並且遵循命名插入將幫助項目中的每個人都了解所做的更改。

不進行舞台

我們可以在git添加命令之前提交更改而不將其添加到登台區域IE?

是的!我們可以。讓我們看一個例子。讓我更改file3.txt

初學者的git教程

 git提交-am“消息”
登入後複製

-a告訴git可以自動進行修改並已經跟踪的任何文件。

初學者的git教程

假設您已經上演了整個存儲庫,但是您需要刪除文件。通常,您將使用RM命令刪除文件。但是該文件仍將位於登台區域,因此,為了刪除該文件,我們將在下面進行。

一種可能的方法是使用普通的RM命令,然後git add 將其從開始區域中刪除。我知道這聽起來很奇怪,但是git添加在這裡會從登台區域刪除文件。

初學者的git教程

由於在此處跟踪file3.txt ,因此顯示file3.txt已刪除。

如果已經上演了一個文件,並且您要刪除它,請按照以下方式刪除:

初學者的git教程

讓我們嘗試使用git rm 而無需使用傳統的RM命令。

初學者的git教程

從git狀態我們可以看到,新文件存在。稍後,使用git rm命令後,我們可以看到不存在新文件。 git rm命令從登台區域和工作目錄中刪除文件,而RM命令(Linux)僅刪除您的工作目錄的文件。

如何從跟踪中忽略某些文件

讓我們看看如何忽略某些文件的跟踪。但這引出了一個問題:您為什麼要不散佈文件。這就是為什麼,假設您有日誌文件:您會生成大量的日誌文件,數據集,每次對其進行更改時都會更新。基本上是JSON表示,但是運行筆記本電腦可能每次都會產生不同的輸出,使Git難以跟踪更改。因此使用。 Gitignore避免Git跟踪這些文件。

我們將始終必須忽略跟踪中的某些文件,例如日誌文件。將這些文件添加到存儲庫中只會增加存儲庫的大小。因此,我們必須在git中忽略這些文件。在以下圖像中,我正在創建一個日誌目錄和一個日誌文件。後來,創建了一個.gitignore文件,然後將日誌目錄條目添加到.gitignore文件中。這將阻止git跟踪指定的文件。

初學者的git教程

我們可以看到日誌文件夾不再跟踪。

處理異常值

有一個問題!當我們開始使用git add或commit跟踪文件,然後將其添加到Gitignore時,Git仍將跟踪該文件或目錄中所做的更改。因此,為避免,我們必須從分期區域刪除文件/目錄。但是git rm將刪除登台和目錄中的文件。因此,如果我們只想將其刪除,我們將使用:

 git rm -r  -  cached Directory_name/fileName 
登入後複製

初學者的git教程

初學者的git教程

您可以看到文件not_track.txt已跟踪。因此,為避免這種情況的發生,我們必須使用以下命令:

 git rm -r –cached Directory_name/filename
登入後複製

初學者的git教程

看到差異

現在,讓我們看看最後一個提交和分階段文件之間已經做出了什麼變化。

我們將使用以下命令來執行此操作:

 git diff-已銷售
登入後複製

初學者的git教程

以下是上述屏幕截圖的解釋:

.gitignore之前不存在( /dev /null表示沒有以前的文件)。

添加了兩個條目:

  • 日誌/ →忽略目錄。
  • not_track.txt →忽略文件。

File3.txt正在從存儲庫中刪除(用於刪除)。該文件有一行:“這是我的第三個文件”。

通常,開發人員使用GUI工具來查看差異類似於VS代碼 - 但也可以使用命令行可視化差異。

git diff進行了救援

Git diff的作用是,它將比較上一個提交和分階段提交之間的文件。前任。 A/file1.js是舊文件, b/file1.j s是新文件→舊副本中的更改由 - (負)登錄為紅色,新副本的更改由綠色(plus)以綠色表示(可以在圖像中看到)。

綠色 - 新附加的線條<br><br>紅色 - 這些線將被刪除<br><br>白色 - 這些行在舊代碼和新代碼中。
登入後複製

git diff命令顯示目錄和分期之間的區別。

讓我們在目錄中進行一些更改以使用此命令:

初學者的git教程

現在,讓我們進行所有文件,並提交我們的更改,以查看過去所做的所有提交。查看此用途:

 git日誌
登入後複製

初學者的git教程

初學者的git教程

初學者的git教程

GIT日誌 - 在線→這為我們提供了簡短的提交摘要。

git日誌 - 在線 - 反向→這將逆轉提交的順序。

初學者的git教程

要查看提交中的更改,我們可以使用

git show <id></id>
登入後複製

初學者的git教程

如何獲得上一個提交的更改

git還原 - 已劃分的文件名→這將從上一個提交中獲取文件,並將其放在此處。

git還原。將從分期環境中獲取文件,並將其放入工作目錄中。但是,如果有一個新的未跟踪文件,以前的提交中不存在,它將保持原樣。

初學者的git教程

初學者的git教程

我們可以看到,在運行命令git還原後,在file1.txt中所做的更改已恢復為他們以前的提交狀態。

回顧

在這個動手的會話中,我們瀏覽了現實世界開發工作流中使用的基礎GIT命令。我們首先設置了一個git存儲庫,並學習瞭如何創建和編輯文件。引入了關鍵概念,例如工作目錄,分期區域和提交,以及諸如git Init,git add,git commit和git狀態之類的命令。我們探索了GIT跟踪如何更改,管理文件版本以及分階段與未分段的文件。特別強調適當的提交實踐,使用。 Gitignore避免跟踪不必要的文件,並使用Gi​​t diff查看差異。最後,我們研究了使用GIT日誌,Git Show和Git Restore檢查以前的提交和恢復更改的方法。

結論

Git起初似乎很不知所措,但是一旦您掌握了核心概念,例如分期,投入,恢復和查看歷史,它就會成為工作流程中的強大工具。在本文中,我們專注於命令行,因為它可以使您對幕後發生的事情具有最大的控制和透明度。了解GIT如何跟踪文件,處理提交和管理更改,使您可以編寫清潔器代碼,更有效地進行協作並在事情出現問題時迅速恢復。無論您是要回滾不好的變化,探索提交歷史記錄還是只是組織工作,Git都可以支持。

以上是初學者的git教程的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Java教學
1677
14
CakePHP 教程
1431
52
Laravel 教程
1334
25
PHP教程
1280
29
C# 教程
1257
24
如何使用AGNO框架構建多模式AI代理? 如何使用AGNO框架構建多模式AI代理? Apr 23, 2025 am 11:30 AM

在從事代理AI時,開發人員經常發現自己在速度,靈活性和資源效率之間進行權衡。我一直在探索代理AI框架,並遇到了Agno(以前是Phi-

OpenAI以GPT-4.1的重點轉移,將編碼和成本效率優先考慮 OpenAI以GPT-4.1的重點轉移,將編碼和成本效率優先考慮 Apr 16, 2025 am 11:37 AM

該版本包括三種不同的型號,GPT-4.1,GPT-4.1 MINI和GPT-4.1 NANO,標誌著向大語言模型景觀內的特定任務優化邁進。這些模型並未立即替換諸如

如何在SQL中添加列? - 分析Vidhya 如何在SQL中添加列? - 分析Vidhya Apr 17, 2025 am 11:43 AM

SQL的Alter表語句:動態地將列添加到數據庫 在數據管理中,SQL的適應性至關重要。 需要即時調整數據庫結構嗎? Alter表語句是您的解決方案。本指南的詳細信息添加了Colu

火箭發射模擬和分析使用Rocketpy -Analytics Vidhya 火箭發射模擬和分析使用Rocketpy -Analytics Vidhya Apr 19, 2025 am 11:12 AM

模擬火箭發射的火箭發射:綜合指南 本文指導您使用強大的Python庫Rocketpy模擬高功率火箭發射。 我們將介紹從定義火箭組件到分析模擬的所有內容

DeepCoder-14b:O3-Mini和O1的開源競賽 DeepCoder-14b:O3-Mini和O1的開源競賽 Apr 26, 2025 am 09:07 AM

在AI社區的重大發展中,Agentica和AI共同發布了一個名為DeepCoder-14B的開源AI編碼模型。與OpenAI等封閉源競爭對手提供代碼生成功能

提示:chatgpt生成假護照 提示:chatgpt生成假護照 Apr 16, 2025 am 11:35 AM

Chip Giant Nvidia週一表示,它將開始製造AI超級計算機(可以處理大量數據並運行複雜算法的機器),完全是在美國首次在美國境內。這一消息是在特朗普總統SI之後發布的

一個提示可以繞過每個主要LLM的保障措施 一個提示可以繞過每個主要LLM的保障措施 Apr 25, 2025 am 11:16 AM

隱藏者的開創性研究暴露了領先的大語言模型(LLM)的關鍵脆弱性。 他們的發現揭示了一種普遍的旁路技術,稱為“政策木偶”,能夠規避幾乎所有主要LLMS

蓋伊·佩里(Guy Peri)通過數據轉換幫助麥考密克的未來 蓋伊·佩里(Guy Peri)通過數據轉換幫助麥考密克的未來 Apr 19, 2025 am 11:35 AM

蓋伊·佩里(Guy Peri)是麥考密克(McCormick)的首席信息和數字官。儘管他的角色僅七個月,但Peri正在迅速促進公司數字能力的全面轉變。他的職業生涯專注於數據和分析信息

See all articles