在軟件開發中,跨多個貢獻者管理代碼可能會變得凌亂。想像一下,有幾個人同時編輯同一文檔,每個人都添加新想法,修復錯誤或調整功能。沒有結構化的系統,很難跟踪誰改變了什麼,何時以及為什麼?錯誤可能很難撤消,並且合併不同版本的項目可能會很快變得混亂。這是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的吉卜力風格圖像]介紹如何使用Chatgpt和版權創建免費圖像](https://img.php.cn/upload/article/001/242/473/174707263295098.jpg?x-oss-process=image/resize,p_40)
OpenAI發布的最新模型GPT-4o,不僅能生成文本,還具備圖像生成功能,引發廣泛關注。其中最受矚目的功能便是“吉卜力風格插畫”的生成。只需將照片上傳至ChatGPT,並給出簡單的指令,即可生成宛如吉卜力工作室作品般夢幻的圖像。本文將詳細解讀實際操作流程、效果感受,以及需要注意的錯誤和版權問題。 OpenAI發布的最新模型“o3”詳情請點擊此處⬇️ OpenAI o3(ChatGPT o3)詳解:特性、定價體系及o4-mini介紹 吉卜力風格文章的英文版請點擊此處⬇️ 利用ChatGPT創作吉

作為一種新的交流方法,在地方政府中使用和引入Chatgpt引起了人們的關注。儘管這種趨勢在廣泛的領域正在發展,但一些地方政府拒絕使用Chatgpt。 在本文中,我們將介紹地方政府中ChatGPT實施的示例。我們將通過各種改革實例,包括支持文件創建和與公民對話,從而探索如何通過各種改革實例來實現地方政府服務的質量和效率提高。 不僅旨在減少員工工作量並改善公民的便利性的地方政府官員,而且都對高級用例感興趣。

您是否聽說過一個名為“福卡斯提示系統”的框架?諸如ChatGpt之類的語言模型非常出色,但是適當的提示對於發揮其潛力至關重要。福卡(Fukatsu)提示是旨在提高輸出準確性的最受歡迎的提示技術之一。 本文解釋了福卡式風格提示的原理和特徵,包括特定的用法方法和示例。此外,我們還引入了其他眾所周知的及時模板和有用的技術來及時設計,因此,根據這些設計,我們將介紹C。

CHATGPT搜索:使用創新的AI搜索引擎有效獲取最新信息! 在本文中,我們將徹底解釋OpenAI提供的新的ChatGpt功能“ ChatGpt搜索”。讓我們仔細研究一下功能,用法以及該工具如何根據實時網絡信息和直觀的易用性來幫助您提高信息收集效率。 chatgpt搜索提供了一種對話互動搜索體驗,該體驗在舒適,隱藏的環境中回答用戶問題,以隱藏廣告

信息爆炸的現代社會,創作出令人信服的文章並非易事。如何在有限的時間和精力內,發揮創造力,撰寫出吸引讀者的文章,需要高超的技巧和豐富的經驗。 這時,作為革命性的寫作輔助工具,ChatGPT 備受矚目。 ChatGPT 利用龐大的數據訓練出的語言生成模型,能夠生成自然流暢、精煉的文章。 本文將介紹如何有效利用 ChatGPT,高效創作高質量文章的技巧。我們將逐步講解使用 ChatGPT 的寫作流程,並結合具體案例,詳細闡述其優缺點、適用場景以及安全使用注意事項。 ChatGPT 將成為作家克服各種障礙,

使用AI創建圖表的有效指南 視覺材料對於有效傳達信息至關重要,但是創建它需要大量時間和精力。但是,由於AI技術(例如Chatgpt和dall-e 3)的興起,圖表創建過程正在發生巨大變化。本文使用這些尖端工具提供了有關有效而有吸引力的圖創建方法的詳細說明。它涵蓋了從想法到完成的所有內容,並包含大量信息,可用於創建圖表,從可以使用的特定步驟,提示,插件和API以及如何使用圖像一代AI“ dall-e 3.”)

解锁ChatGPT Plus:费用、支付方式及升级指南 全球瞩目的顶尖生成式AI,ChatGPT已广泛应用于日常生活和商业领域。虽然ChatGPT基本免费,但付费版ChatGPT Plus提供多种增值服务,例如插件、图像识别等,显著提升工作效率。本文将详细解读ChatGPT Plus的收费标准、支付方式及升级流程。 OpenAI最新图像生成技术“GPT-4o图像生成”详情请点击: GPT-4o图像生成详解:使用方法、提示词示例、商业应用及与其他AI的差异 目录 ChatGPT Plus费用 Ch

如何使用Chatgpt簡化您的設計工作並提高創造力 本文將詳細說明如何使用ChatGpt創建設計。我們將介紹在各個設計領域中使用Chatgpt的示例,例如思想,文本生成和網頁設計。我們還將介紹可以幫助您提高各種創意作品的效率和質量(例如圖形設計,插圖和徽標設計)的效率和質量。請看一下AI如何大大擴展您的設計可能性。 目錄 chatgpt:設計創建的強大工具


熱AI工具

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

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

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

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

熱門文章

熱工具

SecLists
SecLists是最終安全測試人員的伙伴。它是一個包含各種類型清單的集合,這些清單在安全評估過程中經常使用,而且都在一個地方。 SecLists透過方便地提供安全測試人員可能需要的所有列表,幫助提高安全測試的效率和生產力。清單類型包括使用者名稱、密碼、URL、模糊測試有效載荷、敏感資料模式、Web shell等等。測試人員只需將此儲存庫拉到新的測試機上,他就可以存取所需的每種類型的清單。

SublimeText3 英文版
推薦:為Win版本,支援程式碼提示!

Safe Exam Browser
Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。

Dreamweaver CS6
視覺化網頁開發工具

Atom編輯器mac版下載
最受歡迎的的開源編輯器