主頁 > 軟體工程 > 幫你短時間拿下Git,Git詳細教程(濃縮的都是精華)

幫你短時間拿下Git,Git詳細教程(濃縮的都是精華)

2022-12-10 07:09:09 軟體工程

Git學習筆記

Git是一個開源的分布式版本控制系統,可以有效、高速地處理從很小到非常大的專案版本管理,

在團隊開發中git是必不可少的,它是目前為止最流行的版本控制工具

Git是免費、開源的,由Linux之父花了兩周時間寫出來的(人與人之間的差距怎么這么大!)

b站狂神:有道無術、術尚可求,有術無道、止于術!

集中式和分布式的區別

除了git還有svn之類的版本控制系統,它們主要區別在于一個是分布式,一個是集中式

分布式

代表:Git

分布式版本控制系統,每個人的電腦都相當于服務器,當你拉取倉庫的代碼后,你的電腦就是一個完整的版本庫,作業時不需要聯網,所有版本都在自己的本機里,當你想把自己的代碼提交到主倉庫時,只需要在聯網時合并推送到主倉庫就可以了,

集中式

代表:SVN

集中式版本控制系統,都有一個統一的版本號,放在一個統一的服務器上,作業時把最新的版本的代碼拉取到電腦上,代碼完成后在把寫完的代碼推送到服務器上,由于所有的操作都需要服務器的支持,對網路要求比較大,而且如果服務器里的資料出了問題,那么所有的資料都會丟失,本機客戶端僅保存當前版本的資訊,

Git安裝及配置

下載

git官網下載:https://git-scm.com/download/win(速度較慢,不推薦)

鏡像下載:https://registry.npmmirror.com/binary.html?path=git-for-windows/

安裝

下載對應版本后無腦安裝即可(更改安裝位置的注意一下安裝位置)

安裝完git后會在開始選單和右鍵檔案夾下看到對應的git程式,這是因為在剛才安裝時候無腦下一步的結果,由于個人不喜歡右鍵選單項多出來東西,所以這里介紹下怎么洗掉它

洗掉右鍵選單項

  1. Win+R輸入regedit打開注冊表

  2. 進入右鍵選單目錄:HKEY_CLASSES_ROOT\Directory\Background\shell

  3. 洗掉下面兩個檔案夾即可

    HKEY_CLASSES_ROOT\Directory\Background\shell\git_shell
    HKEY_CLASSES_ROOT\Directory\Background\shell\git_gui
    

Git環境配置

在安裝完Git后,是需要一些全域配置的

這里不配置也可以,當遇到要求登陸權限的遠程倉庫時會讓你在手動輸入用戶名、郵箱、以及密碼

Git配置

列出配置的所有命令:git config

設定用戶名和密碼:

git config --global user.name "your name"      // 設定全域用戶名
git config --global user.email "your email"    // 設定郵箱

這里的 --global 為全域配置,如果要在特定的的專案中使用不同的名稱,那就不使用該引數,只為當前所在倉庫配置,

查看所有配置:git config -l

image-20221209140639112

Git相關的組態檔:

  1. 全域組態檔:C:\Users\你的用戶名\.gitconfig
  2. 系統組態檔:你的安裝目錄\Git\etc\gitconfig

Git核心知識

三大區域

git在本地分為三個區域,分別為作業區、快取區和資源區(本地),其實還有一個遠程的一個倉庫區,但不在本地就不做過多解釋

作業區:平時放專案代碼的地方,包括git已經管理的檔案區域和新增以及修改的檔案區域

快取區:用于臨時存放改動的代碼,它本質上是一個檔案,把作業區的部分或者全部已經確認需要保存的檔案提交至暫存區,先保存一下,如果確認好了可以直接提交到本地倉庫中,如果暫時不能做決定可以暫時先放到暫存區,等待下一步操作,

資源區:又稱作版本庫或倉庫區,將某一個歷史節點的保存檔案串列當做是一個版本,這里面有你提交到所有版本的資料,其中的HEAD指標默認指向最新放入倉庫的版本

倉庫區:遠程的倉庫,托管代碼的服務器,可以是Gitee、GitHub

作業流程

git的作業流程:

  1. 在工具區中增加或修改檔案
  2. 將新的版本代碼添加到快取區
  3. 將快取取得檔案提交到遠程倉庫

Git專案搭建

創建 Git 版本庫

首先,你需要新建一個存放版本庫的目錄,然后進入到該目錄所在路徑,然后執行:

# 在當前目錄新建一個Git代碼庫
git init

如果在目錄中看到包含有.git的隱藏目錄,那就證明創建成功

克隆遠程版本庫

將遠程服務器上的倉庫完全鏡像一份到本地上

# 克隆一個專案和它的所有版本資訊
git clone [url] # https://gitee.com/xuande-hk/xuande-hk.git

我這里克隆到是我靜態博客地址,可以更該為別的地址

分支管理

一般情況下master主分支應當保存最穩定的代碼,作業時應當在新建的dev分支上作業,當發布時把dev代碼合并到主分支master上

Git基礎操作

檔案操作

檔案狀態

  1. 已暫存狀態(staged),表示對一個已修改檔案的當前版本做了標記,使之包含在下次提交的快照,git add.命令可以將檔案狀態改為staged

  2. 已修改狀態(modified),表示修改了檔案,但是還沒有保存到資料庫中

  3. 已提交狀態(committed),表示資料已經安全的保存在本地資料庫中

管理檔案命令

# 查看指定檔案狀態
git status [filename]
# 查看所有檔案狀態
git status

# 添加單個檔案到暫存區
git add [filename]
# 添加所有檔案到暫存區
git add .    

# 如果暫存區有檔案,則將其中的檔案提交到倉庫
git commit        
# 帶注釋提交,說明你增加或修改的內容
git commit -m 'your comments'

# 查看版本庫中所有的改動
git diff    
# 查看具體檔案的改動
git diff Readme.md       

# 顯示所有提交的歷史記錄
git log     
# 單行顯示提交歷史記錄的內容
git log --pretty=oneline  

# 回退到上一個提交版本
git reset --hard HEAD^  
# 回退到上上一個提交版本
git reset --hard HEAD^^      
# 回退到未來的某個版本
git reflog
# 會退到 commit_id 指定的提交版本
git reset --hard 'commit_id'    

# 如果指定檔案在作業區,則丟棄其修改
git checkout -- [filename]   
# 丟棄當前目錄下所有作業區中檔案的修改
git checkout -- . 

# 洗掉已經被提交過的檔案
git rm [filename] 

分支操作

分支是版本控制系統中很重要的一個概念,在 Git 中新建、合并等分支的操作非常輕量便捷,因此我們會很經常的用到,

# 查看本地分支資訊
git branch         
# 查看相對詳細的本地分支資訊
git branch -v     
# 查看包括遠程倉庫在內的分支資訊
git branch -av     

# 新建一個名稱為 dev 的分支
git branch dev 
# 新建完 dev 分支以后,通過該命令切換到 dev 分支
git checkout dev 
# 新建 dev 分支,并切換到該分支上
git checkout -b dev 
# 切換回 master 分支
git checkout master   
# 合并指定分支到當前分支
git merge [branch] 

# 洗掉 dev 分支
git branch -d dev 

遠程倉庫

上面的所有命令都是針對本地倉庫的操作,但是當我們多個人來協作時,會將代碼發布到一個統一的遠程倉庫,當多個人在本地操作完成以后,會推送到遠程倉庫,其他人協作時,需要先同步遠程倉庫的內容,再推送自己的修改,

# git clone 后面的倉庫地址,可以支持多種協議,如 https, ssh 等,
git clone https://github.com/git/git.git
# 為本地倉庫添加遠程倉庫
git remote add origin your_remote_git_repo 

# 第一次推送時使用,可以簡化后面的推送或者拉取命令使用
git push -u origin master 
# 將本地 master 分支推送到 origin 遠程分支
git push origin master    

# 拉取遠程倉庫內容,但不會自動合并
git fetch origin master  
# 拉取遠程倉庫內容,自動合并
git pull origin master

# 查看遠程倉庫資訊
git remote [-v]
# 建立本地分支和遠程分支的關聯
git branch --set-upstream 'local_branch' origin/remote_branch
# 修改本地倉庫對應的遠程倉庫地址
git remote set-url origin [url]

標簽管理

在專案開發程序中,當一個版本發布完成時,是需要對代碼打上標簽,便于后續檢索,獲處于其他的原因,需要對某個提交打上特定的標簽,

# 創建標簽
git tag -a 'tagname' -m 'comment' 'commit_id'
# 查看本地倉庫中的所有標簽
git tag 
# 查看具體標簽資訊
git show tagname
# 洗掉本地標簽
git tag -d tagname

# 推送標簽到遠程倉庫
git push origin tagname
# 推送所有標簽到遠程倉庫
git push origin --tags
# 洗掉遠程標簽
git push origin --delete tagname

Git其他操作

系結IDEA

IDEA版本2021.3.2

git版本:2.36.0

作業系統:win10

打開idea,找到vcs,創建倉庫

image-20221209163210278

創建以后vcs會變成git,點擊git后找到管理遠程

image-20221209163350044

添加遠程倉庫的地址(沒有的話去gitee或者github建一個倉庫)

image-20221209163501172

之后點擊提交就可以了(需要輸入提交資訊)

image-20221209163554028

注:控制臺輸入命令也可以實作

轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/539677.html

標籤:其他

上一篇:【求助帖】從技術轉為專案經理后,如何快速進入角色?

下一篇:【求助帖】從技術轉為專案經理后,如何快速進入角色?

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • Git本地庫既關聯GitHub又關聯Gitee

    創建代碼倉庫 使用gitee舉例(github和gitee差不多) 1.在gitee右上角點擊+,選擇新建倉庫 ? 2.選擇填寫倉庫資訊,然后進行創建 ? 3.服務端已經準備好了,本地開始作準備 (1)Git 全域設定 git config --global user.name "成鈺" git c ......

    uj5u.com 2020-09-10 05:04:14 more
  • CODING DevOps 代碼質量實戰系列第二課,相約周三

    隨著 ToB(企業服務)的興起和 ToC(消費互聯網)產品進入成熟期,線上故障帶來的損失越來越大,代碼質量越來越重要,而「質量內建」正是 DevOps 核心理念之一。**《DevOps 代碼質量實戰(PHP 版)》**為 CODING DevOps 代碼質量實戰系列的第二課,同時也是本系列的 PHP ......

    uj5u.com 2020-09-10 05:07:43 more
  • 推薦Scrum書籍

    推薦Scrum書籍 直接上干貨,推薦書籍清單如下(推薦有順序的哦) Scrum指南 Scrum精髓 Scrum敏捷軟體開發 Scrum捷徑 硝煙中的Scrum和XP : 我們如何實施Scrum 敏捷軟體開發:Scrum實戰指南 Scrum要素 大規模Scrum:大規模敏捷組織的設計 用戶故事地圖 用 ......

    uj5u.com 2020-09-10 05:07:45 more
  • CODING DevOps 代碼質量實戰系列最后一課,周四發車

    隨著 ToB(企業服務)的興起和 ToC(消費互聯網)產品進入成熟期,線上故障帶來的損失越來越大,代碼質量越來越重要,而「質量內建」正是 DevOps 核心理念之一。 **《DevOps 代碼質量實戰(Java 版)》**為 CODING DevOps 代碼質量實戰系列的最后一課,同時也是本系列的 ......

    uj5u.com 2020-09-10 05:07:52 more
  • 敏捷軟體工程實踐書籍

    Scrum轉型想要做好,第一步先了解并真正落實Scrum,那么我推薦的Scrum書籍是要看懂并實踐的。第二步是團隊的工程實踐要做扎實。 下面推薦工程實踐書單: 重構:改善既有代碼的設計 決議極限編程 : 擁抱變化 代碼整潔代碼 程式員的職業素養 修改代碼的藝術 撰寫可讀代碼的藝術 測驗驅動開發 : ......

    uj5u.com 2020-09-10 05:07:55 more
  • Jenkins+svn+nginx實作windows環境自動部署vue前端專案

    前面文章介紹了Jenkins+svn+tomcat實作自動化部署,現在終于有空抽時間出來寫下Jenkins+svn+nginx實作自動部署vue前端專案。 jenkins的安裝和配置已經在前面文章進行介紹,下面介紹實作vue前端專案需要進行的哪些額外的步驟。 注意:在安裝jenkins和nginx的 ......

    uj5u.com 2020-09-10 05:08:49 more
  • CODING DevOps 微服務專案實戰系列第一課,明天等你

    CODING DevOps 微服務專案實戰系列第一課**《DevOps 微服務專案實戰:DevOps 初體驗》**將由 CODING DevOps 開發工程師 王寬老師 向大家介紹 DevOps 的基本理念,并探討為什么現代開發活動需要 DevOps,同時將以 eShopOnContainers 項 ......

    uj5u.com 2020-09-10 05:09:14 more
  • CODING DevOps 微服務專案實戰系列第二課來啦!

    近年來,工程專案的結構越來越復雜,需要接入合適的持續集成流水線形式,才能滿足更多變的需求,那么如何優雅地使用 CI 能力提升生產效率呢?CODING DevOps 微服務專案實戰系列第二課 《DevOps 微服務專案實戰:CI 進階用法》 將由 CODING DevOps 全堆疊工程師 何晨哲老師 向 ......

    uj5u.com 2020-09-10 05:09:33 more
  • CODING DevOps 微服務專案實戰系列最后一課,周四開講!

    隨著軟體工程越來越復雜化,如何在 Kubernetes 集群進行灰度發布成為了生產部署的”必修課“,而如何實作安全可控、自動化的灰度發布也成為了持續部署重點關注的問題。CODING DevOps 微服務專案實戰系列最后一課:**《DevOps 微服務專案實戰:基于 Nginx-ingress 的自動 ......

    uj5u.com 2020-09-10 05:10:00 more
  • CODING 儀表盤功能正式推出,實作作業資料可視化!

    CODING 儀表盤功能現已正式推出!該功能旨在用一張張統計卡片的形式,統計并展示使用 CODING 中所產生的資料。這意味著無需額外的設定,就可以收集歸納寶貴的作業資料并予之量化分析。這些海量的資料皆會以圖表或串列的方式躍然紙上,方便團隊成員隨時查看各專案的進度、狀態和指標,云端協作迎來真正意義上 ......

    uj5u.com 2020-09-10 05:11:01 more
最新发布
  • windows系統git使用ssh方式和gitee/github進行同步

    使用git來clone專案有兩種方式:HTTPS和SSH:
    HTTPS:不管是誰,拿到url隨便clone,但是在push的時候需要驗證用戶名和密碼;
    SSH:clone的專案你必須是擁有者或者管理員,而且需要在clone前添加SSH Key。SSH 在push的時候,是不需要輸入用戶名的,如果配置... ......

    uj5u.com 2023-04-19 08:41:12 more
  • windows系統git使用ssh方式和gitee/github進行同步

    使用git來clone專案有兩種方式:HTTPS和SSH:
    HTTPS:不管是誰,拿到url隨便clone,但是在push的時候需要驗證用戶名和密碼;
    SSH:clone的專案你必須是擁有者或者管理員,而且需要在clone前添加SSH Key。SSH 在push的時候,是不需要輸入用戶名的,如果配置... ......

    uj5u.com 2023-04-19 08:35:34 more
  • 2023年農牧行業6大CRM系統、5大場景盤點

    在物聯網、大資料、云計算、人工智能、自動化技術等現代資訊技術蓬勃發展與逐步成熟的背景下,數字化正成為農牧行業供給側結構性變革與高質量發展的核心驅動因素。因此,改造和提升傳統農牧業、開拓創新現代智慧農牧業,加快推進農牧業的現代化、資訊化、數字化建設已成為農牧業發展的重要方向。 當下,企業數字化轉型已經 ......

    uj5u.com 2023-04-18 08:05:44 more
  • 2023年農牧行業6大CRM系統、5大場景盤點

    在物聯網、大資料、云計算、人工智能、自動化技術等現代資訊技術蓬勃發展與逐步成熟的背景下,數字化正成為農牧行業供給側結構性變革與高質量發展的核心驅動因素。因此,改造和提升傳統農牧業、開拓創新現代智慧農牧業,加快推進農牧業的現代化、資訊化、數字化建設已成為農牧業發展的重要方向。 當下,企業數字化轉型已經 ......

    uj5u.com 2023-04-18 08:00:18 more
  • 計算機組成原理—存盤器

    計算機組成原理—硬體結構 二、存盤器 1.概述 存盤器是計算機系統中的記憶設備,用來存放程式和資料 1.1存盤器的層次結構 快取-主存層次主要解決CPU和主存速度不匹配的問題,速度接近快取 主存-輔存層次主要解決存盤系統的容量問題,容量接近與價位接近于主存 2.主存盤器 2.1概述 主存與CPU的聯 ......

    uj5u.com 2023-04-17 08:20:31 more
  • 談一談我對協同開發的一些認識

    如今各互聯網公司普通都使用敏捷開發,采用小步快跑的形式來進行專案開發。如果是小專案或者小需求,那一個開發可能就搞定了。但對于電商等復雜的系統,其功能多,結構復雜,一個人肯定是搞不定的,所以都是很多人來共同開發維護。以我曾經待過的商城團隊為例,光是后端開發就有七十多人。 為了更好地開發這類大型系統,往 ......

    uj5u.com 2023-04-17 08:18:55 more
  • 專案管理PRINCE2核心知識點整理

    PRINCE2,即 PRoject IN Controlled Environment(受控環境中的專案)是一種結構化的專案管理方法論,由英國政府內閣商務部(OGC)推出,是英國專案管理標準。
    PRINCE2 作為一種開放的方法論,是一套結構化的專案管理流程,描述了如何以一種邏輯性的、有組織的方法,... ......

    uj5u.com 2023-04-17 08:18:51 more
  • 談一談我對協同開發的一些認識

    如今各互聯網公司普通都使用敏捷開發,采用小步快跑的形式來進行專案開發。如果是小專案或者小需求,那一個開發可能就搞定了。但對于電商等復雜的系統,其功能多,結構復雜,一個人肯定是搞不定的,所以都是很多人來共同開發維護。以我曾經待過的商城團隊為例,光是后端開發就有七十多人。 為了更好地開發這類大型系統,往 ......

    uj5u.com 2023-04-17 08:18:00 more
  • 專案管理PRINCE2核心知識點整理

    PRINCE2,即 PRoject IN Controlled Environment(受控環境中的專案)是一種結構化的專案管理方法論,由英國政府內閣商務部(OGC)推出,是英國專案管理標準。
    PRINCE2 作為一種開放的方法論,是一套結構化的專案管理流程,描述了如何以一種邏輯性的、有組織的方法,... ......

    uj5u.com 2023-04-17 08:17:55 more
  • 計算機組成原理—存盤器

    計算機組成原理—硬體結構 二、存盤器 1.概述 存盤器是計算機系統中的記憶設備,用來存放程式和資料 1.1存盤器的層次結構 快取-主存層次主要解決CPU和主存速度不匹配的問題,速度接近快取 主存-輔存層次主要解決存盤系統的容量問題,容量接近與價位接近于主存 2.主存盤器 2.1概述 主存與CPU的聯 ......

    uj5u.com 2023-04-17 08:12:06 more