主頁 > 軟體設計 > Git 工 具, 看這篇保姆式的教程就夠了

Git 工 具, 看這篇保姆式的教程就夠了

2021-07-30 08:11:53 軟體設計

Git 工 具, 看這篇保姆式的教程就夠了

首先,我們需要明確的是,Git 是一種多人協作式的版本控制管理系統,Git 方便了版本的管理,以及多人合作建立專案的相互溝通問題,

文章目錄

    • Git 工 具, 看這篇保姆式的教程就夠了
      • 一、安裝Git
      • 二、Git簡介
        • 本地倉庫
          • 作業區
          • 暫存區
          • 歷史區
        • 遠程倉庫
      • 三、創建本地倉庫
        • 1、我們新建一個檔案夾,命名為 demo
        • 2、本地倉庫的配置
        • 3、編輯檔案
        • 4、將檔案轉移到暫存區
        • 5、將檔案從暫存區移動到歷史區提交版本
      • 四、遠程倉庫
        • 1、遠程倉庫介紹
        • 2、創建遠程倉庫
          • 1)點擊創建倉庫
          • 2)倉庫的配置
          • 3)創建完成
        • 3、為本地倉庫添加遠程倉庫
        • 4、拉取遠程倉庫的內容
        • 5、上傳自己本地的版本到遠程倉庫
      • 五、其他操作
        • 1、查看版本
        • 2、 回到某一個版本
        • 3、分支的一些問題
          • 1)創建分支
          • 2)查看分支
          • 3)切換分支
          • 4)合并分支

一、安裝Git

Git的安裝鏈接如下:
https://git-scm.com/
我們點擊download就可以了
在這里插入圖片描述

二、Git簡介

Git是一種多人協作的版本管理系統,

在我們開始使用Git之前,還是需要首先了解一下Git的作業原理,

首先,Git有本地倉庫以及遠程倉庫

本地倉庫

在每一個用戶的本地會有一個倉庫用來管理專案的檔案,在本地倉庫有三個區域,分別是:作業區、暫存區、歷史區

作業區

我們寫代碼、修改代碼都是在作業區進行的,

暫存區

在我們完成作業區的任務以后,需要先將作業區的內容移動到暫存區,如果還想要繼續作業,可以將暫存區的檔案轉移到作業區,

歷史區

歷史區是存盤版本的,如果說我們作業結束了,那么需要將暫存區的檔案轉移到歷史區并且形成新的版本,

整體流程是:

作業區 => 暫存區 => 歷史區

遠程倉庫

遠程倉庫是在網頁上面上傳我們的專案,然后遠程的服務器會幫助我們進行存盤以及版本控制,

我們一般會使用的遠程倉庫是GitHub或者Gitee提供的遠程倉庫,

實際上,最終我們是把歷史區的內容上傳到了遠程服務器,即就是遠程倉庫,

對于以上的敘述,我們可以使用下面這張圖片來更好的理解

在這里插入圖片描述

當然了,以上所說的程序是可逆的:

比如:

我們可以更新版本,也可以回傳到某一個過去的版本去,

三、創建本地倉庫

1、我們新建一個檔案夾,命名為 demo

在這里插入圖片描述

首先需要一個檔案夾作為本地倉庫,然后,我們進行本地倉庫的初始化,

進入 demo 這個檔案夾,滑鼠右鍵,滑鼠左鍵點擊git-bash here

在這里插入圖片描述
隨后彈出命令列
在這里插入圖片描述
然后輸入 :

git init

這樣就初始化了一個本地倉庫:
在這里插入圖片描述

這里會生成一個隱藏檔案:.git
注意這個是隱藏檔案,需要設定檔案的查看方式才能看到這個隱藏檔案,如何查看隱藏檔案想必大家也都比較清楚了吧,

如果不清楚查看下面的鏈接:
https://jingyan.baidu.com/article/00a07f381c40ff82d028dcc0.html

在這里插入圖片描述
注意就完成了本地倉庫的創建

2、本地倉庫的配置

我們有了一個本地倉庫,那么這個本地倉庫屬于誰呢?

這就需要我們來進行用戶的配置了

分別輸入一下代碼:

git config users.name "yu xuan"

以及

git config users.email "1134111908@qq.com"

即就是說
同戶名是: yu xuan
用戶email是:1134111908@qq.com
在這里插入圖片描述
我們還可以查看用戶資訊:
在這里插入圖片描述
注意,每一個本地倉庫只會有一個 user, 這是因為這是你自己本地的倉庫,所以顯然在你這里只會有一個 user,

這樣,我們就完成了用戶 的配置資訊,

3、編輯檔案

現在,在做完了以上的 步驟之后就可以進行編輯檔案,開始作業了,這里的檔案編輯方法是Linux系統的方法,

比如:
創建檔案并編輯: vi
等等

不熟悉的可以參見線面的Linux命令鏈接:

https://www.linuxcool.com/

這里我們編輯一個簡單的HTML吧,作為實體:

vi demo1.html

在這里插入圖片描述

回車以后會進入:
在這里插入圖片描述
按下 i 以后就可以進行編輯了:

<!DOCTYPE html>
<html>
        <head>
                <meta charset = "utf-8">
                <title>
                        hello world
                </title>
                <script type = "text/javascript">
                        window.onload = function()
                        {
                                let oBtn = document.getElementById("btn");
                                let oPra = document.getElementById("p0");
                                let number_0 = parseNumber(oPra.textContent);
                                oBtn.onclick = function()
                                {
                                        oPra.textContent = number_0 + 1;
                                        alert("finished!");
                                }
                        }
                </script>
        </head>
        <body>
                <button id = "btn">click this button to plus 1</button>
                <p id = "p0">0</p>
        </body>
</html>

在這里插入圖片描述
這樣就寫好了一個簡單的HTML檔案了

按下 Esc 退出編輯模式,然后輸入:

:wq

回車,
進行保存并且退出檔案
在這里插入圖片描述

4、將檔案轉移到暫存區

如下代碼可以查看 g i t 的狀態:

git status

在這里插入圖片描述
或者輸入:

git status --short 

這樣就可以使得顯示簡介一些了啦,

這里是說剛才編輯的檔案在作業區

要想轉移到暫存區,需要輸入如下代碼:
加入一個檔案:

git add demo1.html

或者:
加入所有檔案

git add --all

在這里插入圖片描述
這樣,就將檔案加入到了暫存區

我們在查看一下狀態:
在這里插入圖片描述
這是說明,檔案已經加入到了暫存區,但是沒有提交版本

以上是將檔案從作業區移動到暫存區

下面將暫存區移動到作業區:

git reset demo1.html

輸入:
git reset demo1.html

在這里插入圖片描述
以上介紹完畢了作業區和暫存區的轉換,

以上就是作業區,暫存區的處理

5、將檔案從暫存區移動到歷史區提交版本

下面介紹如何提交版本:

git commit -m git "the first commit"

“the first commit” 是一個提交版本的說明,這個可以自己編輯內容的,內容主要以方便閱讀理解做了什么作業為主,

在這里插入圖片描述
這樣就完成了版本的創建和提交,

四、遠程倉庫

1、遠程倉庫介紹

我們使用的遠程倉庫有 GitHub 或者 Gitee,

在這里,我們使用 Gitee 進行介紹,如果是 GitHub 的話,其實都是類似的啦,

2、創建遠程倉庫

首先進入 Gitee 官網:
在這里插入圖片描述
然后自己創建一個賬戶,創建賬戶就是注冊一下就好了,這個很簡單,

然后,創建自己的倉庫:

(這里倉庫基本是免費的,除非你是想使用最專業的,我們使用免費的就夠用了)

1)點擊創建倉庫

在這里插入圖片描述

2)倉庫的配置

如下圖所示,進行一些選擇和說明即可:
在這里插入圖片描述

3)創建完成

點擊創建即可:
在這里插入圖片描述
這個就是創建好的一個遠程倉庫

以上便是創建遠程倉庫的操作

3、為本地倉庫添加遠程倉庫

現在本地倉庫有了,遠程倉庫也有了,于是需要我們把它們聯系起來:

git remote add origin https://gitee.com/hhhmoonhhh/demo_of_mine

git remote add origin <鏈接>
git remote add origin https://gitee.com/hhhmoonhhh/demo_of_mine

在這里插入圖片描述
這里就是已經添加好了遠程倉庫,接下來就可以進行后續操作了啦,

在這里插入圖片描述

4、拉取遠程倉庫的內容

下面,我們就需要首先拉取遠程倉庫的內容了:

git pull origin master

git pull origin master 命令輸入以后,回車:

在這里插入圖片描述
出錯了,為什么呢?

fatal: refusing to merge unrelated histories

這是說你的本地倉庫和遠程倉庫的版本問題不對應,為了解決這個問題,我們對命令進行一定的修改,加入一些引數:

git pull origin master --allow-unrelated-histories

之后會讓你對這次提交進行解釋:
你輸入解釋(自己寫的,根據自己的需求自己寫):
在這里插入圖片描述
在這里插入圖片描述

保存,及就完成了
在這里插入圖片描述
之后,如果還需要拉取那么就是直接

git pull origin master

就好了啦

5、上傳自己本地的版本到遠程倉庫

當我們學會了拉取遠程倉庫的內容以后,還需要掌握如何進行將本地的倉庫的最新的版本上傳到遠程倉庫中去:

git push origin master

git push origin master 這個命令是將本地的版本上傳到了遠程的倉庫中去了啦,

上傳成功的實體如下圖所示:

在這里插入圖片描述
這個便是將本地的倉庫中的版本上傳到了遠程倉庫中去了啦,

以上便是拉取以及上傳的內容,

五、其他操作

1、查看版本

下面是逆序排列的版本

git log

當然如果你希望時間是順序排列的版本,可以輸入 ;

git log --reverse

在這里插入圖片描述
在這里插入圖片描述

2、 回到某一個版本

這里是回到某一個版本的操作

git reset --hard 版本庫地址

git reset --hard 版本庫地址

這個指令是回到某一個指令的版本

版本庫地址如下圖箭頭所指的示例:

在這里插入圖片描述

3、分支的一些問題

1)創建分支
git branch name

git branch name 中 name 是指分支的名稱:
在這里插入圖片描述
這個是創建了一個 moon 分支
在這里插入圖片描述

2)查看分支
git branch

在這里插入圖片描述

3)切換分支
git checkout name

例如

git checkout moon

在這里插入圖片描述

4)合并分支
git merge name

git merge name 中的 name 是需要合并的那個目標分支,最侄訓改變當前分支,不會改變那個合并的目標分支,

在這里插入圖片描述
這里面是將master合并給了moon

即就是說把master里面的內容合并到moon里面去了啦,

在這里插入圖片描述

Already up to date,
就是說明已經完成了更新,

綜上所述,這些就是 Git 的一些基本操作流程,包含了本地倉庫以及遠程倉庫的操作,講解較為詳細,希望對大家會有一定的幫助了啦,

希望本文Git的一些講解可以對大家有一點幫助,也希望大家可以多多支持關照一下啦~~~

Git的基本操作也就是這么多,以后如果作業、學習什么的直接用就好了啦,

謝謝大家的耐心讀到這里,既然都到這里了,你就點個贊嘛~~~~

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

標籤:其他

上一篇:本科剛畢業有點迷茫,想入門單片機,應該怎么開始?

下一篇:【萬字長文】 Vue全家桶從入門到實戰,超詳細筆記整理 ( 一 ) (建議收藏)

標籤雲
其他(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)

熱門瀏覽
  • 面試突擊第一季,第二季,第三季

    第一季必考 https://www.bilibili.com/video/BV1FE411y79Y?from=search&seid=15921726601957489746 第二季分布式 https://www.bilibili.com/video/BV13f4y127ee/?spm_id_fro ......

    uj5u.com 2020-09-10 05:35:24 more
  • 第三單元作業總結

    1.前言 這應該是本學期最后一次寫作業總結了吧。總體來說,對作業的節奏也差不多掌握了,作業做起來的效率也更高了。雖然和之前的作業一樣,作業中都要用到新的知識,但是相比之前,更加懂得了如何利用工具以及資料。雖然之間卡過殼,但總體而言,這幾次作業還算完成的比較好。 2.作業程序總結 相比前兩個單元,此單 ......

    uj5u.com 2020-09-10 05:35:41 more
  • 北航OO(2020)第四單元博客作業暨課程總結博客

    北航OO(2020)第四單元博客作業暨課程總結博客 本單元作業的架構設計 在本單元中,由于UML圖具有比較清晰的樹形結構,因此我對其中需要進行查詢操作的元素進行了包裝,在樹的父節點中存盤所有孩子的參考。考慮到性能問題,我采用了快取機制,一次查詢后盡可能快取已經遍歷過的資訊,以減少遍歷次數。 本單元我 ......

    uj5u.com 2020-09-10 05:35:48 more
  • BUAA_OO_第四單元

    一、UML決議器設計 ? 先看下題目:第四單元實作一個基于JDK 8帶有效性檢查的UML(Unified Modeling Language)類圖,順序圖,狀態圖分析器 MyUmlInteraction,實際上我們要建立一個有向圖模型,UML中的物件(元素)可能與同級元素連接,也可與低級元素相連形成 ......

    uj5u.com 2020-09-10 05:35:54 more
  • 6.1邏輯運算子

    邏輯運算子 1. && 短路與 運算式1 && 運算式2 01.運算式1為true并且運算式2也為true 整體回傳為true 02.運算式1為false,將不會執行運算式2 整體回傳為false 03.只要有一個運算式為false 整體回傳為false 2. || 短路或 運算式1 || 運算式2 ......

    uj5u.com 2020-09-10 05:35:56 more
  • BUAAOO 第四單元 & 課程總結

    1. 第四單元:StarUml檔案決議 本單元采用了圖模型決議UML。 UML檔案可以抽象為圖、子圖、邊的邏輯結構。 在實作中,圖的節點包括類、介面、屬性,子圖包括狀態圖、順序圖等。 采用了三次遍歷UML元素的方法建圖,第一遍遍歷建點,第二、三次遍歷設定屬性、連邊,實作圖物件的初始化。這里借鑒了一些 ......

    uj5u.com 2020-09-10 05:36:06 more
  • 談談我對C# 多型的理解

    面向物件三要素:封裝、繼承、多型。 封裝和繼承,這兩個比較好理解,但要理解多型的話,可就稍微有點難度了。今天,我們就來講講多型的理解。 我們應該經常會看到面試題目:請談談對多型的理解。 其實呢,多型非常簡單,就一句話:呼叫同一種方法產生了不同的結果。 具體實作方式有三種。 一、多載 多載很簡單。 p ......

    uj5u.com 2020-09-10 05:36:09 more
  • Python 資料驅動工具:DDT

    背景 python 的unittest 沒有自帶資料驅動功能。 所以如果使用unittest,同時又想使用資料驅動,那么就可以使用DDT來完成。 DDT是 “Data-Driven Tests”的縮寫。 資料:http://ddt.readthedocs.io/en/latest/ 使用方法 dd. ......

    uj5u.com 2020-09-10 05:36:13 more
  • Python里面的xlrd模塊詳解

    那我就一下面積個問題對xlrd模塊進行學習一下: 1.什么是xlrd模塊? 2.為什么使用xlrd模塊? 3.怎樣使用xlrd模塊? 1.什么是xlrd模塊? ?python操作excel主要用到xlrd和xlwt這兩個庫,即xlrd是讀excel,xlwt是寫excel的庫。 今天就先來說一下xl ......

    uj5u.com 2020-09-10 05:36:28 more
  • 當我們創建HashMap時,底層到底做了什么?

    jdk1.7中的底層實作程序(底層基于陣列+鏈表) 在我們new HashMap()時,底層創建了默認長度為16的一維陣列Entry[ ] table。當我們呼叫map.put(key1,value1)方法向HashMap里添加資料的時候: 首先,呼叫key1所在類的hashCode()計算key1 ......

    uj5u.com 2020-09-10 05:36:38 more
最新发布
  • 【中介者設計模式詳解】C/Java/JS/Go/Python/TS不同語言實作

    * 中介者模式是一種行為型設計模式,它可以用來減少類之間的直接依賴關系,
    * 將物件之間的通信封裝到一個中介者物件中,從而使得各個物件之間的關系更加松散。
    * 在中介者模式中,物件之間不再直接相互互動,而是通過中介者來中轉訊息。 ......

    uj5u.com 2023-04-20 08:20:47 more
  • 露天煤礦現場調研和交流案例分享

    他們集團的資訊化公司及研究院在一個礦區正在做智能礦山的統一平臺的 試點,專案投資大概1億,包括了礦山的各方面的內容,顯示得我們這次交流有點多余。他們2年前開始做智能礦山的規劃,有很多煤礦行業專家的加持,他們的描述是非常完美,但是去年底應該上線的平臺,現在還沒有看到影子。他們確實有很多場景需求,但是被... ......

    uj5u.com 2023-04-20 08:20:25 more
  • 《社區人員管理》實戰案例設計&個人案例分享

    設計是一個讓人夢想成真程序,開始編碼、測驗、除錯之前進行需求分析和架構設計,才能保證關鍵方面都做正確 ......

    uj5u.com 2023-04-20 08:20:17 more
  • 軟體架構生態化-多角色交付的探索實踐

    作為一個技術架構師,不僅僅要緊跟行業技術趨勢,還要結合研發團隊現狀及痛點,探索新的交付方案。在日常中,你是否遇到如下問題 “ 業務需求排期長研發是瓶頸;非研發角色感受不到研發技改提效的變化;引入ISV 團隊又擔心質量和安全,培訓周期長“等等,基于此我們探索了一種新的技術體系及交付方案來解決如上問題。 ......

    uj5u.com 2023-04-20 08:20:10 more
  • 【中介者設計模式詳解】C/Java/JS/Go/Python/TS不同語言實作

    * 中介者模式是一種行為型設計模式,它可以用來減少類之間的直接依賴關系,
    * 將物件之間的通信封裝到一個中介者物件中,從而使得各個物件之間的關系更加松散。
    * 在中介者模式中,物件之間不再直接相互互動,而是通過中介者來中轉訊息。 ......

    uj5u.com 2023-04-20 08:19:44 more
  • 露天煤礦現場調研和交流案例分享

    他們集團的資訊化公司及研究院在一個礦區正在做智能礦山的統一平臺的 試點,專案投資大概1億,包括了礦山的各方面的內容,顯示得我們這次交流有點多余。他們2年前開始做智能礦山的規劃,有很多煤礦行業專家的加持,他們的描述是非常完美,但是去年底應該上線的平臺,現在還沒有看到影子。他們確實有很多場景需求,但是被... ......

    uj5u.com 2023-04-20 08:19:07 more
  • 《社區人員管理》實戰案例設計&個人案例分享

    設計是一個讓人夢想成真程序,開始編碼、測驗、除錯之前進行需求分析和架構設計,才能保證關鍵方面都做正確 ......

    uj5u.com 2023-04-20 08:18:57 more
  • 軟體架構生態化-多角色交付的探索實踐

    作為一個技術架構師,不僅僅要緊跟行業技術趨勢,還要結合研發團隊現狀及痛點,探索新的交付方案。在日常中,你是否遇到如下問題 “ 業務需求排期長研發是瓶頸;非研發角色感受不到研發技改提效的變化;引入ISV 團隊又擔心質量和安全,培訓周期長“等等,基于此我們探索了一種新的技術體系及交付方案來解決如上問題。 ......

    uj5u.com 2023-04-20 08:18:49 more
  • 05單件模式

    #經典的單件模式 public class Singleton { private static Singleton uniqueInstance; //一個靜態變數持有Singleton類的唯一實體。 // 其他有用的實體變數寫在這里 //構造器宣告為私有,只有Singleton可以實體化這個類! ......

    uj5u.com 2023-04-19 08:42:51 more
  • 【架構與設計】常見微服務分層架構的區別和落地實踐

    軟體工程的方方面面都遵循一個最基本的道理:沒有銀彈,架構分層模型更是如此,每一種都有各自優缺點,所以請根據不同的業務場景,并遵循簡單、可演進這兩個重要的架構原則選擇合適的架構分層模型即可。 ......

    uj5u.com 2023-04-19 08:42:41 more