關于git的安裝(windows)

1.git的介紹

Git 是一個分布式版本控制系統,由 Linus Torvalds 在 2005 年為 Linux 內核開發而創建。它能夠高效地處理從小型到超大型項目的版本管理,具有以下特點:

  • 分布式架構:每個開發者本地都有完整的倉庫副本
  • 高效性能:快速處理大項目,操作主要在本地完成
  • 強大的分支系統:輕松創建、合并和管理分支
  • 數據完整性:使用 SHA-1 哈希確保數據不被篡改

2.Git 的安裝

2.1Git 的下載

這個就需要去 Git 官網下載對應系統的軟件了,下載地址為?git-scm.com或者gitforwindows.org,或者阿里鏡像

2.2 Git 的安裝

我下載的版本是阿里鏡像里的?Git-2.48.1-64-bit.exe,接下來我們就對這個版本進行安裝工作。

2.2.1 使用許可聲明

雙擊下載后的?Git-2.48.1-64-bit.exe,開始安裝,這個界面主要展示了 GPL 第 2 版協議1的內容,點擊 [next] 到第二步。

2.2.2 選擇安裝目錄

可點擊 “Browse…” 更換目錄,也可直接在方框里面改,我一般直接將 “C” 改為 “D”,這樣就直接安裝在 D 盤里了。點擊 [next] 到第三步。

2.2.3 選擇安裝組件

大家根據自己的需要選擇勾選。點擊 [next] 到第四步。

方框內 Git 可改為其他名字,也可點擊 “Browse...” 選擇其他文件夾或者給"Don't create a Start Menu folder" 打勾不要文件夾,點擊 [next] 到第五步。

2.2.5 選擇 Git 默認編輯器

Git 安裝程序里面內置了 10 種編輯器供你挑選,比如 Atom、Notepad、Notepad++、Sublime Text、Visual Studio Code、Vim 等等,默認的是 Vim ,選擇 Vim 后可以直接進行到下一步,但是 Vim 是純命令行,操作有點難度,需要學習。如果選其他編輯器,則還需要去其官網安裝后才能進行下一步。


下圖為默認編輯器 Vim.可直接點擊 [next] 到第六步。
?

2.2.6 決定初始化新項目(倉庫)的主干名字

第一種是讓 Git 自己選擇,名字是 master ,但是未來也有可能會改為其他名字;第二種是我們自行決定,默認是 main,當然,你也可以改為其他的名字。一般默認第一種,點擊 [next] 到第七步。

注: 第二個選項下面有個 NEW! ,說很多團隊已經重命名他們的默認主干名為 main . 這是因為2020 年非裔男子喬治·弗洛伊德因白人警察暴力執法慘死而掀起的 Black Lives Matter(黑人的命也是命)運動,很多人認為 master 不尊重黑人,呼吁改為 main.
?

2.2.7 調整你的 path 環境變量

第一種是僅從 Git Bash 使用 Git。這個的意思就是你只能通過 Git 安裝后的 Git Bash 來使用 Git ,其他的什么命令提示符啊等第三方軟件都不行。

第二種是從命令行以及第三方軟件進行 Git。這個就是在第一種基礎上進行第三方支持,你將能夠從 Git Bash,命令提示符(cmd) 和 Windows PowerShell 以及可以從 Windows 系統環境變量中尋找 Git 的任何第三方軟件中使用 Git。推薦使用這個。

第三種是從命令提示符使用 Git 和可選的 Unix 工具。選擇這種將覆蓋 Windows 工具,如 “ find 和 sort ”。只有在了解其含義后才使用此選項。一句話,適合比較懂的人折騰。
?

2.2.8 選擇 SSH 執行文件

2.2.9 選擇HTTPS后端傳輸

2.2.10 配置行尾符號轉換

2.2.11 配置終端模擬器以與 Git Bash 一起使用

2.2.12 選擇默認的 “git pull” 行為

“git pull” 是什么意思呢?
git pull 就是獲取最新的遠程倉庫分支到本地,并與本地分支合并

上面給了三個 “git pull” 的行為:
第一個是 merge
第二個是 rebase
第三個是 直接獲取

第一種 git pull = git fetch + git merge
第二種 git pull = git fetch + git rebase
第三種 git pull = git fetch ?(這個沒試過,純屬猜測

一般默認選擇第一項,git rebase 絕大部分程序員都用不好或者不懂,而且風險很大,但是很多會用的人也很推崇,但是用不好就是災難。

git pull 只是拉取遠程分支并與本地分支合并,而 git fetch 只是拉取遠程分支,怎么合并,選擇 merge 還是 rebase ,可以再做選擇。


2.2.13 選擇一個憑證幫助程序

2.2.14 配置額外的選項

安裝中.....

到此就安裝結束了

3.git的簡單使用

可以查看這里git詳細使用教程_git使用方法-CSDN博客

工作流程

  1. 初始化或克隆倉庫::使用?git init?創建一個新倉庫或?git clone?克隆一個現有倉庫。
  2. 修改代碼::在工作區進行文件的編寫和修改。
  3. 添加到暫存區::使用?git add?命令將需要跟蹤的文件添加到暫存區。
  4. 提交到版本庫::使用?git commit?命令將暫存區的所有更改提交到本地版本庫。
  5. 拉取與推送::在團隊協作時,使用?git pull?獲取遠程更新,使用?git push?上傳本地的更改。

Git 基本操作

Git 的工作就是創建和保存你項目的快照及與之后的快照進行對比。

本章將對有關創建與提交你的項目快照的命令作介紹。

Git 常用的是以下 6 個命令:git clonegit pushgit add?、git commitgit checkoutgit pull,后面我們會詳細介紹。

說明:

  • workspace:工作區
  • staging area:暫存區/緩存區
  • local repository:版本庫或本地倉庫
  • remote repository:遠程倉庫

一個簡單的操作步驟:

$ git init    
$ git add .    
$ git commit  
  • git init - 初始化倉庫。
  • git add . - 添加文件到暫存區。
  • git commit - 將暫存區內容添加到倉庫中。

創建倉庫命令

下表列出了 git 創建倉庫的命令:

命令說明
git init初始化倉庫
git clone拷貝一份遠程倉庫,也就是下載一個項目。

提交與修改

Git 的工作就是創建和保存你的項目的快照及與之后的快照進行對比。

下表列出了有關創建與提交你的項目的快照的命令:

命令說明
git add添加文件到暫存區
git status查看倉庫當前的狀態,顯示有變更的文件。
git diff比較文件的不同,即暫存區和工作區的差異。
git difftool使用外部差異工具查看和比較文件的更改。
git range-diff比較兩個提交范圍之間的差異。
git commit提交暫存區到本地倉庫。
git reset回退版本。
git rm將文件從暫存區和工作區中刪除。
git mv移動或重命名工作區文件。
git notes添加注釋。
git checkout分支切換。
git switch?(Git 2.23 版本引入)更清晰地切換分支。
git restore?(Git 2.23 版本引入)恢復或撤銷文件的更改。
git show顯示 Git 對象的詳細信息。

提交日志

命令說明
git log查看歷史提交記錄
git blame <file>以列表形式查看指定文件的歷史修改記錄
git shortlog生成簡潔的提交日志摘要
git describe生成一個可讀的字符串,該字符串基于 Git 的標簽系統來描述當前的提交

遠程操作

命令說明
git remote遠程倉庫操作
git fetch從遠程獲取代碼庫
git pull下載遠程代碼并合并
git push上傳遠程代碼并合并
git submodule管理包含其他 Git 倉庫的項目

Git 文件狀態

Git 的文件狀態分為三種:工作目錄(Working Directory)、暫存區(Staging Area)、本地倉庫(Local Repository)。了解這些概念及其交互方式是掌握 Git 的關鍵。

工作目錄(Working Directory)

工作目錄是你在本地計算機上看到的項目文件。它是你實際操作文件的地方,包括查看、編輯、刪除和創建文件。所有對文件的更改首先發生在工作目錄中。

在工作目錄中的文件可能有以下幾種狀態:

  • 未跟蹤(Untracked):新創建的文件,未被 Git 記錄。
  • 已修改(Modified):已被 Git 跟蹤的文件發生了更改,但這些更改還沒有被提交到 Git 記錄中。

暫存區(Staging Area)

暫存區,也稱為索引(Index),是一個臨時存儲區域,用于保存即將提交到本地倉庫的更改。你可以選擇性地將工作目錄中的更改添加到暫存區中,這樣你可以一次提交多個文件的更改,而不必提交所有文件的更改。

  • 使用?git add <filename>?命令將文件從工作目錄添加到暫存區。
  • 使用?git add .?命令將當前目錄下的所有更改添加到暫存區。
git add <filename>  # 添加指定文件到暫存區
git add .           # 添加所有更改到暫存區

本地倉庫(Local Repository)

本地倉庫是一個隱藏在?.git?目錄中的數據庫,用于存儲項目的所有提交歷史記錄。每次你提交更改時,Git 會將暫存區中的內容保存到本地倉庫中。

使用?git commit -m "commit message"?命令將暫存區中的更改提交到本地倉庫。

git commit -m "commit message"  # 提交暫存區的更改到本地倉庫

文件狀態的轉換流程

未跟蹤(Untracked): 新創建的文件最初是未跟蹤的。它們存在于工作目錄中,但沒有被 Git 跟蹤。

touch newfile.txt  # 創建一個新文件
git status         # 查看狀態,顯示 newfile.txt 未跟蹤

已跟蹤(Tracked): 通過?git add?命令將未跟蹤的文件添加到暫存區后,文件變為已跟蹤狀態。

git add newfile.txt  # 添加文件到暫存區
git status           # 查看狀態,顯示 newfile.txt 在暫存區

已修改(Modified): 對已跟蹤的文件進行更改后,這些更改會顯示為已修改狀態,但這些更改還未添加到暫存區。

echo "Hello, World!" > newfile.txt  # 修改文件
git status                          # 查看狀態,顯示 newfile.txt 已修改

已暫存(Staged): 使用?git add?命令將修改過的文件添加到暫存區后,文件進入已暫存狀態,等待提交。

git add newfile.txt  # 添加文件到暫存區
git status           # 查看狀態,顯示 newfile.txt 已暫存

已提交(Committed): 使用?git commit?命令將暫存區的更改提交到本地倉庫后,這些更改被記錄下來,文件狀態返回為已跟蹤狀態。

git commit -m "Added newfile.txt"  # 提交更改
git status                         # 查看狀態,工作目錄干凈

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

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

相關文章

Java后端開發?接口封裝器!

開發接口確實是Java后端開發中最核心、最可見的產出工作。“對入參校驗、處理業務邏輯、返回格式處理”——精準地描述了一個API接口的核心處理流程。 但這只是冰山之上最直觀的部分。一個專業、穩健、可擴展的后端系統&#xff0c;其復雜性和價值絕大部分隱藏在冰山之下。結合…

【沉浸式解決問題】NVIDIA 顯示設置不可用。 您當前未使用連接到NVIDIA GPU 的顯示器。

目錄一、問題描述二、環境版本三、原因分析四、解決方案一、問題描述 在看一篇cuda安裝的教程時&#xff0c;第一步是打開NVIDIA 控制面板&#xff0c;但是我打不開&#xff1a; NVIDIA 顯示設置不可用。 您當前未使用連接到NVIDIA GPU 的顯示器。 二、環境版本 設備&#xf…

牛客周賽 Round 106(小苯的方格覆蓋/小苯的數字折疊/ 小苯的波浪加密器/小苯的數字變換/小苯的洞數組構造/ 小苯的數組計數)

A 小苯的方格覆蓋思路&#xff1a;怎么擺第三行都是橫放的2*1&#xff1b;故若n為奇數&#xff0c;總格子數3n為奇數&#xff0c;無法被2整除&#xff0c;直接排除。#define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<iostream> #include<bits/stdc…

高并發內存池(16)-三層緩存的回收過程

高并發內存池&#xff08;16&#xff09;-三層緩存的回收過程 內存池的回收過程是內存管理系統的關鍵環節&#xff0c;它通過分層協作和智能合并機制&#xff0c;確保內存高效重復利用。以下是完整的回收流程解析&#xff1a;一、回收觸發場景 ThreadCache回收&#xff1a;線程…

深入解析MyBatis Mapper接口工作原理

在Java持久層框架中&#xff0c;MyBatis以其靈活性和易用性贏得了廣大開發者的青睞。作為MyBatis的核心概念之一&#xff0c;Mapper接口機制極大地簡化了數據庫操作代碼的編寫。本文將深入剖析MyBatis Mapper接口的工作原理&#xff0c;從基礎概念到底層實現&#xff0c;幫助開…

瘋狂星期四文案網第49天運營日記

網站運營第49天&#xff0c;點擊觀站&#xff1a; 瘋狂星期四 crazy-thursday.com 全網最全的瘋狂星期四文案網站 運營報告 今日訪問量 常州蘇州那些ip鍥而不舍的掃了很多php的頁面 今日搜索引擎收錄情況 k頁面比較嚴重了&#xff0c;哎。 我感覺不該做其他類型文案的 網…

從GPT-5發布來分析LLM大模型幻覺收斂(一)

GPT-5 號稱在任何領域都有博士級別能力。在醫療健康領域&#xff0c;能夠對專業的癌癥診斷報告做通俗易懂的解讀。對復雜的放射治療方案決策&#xff0c;也能提供詳細的分析報告&#xff0c;幫助病人權衡利弊。一位癌癥患者的家屬在發布會上表示&#xff0c;“ 真正鼓舞人心的是…

大模型安全概述、LlamaFirewall

資料搜集整理自網絡。 概述 大模型爆火之后&#xff0c;衍生出大模型安全這一個比較新的領域。和之前的文章一樣&#xff0c;本文有不少新穎的名詞、概念、理論。 信通院、清華大學等多個單位聯合發布的《大模型安全實踐&#xff08;2024&#xff09;》&#xff0c;提出LLM安…

【目標檢測】論文閱讀3

Lightweight tomato ripeness detection algorithm based on the improved RT-DETR 論文地址 摘要 番茄具有很高的營養價值&#xff0c;需要對成熟果實進行準確的成熟度鑒定和選擇性采收&#xff0c;以顯著提高番茄收獲管理的效率和經濟效益。以往對番茄智能收獲的研究往往只以…

Python音頻分析與線性回歸:探索聲音中的數學之美

摘要&#xff1a;通過Python實現WAV音頻信號處理與線性回歸建模&#xff0c;揭示雙聲道音頻的數學關聯性&#xff0c;為聲音特征分析提供新視角。1. 音頻數據處理流程 1.1 WAV文件讀取與預處理 使用scipy.io.wavfile讀取音頻文件&#xff0c;獲取采樣率與時域信號數據&#xff…

Linux shell腳本數值計算與條件執行

變量的數值計算實踐 1 算術運算符 如果要執行算術運算&#xff0c;就會離不開各種運算符號&#xff0c;和其他編程語言類似&#xff0c;Shell 也有很多算術運算符。 下面就給大家介紹一下常見的 Shell 算術運算符&#xff1a; 、-&#xff0c;一元正號和負號。、-&#xff0c;加…

C#實戰:基于iTextSharp實現PDF加密小工具

目錄 1、技術框架 2、代碼實戰 2.1 創建窗體 2.2 后臺代碼邏輯 2.3 PDF加密用戶類型 2.4 PDF加密權限列表 3、運行效果 4、總結 大家日常辦公中有時候為了文檔資料的安全需要對文檔進行加密,尤其是針對PDF文檔這個場景還是非常廣泛的。今天給大家分享使用C#來實現PDF…

基于Labview的旋轉機械AI智能診斷系統

1.摘要本文基于 CWRU 公開軸承數據集提出了一套“AI 輕量級模型 LabVIEW 智能診斷系統”。首先&#xff0c;LabVIEW 端構建了可視化、可交互的智能診斷平臺。系統能夠加載本地振動信號數據&#xff0c;調用訓練好的深度學習模型進行故障識別與狀態判斷。界面集成信號時域監測、…

Qt從qmake遷移到cmake的記錄

文章目錄1.UI程序[開啟/關閉]控制臺2.增加宏定義3.在主項目中引入子項目4.使用C語言文件1.UI程序[開啟/關閉]控制臺 qmake&#xff1a; CONFIG console DEFINES QT_MESSAGELOGCONTEXTcmake&#xff1a; set(CMAKE_WIN32_EXECUTABLE OFF) # ON為關閉控制臺 OFF為開啟控制臺2…

LangChain4J-(3)-模型參數配置

LangChain4j 提供了靈活的模型參數配置方式&#xff0c;允許你根據不同的 AI 模型&#xff08;如 OpenAI、GPT-4、Anthropic 等&#xff09;設置各種參數來控制生成結果。后面手擼代碼繼續在之前章節的代碼上拓展一、日志配置&#xff08;Logging&#xff09;在 LangChain4j 中…

LangGraph - API多種訪問方式

本文介紹了Langgraph服務的四種調用方式&#xff1a;1. 通過LangGraph Studio UI界面手動測試&#xff1b;2. 使用Python SDK進行同步/異步調用&#xff1b;3. 通過REST API測試&#xff1b;4. 使用JavaScript SDK接入。Langgraph 服務端代碼 graph.pyfrom langchain_openai im…

HEI-612 HART/EtherNet/IPModbus TCP 網關:打通工業通信壁壘

在工業自動化領域&#xff0c;HART 協議設備的廣泛應用與以太網網絡的高效管理常面臨 “協議孤島” 難題 —— 老舊 HART 傳感器、變送器難以接入 EtherNet/IP 或 Modbus TCP 系統&#xff0c;數據雙向交互卡頓、調試復雜、兼容性差等問題&#xff0c;嚴重制約生產效率提升。上…

OSPF 的工作過程、Router ID 機制、報文結構

視頻版講解>>>>>>>>>>>>>>路由協議深度解析&#xff1a;從靜態路由到 OSPF 實戰 一、回顧靜態路由&#xff1a;拓撲與核心邏輯 我們先回到上周講解的拓撲圖&#xff0c;這張圖是理解靜態路由的核心載體 —— 路由器作為網段分割的…

Qt 6 與 Qt 5 存在的兼容性差異

之前有提到。我的是Qt5&#xff0c;我朋友的是Qt 6&#xff0c;由于版本不兼容問題&#xff0c;在遷移時會有問題。所以這一我們說說這兩個的區別。&#xff08; 正文開始嘍&#xff01; 總結來說&#xff1a;Qt5遷移至 Qt 6 需&#xff1a;1. 破壞性變更&#xff08;必須修改…

本地windows電腦部署html網頁到互聯網:html+node.js+ngrok/natapp

目錄 核心概念&#xff1a;為什么不能直接分享HTML文件&#xff1f; 1&#xff0c;html文件修改 2&#xff0c;安裝設置node.js 3&#xff0c;路由器虛擬服務器 4&#xff0c;采用ngrok工具進行內網穿透&#xff08;國外工具&#xff09; 5&#xff0c;采用natapp工具進行…