初學者的git教程
在軟件開發中,跨多個貢獻者管理代碼可能會變得凌亂。想像一下,有幾個人同時編輯同一文檔,每個人都添加新想法,修復錯誤或調整功能。沒有結構化的系統,很難跟踪誰改變了什麼,何時以及為什麼?錯誤可能很難撤消,並且合併不同版本的項目可能會很快變得混亂。這是Git的核心問題,並且通過擴展,GitHub旨在解決,從而為開發人員提供了一種有力的方法來跟踪更改,有效協作並管理代碼庫的多個版本,而無需踩到彼此的腳趾。本文將為那些掙扎的人提供git教程,並將提供初學者的權限演練。
目錄
- 什麼是git?
- 您需要知道的核心概念
- 如何訪問git
- 動手
- GIT的登台區
- 進行更改
- 不進行舞台
- 如何從跟踪中忽略某些文件
- 處理異常值
- 看到差異
- git diff進行了救援
- 如何獲得上一個提交的更改
- 回顧
- 結論
什麼是git?
GIT是一個分佈式版本控制系統。隨著時間的流逝,它用於監視代碼更改。它允許開發人員分開工作,並在沒有衝突的情況下結合工作。 Git還提供了整個項目的單獨副本以及代碼歷史記錄,這使其更快,更可靠。因此,它適用於個人和協作項目。 Git主要基於命令行,它為用戶提供了強大的工具箱,可以分支功能,提交更新,階段更改和精確撤消錯誤。要記住git只是管理代碼的工具,這一點至關重要。它完全獨立於GitHub等網站,並且可以在沒有Internet或任何託管服務的情況下運行。
您需要知道的核心概念
這是GIT背後主要思想的快速分解:
- 存儲庫(repo) :git跟踪您的文件和更改的目錄。
- 克隆:本地計算機上遙控庫的副本。
- 提交:在給定的時刻,您的代碼快照,並帶有描述更改的消息。
- 分支:代碼庫的單獨版本,用於處理新功能或修復程序。
- 合併:將一個分支的變化集成到另一個分支。
- 推/拉:將更改發送到GitHub或拉下其他人的更新。
如何訪問git
以下是您可以訪問git的三種不同方式:
- 命令行- 最廣泛使用的訪問Git的方法。
- IDES - Git的最受歡迎的擴展名是Gitlens - 它在VS代碼中帶來了許多擴展
-
GUI for Git - 您可以參考官方網站 - https://git-scm.com/downloads/guis
- Gitkraken - Git Gui是受歡迎的GUI之一
- Sourcetree - 僅適用於Windows和Mac
我們將主要關注本文的命令行。要安裝git,請遵循本指南。
動手
現在,我們已經涵蓋了基礎知識並在系統上設置了GIT,現在該使我們的手變得骯髒了。在本節中,我們將介紹每個開發人員應該知道的一些最重要的GIT命令。無論您是啟動一個新項目還是在現有項目上進行協作,這些命令構成有效使用GIT的核心工作流程。我們將保持簡單,實用且對初學者友好。沒有花哨的設置,只需實際使用的真實命令即可。打開您的終端,讓我們潛入!
創建一個目錄
mkdir git_learning
更改目錄
CD git_and_github
初始化git
git init
此命令使用初始化GIT存儲庫。
您可以找到一個.git文件夾。這是GIT維護的重要文件夾。執行Git Init命令時,它將創建。 GIT基本上使用哈希來存儲文件,這確實是內存效率的。
現在,讓我們創建一些文件。
創建文件
觸摸file1.txt
編輯文件
vi file1.txt
輸入i進入插入模式,然後添加一些文本,然後單擊“逃生”並輸入:WQ以保存文件。
也為另一個文件執行此操作。
觸摸file2.txt vi file2.txt
了解存儲庫的狀態
git狀態
該命令將顯示目錄中所做的更改以及是否進行了跟踪。
為了短暫的狀態,您可以使用
git狀態-s
GIT的登台區
在GIT提交之前,我們有一些稱為登台區域的東西。在做出提交之前,我們將看到所做的更改並會審查它們。這是git中的一個特殊功能。我們可以回顧上一個提交和分階段更改之間的更改,然後進行新的提交。
為了進行目錄中所做的更改,我們將使用
git添加 git add file1.txt file2.txt
這將開始跟踪目錄中所做的更改。
現在,要將目錄中的所有文件添加到分期,您可以簡單地使用:
git添加。
使用此命令時要謹慎。這是因為它將跟踪您目錄中的所有內容,例如日誌,環境文件,數據集等。這可能會超載git並導致效率低下的版本管理。
每個提交都有一個:
- ID - 唯一標識符(hashvalue)。
- 消息- 描述已完成的更改。
- 日期/時間- 什麼時候更改。
- 作者- 已更改文件的人。
- 完整的快照- 在提交時。
您可能會認為,每次提交中保存整個快照都會利用非常效率的內存。但是Git不會存儲重複的內容並壓縮內容以減少內存空間。因此,畢竟這可能是一個可行的策略!
進行更改
git commit -m“簡短描述”
-m用於消息。
但是有時候,我們對簡短的描述感到不滿意。我們將不得不提供有關所做更改的更多背景。
為此,我們將使用:
git提交
這將在我們的編輯器中打開一個文件,我們可以在其中輸入一個少於80個字符的描述(在描述後不要忘記添加換行符)。為了實現這一目標,讓我們為新提交做一些更改。讓我添加另一個空文件並提交更改。
一個誤解是“當我們進行分階段時;登台區變為空!”這是不正確的。登台區並沒有變為空,而是分期區域和先前的提交之間沒有區別。
指南:
- 提交不應該太大或太小。我們不必對每個文件進行小更改。另外,我們不必只在做出很多更改之後就提交。當您達到要記錄的狀態時,然後進行提交。
- 如果您有錯誤的含義和錯誤的含義:在解決錯誤時發現了錯別字;兩者都不應在重現錯別字時同時犯下,而該錯誤也將被恢復。因此,我們必須單獨這樣做。另外,如果您一起上演,我們也可以單獨拆除它們。
- 提交消息應該是有意義的。由於GIT也用於協作(不僅用於版本控制),提供有意義的提交消息,並且遵循命名插入將幫助項目中的每個人都了解所做的更改。
不進行舞台
我們可以在git添加命令之前提交更改而不將其添加到登台區域IE?
是的!我們可以。讓我們看一個例子。讓我更改file3.txt 。
git提交-am“消息”
-a告訴git可以自動進行修改並已經跟踪的任何文件。
假設您已經上演了整個存儲庫,但是您需要刪除文件。通常,您將使用RM命令刪除文件。但是該文件仍將位於登台區域,因此,為了刪除該文件,我們將在下面進行。
一種可能的方法是使用普通的RM命令,然後git add
由於在此處跟踪file3.txt ,因此顯示file3.txt已刪除。
如果已經上演了一個文件,並且您要刪除它,請按照以下方式刪除:
讓我們嘗試使用git rm
從git狀態我們可以看到,新文件存在。稍後,使用git rm命令後,我們可以看到不存在新文件。 git rm命令從登台區域和工作目錄中刪除文件,而RM命令(Linux)僅刪除您的工作目錄的文件。
如何從跟踪中忽略某些文件
讓我們看看如何忽略某些文件的跟踪。但這引出了一個問題:您為什麼要不散佈文件。這就是為什麼,假設您有日誌文件:您會生成大量的日誌文件,數據集,每次對其進行更改時都會更新。基本上是JSON表示,但是運行筆記本電腦可能每次都會產生不同的輸出,使Git難以跟踪更改。因此使用。 Gitignore避免Git跟踪這些文件。
我們將始終必須忽略跟踪中的某些文件,例如日誌文件。將這些文件添加到存儲庫中只會增加存儲庫的大小。因此,我們必須在git中忽略這些文件。在以下圖像中,我正在創建一個日誌目錄和一個日誌文件。後來,創建了一個.gitignore文件,然後將日誌目錄條目添加到.gitignore文件中。這將阻止git跟踪指定的文件。
我們可以看到日誌文件夾不再跟踪。
處理異常值
有一個問題!當我們開始使用git add或commit跟踪文件,然後將其添加到Gitignore時,Git仍將跟踪該文件或目錄中所做的更改。因此,為避免,我們必須從分期區域刪除文件/目錄。但是git rm將刪除登台和目錄中的文件。因此,如果我們只想將其刪除,我們將使用:
git rm -r - cached Directory_name/fileName
您可以看到文件not_track.txt已跟踪。因此,為避免這種情況的發生,我們必須使用以下命令:
git rm -r –cached Directory_name/filename
看到差異
現在,讓我們看看最後一個提交和分階段文件之間已經做出了什麼變化。
我們將使用以下命令來執行此操作:
git diff-已銷售
以下是上述屏幕截圖的解釋:
.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 show <id></id>
如何獲得上一個提交的更改
git還原 - 已劃分的文件名→這將從上一個提交中獲取文件,並將其放在此處。
git還原。將從分期環境中獲取文件,並將其放入工作目錄中。但是,如果有一個新的未跟踪文件,以前的提交中不存在,它將保持原樣。
我們可以看到,在運行命令git還原後,在file1.txt中所做的更改已恢復為他們以前的提交狀態。
回顧
在這個動手的會話中,我們瀏覽了現實世界開發工作流中使用的基礎GIT命令。我們首先設置了一個git存儲庫,並學習瞭如何創建和編輯文件。引入了關鍵概念,例如工作目錄,分期區域和提交,以及諸如git Init,git add,git commit和git狀態之類的命令。我們探索了GIT跟踪如何更改,管理文件版本以及分階段與未分段的文件。特別強調適當的提交實踐,使用。 Gitignore避免跟踪不必要的文件,並使用Git diff查看差異。最後,我們研究了使用GIT日誌,Git Show和Git Restore檢查以前的提交和恢復更改的方法。
結論
Git起初似乎很不知所措,但是一旦您掌握了核心概念,例如分期,投入,恢復和查看歷史,它就會成為工作流程中的強大工具。在本文中,我們專注於命令行,因為它可以使您對幕後發生的事情具有最大的控制和透明度。了解GIT如何跟踪文件,處理提交和管理更改,使您可以編寫清潔器代碼,更有效地進行協作並在事情出現問題時迅速恢復。無論您是要回滾不好的變化,探索提交歷史記錄還是只是組織工作,Git都可以支持。
以上是初學者的git教程的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

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

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

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

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

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

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

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

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

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

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

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

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

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

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