• <noscript id="e0iig"><kbd id="e0iig"></kbd></noscript>
  • <td id="e0iig"></td>
  • <option id="e0iig"></option>
  • <noscript id="e0iig"><source id="e0iig"></source></noscript>
  • Git簡介及安裝

    Git簡介及安裝

    1.什么是Git

    Git是一個開源的分布式版本控制系統,用于敏捷高效地處理任何或小或大的項目。起初Linus Torvalds 為了幫助管理 Linux 內核開發而開發了一個開放源碼的版本控制軟件,也就是Git。Git 與常用的版本控制工具CVS,Subversion 等不同,它采用了分布式版本庫的方式,不必服務器端軟件支持。

    2.Git跟SVN對比

    說到版本控制系統,很多人都會想到SVN,但是Git跟SVN又有很大的區別:

    • 1、GIT是分布式的,SVN不是:這是GIT和其它非分布式的版本控制系統,例如SVN,CVS等,最核心的區別。
    • 2、GIT把內容按元數據方式存儲,而SVN是按文件:所有的資源控制系統都是把文件的元信息隱藏在一個類似.svn,.cvs等的文件夾里。
    • 3、GIT分支和SVN的分支不同:分支在SVN中一點不特別,就是版本庫中的另外的一個目錄。
    • 4、GIT沒有一個全局的版本號,而SVN有:目前為止這是跟SVN相比GIT缺少的最大的一個特征。
    • 5、GIT的內容完整性要優于SVN:GIT的內容存儲使用的是SHA-1哈希算法。這能確保代碼內容的完整性,確保在遇到磁盤故障和網絡問題時降低對版本庫的破壞。

    3.Git工作流程

    1. 從遠程倉庫中克隆 Git 資源作為本地倉庫。
    2. 從本地倉庫中checkout代碼然后進行代碼修改。
    3. 在提交前先將代碼提交到暫存區。
    4. 提交修改。提交到本地倉庫。本地倉庫中保存修改的各個歷史版本。
    5. 在修改完成后,需要和團隊成員共享代碼時,可以將代碼push到遠程倉庫。
      在這里插入圖片描述

    4.Git的安裝

    最早Git是在Linux上開發的,很長一段時間內,Git也只能在Linux和Unix系統上跑。不過,慢慢地有人把它移植到了Windows上。現在,Git可以在Linux、Unix、Mac和Windows這幾大平臺上正常運行了。下面的安裝過程都是在Windows上進行。

    1、下載

    Git下載一般直接取Git的官網下載,目前最新的Git版本已經更新到了2.21.0,安裝32位還是64位根據個人電腦配置選擇即可。

    官網地址:https://git-scm.com/

    下載地址:https://git-scm.com/download/win

    2、安裝Git

    在這里插入圖片描述
    在這里插入圖片描述
    在這里插入圖片描述在這里插入圖片描述在這里插入圖片描述在這里插入圖片描述在這里插入圖片描述在這里插入圖片描述在這里插入圖片描述在這里插入圖片描述在這里插入圖片描述在這里插入圖片描述在這里插入圖片描述
    安裝完成后,會在系統右鍵菜單中看見下圖中的兩個連個Git *** 的選項
    在這里插入圖片描述

    5.Git的基本操作

    1、創建版本庫

    什么是版本庫呢?版本庫又名倉庫,英文名repository,你可以簡單理解成一個目錄,這個目錄里面的所有文件都可以被Git管理起來,每個文件的修改、刪除,Git都能跟蹤,以便任何時刻都可以追蹤歷史,或者在將來某個時刻可以“還原”。由于git是分布式版本管理工具,所以git在不需要聯網的情況下也具有完整的版本管理能力。

    創建一個版本庫非常簡單,可以使用git bash也可以使用TortoiseGit。首先,選擇一個合適的地方,創建一個空目錄。
    在這里插入圖片描述

    1.1使用GitBash命令

    在當前目錄中點擊右鍵中選擇Git Bash,打開命令窗口。輸入git init 命令,回車如下如所示,即創建好了一個空的git倉庫。
    在這里插入圖片描述
    版本庫:“.git”目錄就是版本庫,將來文件都需要保存到版本庫中。
    工作目錄:包含“.git”目錄的目錄,也就是.git目錄的上一級目錄就是工作目錄。只有工作目錄中的文件才能保存到版本庫中。

    2、添加文件

    2.1添加文件步驟

    在E:\GitStudy\firstgit 目錄下創建一個txt文件。
    在這里插入圖片描述

    2.1.1 使用GitBash

    在這里插入圖片描述

    這邊可能會出現一個小問題:

    # Please enter the commit message for your changes. Lines starting
    # with '#' will be ignored, and an empty message aborts the commit.
    
    # On branch master
    
    # Changes to be committed:
    
    # (use "git reset HEAD <file>..." to unstage)`
    

    這種情況其實是沒有對本次提交的內容進行一個說明,其實每次提交最好都加上說明,以便自己或者別人進行查閱,解決辦法也很簡單,類似于linux的vi編輯器操作命令。

    1.按鍵盤字母 i 進入insert模式

    2.修改最上面那行黃色合并信息,可以不修改

    3.按鍵盤左上角"Esc"

    4.輸入":wq",注意是冒號+wq,按回車鍵即可

    也可以使用 -m 參數后跟提交說明的方式,在一行命令中提交更新。即:git commit -m “這里是信息”,添加就不會出現提示了。

    在這里插入圖片描述

    2.2 工作區和暫存區

    Git和其他版本控制系統如SVN的一個不同之處就是有暫存區的概念。

    工作區就是你在電腦里能看到的目錄,比如我的git文件夾就是一個工作區。git目錄是工作區,在這個目錄中的“.git”隱藏文件夾才是版本庫,二者不能混淆。

    Git的版本庫里存了很多東西,其中最重要的就是稱為stage(或者叫index)的暫存區,還有Git為我們自動創建的第一個分支master,以及指向master的一個指針叫HEAD。如下圖所示:
    在這里插入圖片描述
    ?當我們把文件往Git版本庫里添加的時候,是分兩步執行的:
    第一步是用git add把文件添加進去,實際上就是把文件修改添加到暫存區;

    第二步是用git commit提交更改,實際上就是把暫存區的所有內容提交到當前分支。

    因為我們創建Git版本庫時,Git自動為我們創建了唯一一個master分支,所以,現在,git commit就是往master分支上提交更改。可以簡單理解為,需要提交的文件修改通通放到暫存區,然后,一次性提交暫存區的所有修改。

    3、修改文件

    3.1 提交修改

    被版本庫管理的文件不可避免的要發生修改,此時只需要直接對文件修改即可。修改完畢后需要將文件的修改提交到版本庫。

    在修改后的hello.txt(修改后圖標變成紅色感嘆號)文件上點擊右鍵,然后重復2.1中的添加文件的操作。

    3.2 查看修改歷史

    ? 在開發過程中可能會經常查看代碼的修改歷史,或者叫做查看代碼的修改日志。用來查看某個版本是誰修改的,什么時間修改的,修改了哪些內容。

    GitBash中查看修改歷史

    在這里插入圖片描述

    3.3 差異比較

    當文件內容修改后,需要和修改之前對比一下修改了哪些內容此時可以使用“比較差異功能”

    GitBash中查看差異

    在這里插入圖片描述

    3.4 還原修改

    當文件修改后不想把修改的內容提交,還想還原到未修改之前的狀態。此時可以使用“還原”功能。

    GitBash中還原修改

    在這里插入圖片描述

    4、刪除文件

    需要刪除無用的文件時可以使用git提供的刪除功能直接將文件從版本庫中刪除。

    4.1 GitBash中還原修改

    在這里插入圖片描述

    6.遠程倉庫

    1、GitHub遠程倉庫

    1.1首先你得在github上創建一個賬號,然后在github上創建一個倉庫:

    1.登錄成功之后點擊首頁右上邊的,New按鈕(如下圖所示)
    在這里插入圖片描述

    2.頁面跳轉到新建倉庫的頁面,填寫相關的信息
    在這里插入圖片描述
    3.填完之后點擊Create repository 按鈕創建倉庫,頁面跳轉到倉庫首頁。

    4.在倉庫的首頁 可以看到,Github支持兩種同步方式“https”和“ssh”。如果使用https很簡單基本不需要配置就可以使用,但是每次提交代碼和下載代碼時都需要輸入用戶名和密碼。而且如果是公司配置的私有git服務器一般不提供https方式訪問,所以一般選擇ssh方式。

    5.在windows下我們可以使用 Git Bash.exe來生成**,通過開始菜單或者任意位置右鍵菜單打開Git Bash窗口,執行命令: ssh-****** -t rsa 生成公鑰和私鑰
    在這里插入圖片描述

    6.執行命令完成后,在window本地用戶.ssh目錄C:\Users\用戶名.ssh下面生成如下名稱的公鑰和私鑰,如下圖:
    在這里插入圖片描述

    7.**生成后需要在github上配置**本地才可以順利訪問
    在這里插入圖片描述

    2、同步到遠程倉庫

    1. 在倉庫所在的目錄右鍵選擇“Git Bash Here”,打開Git Bash窗口,。
    # 查看關聯的遠程倉庫的名稱
    git remote
    # 查看關聯的遠程倉庫的詳細信息
    git remote -v
    

    遠程倉庫的名稱一般默認為 origin ,可以設置為其他的名稱。

    通過 git clone 下載項目到本地時,項目文件夾中的 .git 目錄就是版本庫目錄。

    .git 目錄中的 config 文件中有遠程倉庫的關聯配置。
    在這里插入圖片描述

    3、從遠程倉庫克隆

    克隆遠程倉庫也就是從遠程把倉庫復制一份到本地,克隆后會創建一個新的本地倉庫。選擇一個任意部署倉庫的目錄,然后克隆遠程倉庫。

    3.1 使用git bash:
     git clone [email protected]:yx1319250478/first_demo.git
    

    在這里插入圖片描述

    4、從遠程倉庫取代碼

    Git中從遠程的分支獲取最新的版本到本地有這樣2個命令:

    1. git fetch:相當于是從遠程獲取最新版本到本地,不會自動merge(合并代碼)
    2. git pull:相當于是從遠程拉取最新版本并merge到本地

    上述命令其實相當于git fetch 和 git merge,在實際使用中,git fetch更安全一些,因為在merge前,我們可以查看更新情況,然后再決定是否合并。

    7.如何github上給別人的項目提交PR(Pull Request)

    7.1 通過fork的方式在自己的倉庫里建立一個項目。

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

    7.2 clone倉庫到本地,具體做法參考6.2clone

    在這里插入圖片描述
    用git remote -v命令,可以看到此時只與自己的遠程倉庫建立了連接,還需要與上游建立連接,這里上游指的是一開始 fork 的那個項目源,以 awesome-spider 為例,執行如下命令:
    在這里插入圖片描述

    8.分支管理

    1、創建合并分支概述

    ? 在我們每次的提交,Git都把它們串成一條時間線,這條時間線就是一個分支。截止到目前,只有一條時間線,在Git里,這個分支叫主分支,即master分支。HEAD指針嚴格來說不是指向提交,而是指向master,master才是指向提交的。一開始的時候,master分支是一條線,Git用master指向最新的提交,再用HEAD指向master,就能確定當前分支,以及當前分支的提交點:
    在這里插入圖片描述
    ? 每次提交,master分支都會向前移動一步,這樣,隨著你不斷提交,master分支的線也越來越長。當我們創建新的分支,例如dev時,Git新建了一個指針叫dev,指向master相同的提交,再把HEAD指向dev,就表示當前分支在dev上:

    在這里插入圖片描述
    ? 假如我們在dev上的工作完成了,就可以把dev合并到master上。Git怎么合并呢?最簡單的方法,就是直接把master指向dev的當前提交,就完成了合并:

    在這里插入圖片描述
    ? 所以Git合并分支也很快!就改改指針,工作區內容也不變!合并完分支后,甚至可以刪除dev分支。刪除dev分支就是把dev指針給刪掉,刪掉后,我們就剩下了一條master分支:

    在這里插入圖片描述

    2、使用GitBash實現分支管理

    2.1 創建分支并切換到新的分支

    在這里插入圖片描述

    2.2 合并分支

    在這里插入圖片描述

    2.3 解決沖突

    兩個分支中編輯的內容都是相互獨立互不干擾的,那么如果在兩個分支中都對同一個文件進行編輯,然后再合并,就有可能會出現沖突。一般來說沖突需要手動解決,找出沖突文件,修改完畢之后即可。

    9.GitLab的使用

    GitLab總的來數跟Github大同小異,具體使用方法也是差不多的。最大的不同就是GitLab中組的概念。

    1.創建組

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

    2.添加組成員

    在這里插入圖片描述

    3.創建項目

    在這里插入圖片描述

    4.將本地代碼推送到項目中

    與github操作一樣

    5.clone Gitlab的項目到本地

    與github操作一樣

    10.常用命令總結

    1.克隆遠程倉庫
    git clone <url>
    2.初始化本地版本庫
    git init
    3.查看狀態
    git status
    4.查看變更內容
    git diff
    5.工作區所有內容添加到暫存區
    git add .
    6.將工作區指定內容添加到暫存區
    git add <file>
    7.改名
    git mv <old> <new>
    8.刪除文件(包括本地)
    git rm <file>
    9.不刪本地
    git rm --cached <file>
    10.將暫存區的內容提交到本地倉庫
    git commit -m 'msg'
    11.查看提交歷史
    git log
    12.查看指定文件的提交歷史
    git log -p <file>
    13.以查看列表方式查看指定文件的提交歷史
    git blame <file>
    14.撤銷工作目錄中所有未提交文件的修改內容
    git reset --hard HEAD
    15.撤銷指定的未提交文件的修改內容
    git checkout -f <file>
    16.撤銷指定提交
    git revert <commit>
    17.顯示所有分支
    git branch –a
    18.切換到指定分支或標簽
    git checkout <branch/tag>
    19.新建分支
    git branch <newBranch>
    20.刪除本地分支
    git branch -d <branch>
    21.查看本地標簽
    git tag
    22.基于最新提交創建標簽
    git tag <tagname>
    23.刪除標簽
    git tag -d <tagname>
    24.合并指定分支到當前分支
    git merge <branch>
    25.查看遠程倉庫信息
    git remote –v
    26.查看指定遠程倉庫信息
    git remote show <remote>
    27.添加遠程倉庫
    git remote add <remote> <url>
    28.從遠程倉庫獲取代碼
    git fetch <remote>
    29.拉取遠程倉庫代碼到本地并合并
    git pull <remote> <branch>
    30.推送本地代碼到遠程倉庫并合并
    git push <remote> <branch>
    31.刪除遠程分支
    git push <remote> :<branch>
    32.推送本地所有分支
    git push –tags
    
    版權聲明:本文為qq_31405633原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接和本聲明。
    本文鏈接:https://blog.csdn.net/qq_31405633/article/details/88172042

    智能推薦

    JenKins簡介及安裝

    一:簡介 Jenkins是一個開源軟件項目,是基于Java開發的一種持續集成工具,用于監控持續重復的工作,旨在提供一個開放易用的軟件平臺,使軟件的持續集成變成可能。 二:功能 1、持續的軟件版本發布/測試項目。 2、監控外部調用執行的工作。 (以上摘自百度百科) 三:架構及部署 流程: 由開發人員提交代碼到Git管理倉庫,JenKins持續獲取代碼,進程編譯后部署到環境上,由測試人員測試。 沒有持...

    Redis簡介及安裝

    Redis簡介及安裝 文章目錄 Redis簡介及安裝 一、nosql介紹 1.NoSQL 2.NoSQL和SQL數據庫的比較: 二、Redis 1.簡介 2.Redis特性 3.Redis 優勢 4.redis應用場景 5.推薦閱讀 三、redis安裝 1.在線安裝 2.下載安裝包: 四、配置 1.配置 2.查看 3.綁定ip 4.端?,默認為6379 5.是否以守護進程運? 6.數據?件 7.數...

    HTML中常用操作關于:頁面跳轉,空格

    1.頁面跳轉 2.空格的代替符...

    freemarker + ItextRender 根據模板生成PDF文件

    1. 制作模板 2. 獲取模板,并將所獲取的數據加載生成html文件 2. 生成PDF文件 其中由兩個地方需要注意,都是關于獲取文件路徑的問題,由于項目部署的時候是打包成jar包形式,所以在開發過程中時直接安照傳統的獲取方法沒有一點文件,但是當打包后部署,總是出錯。于是參考網上文章,先將文件讀出來到項目的臨時目錄下,然后再按正常方式加載該臨時文件; 還有一個問題至今沒有解決,就是關于生成PDF文件...

    電腦空間不夠了?教你一個小秒招快速清理 Docker 占用的磁盤空間!

    Docker 很占用空間,每當我們運行容器、拉取鏡像、部署應用、構建自己的鏡像時,我們的磁盤空間會被大量占用。 如果你也被這個問題所困擾,咱們就一起看一下 Docker 是如何使用磁盤空間的,以及如何回收。 docker 占用的空間可以通過下面的命令查看: TYPE 列出了docker 使用磁盤的 4 種類型: Images:所有鏡像占用的空間,包括拉取下來的鏡像,和本地構建的。 Con...

    猜你喜歡

    requests實現全自動PPT模板

    http://www.1ppt.com/moban/ 可以免費的下載PPT模板,當然如果要人工一個個下,還是挺麻煩的,我們可以利用requests輕松下載 訪問這個主頁,我們可以看到下面的樣式 點每一個PPT模板的圖片,我們可以進入到詳細的信息頁面,翻到下面,我們可以看到對應的下載地址 點擊這個下載的按鈕,我們便可以下載對應的PPT壓縮包 那我們就開始做吧 首先,查看網頁的源代碼,我們可以看到每一...

    Linux C系統編程-線程互斥鎖(四)

    互斥鎖 互斥鎖也是屬于線程之間處理同步互斥方式,有上鎖/解鎖兩種狀態。 互斥鎖函數接口 1)初始化互斥鎖 pthread_mutex_init() man 3 pthread_mutex_init (找不到的情況下首先 sudo apt-get install glibc-doc sudo apt-get install manpages-posix-dev) 動態初始化 int pthread_...

    統計學習方法 - 樸素貝葉斯

    引入問題:一機器在良好狀態生產合格產品幾率是 90%,在故障狀態生產合格產品幾率是 30%,機器良好的概率是 75%。若一日第一件產品是合格品,那么此日機器良好的概率是多少。 貝葉斯模型 生成模型與判別模型 判別模型,即要判斷這個東西到底是哪一類,也就是要求y,那就用給定的x去預測。 生成模型,是要生成一個模型,那就是誰根據什么生成了模型,誰就是類別y,根據的內容就是x 以上述例子,判斷一個生產出...

    styled-components —— React 中的 CSS 最佳實踐

    https://zhuanlan.zhihu.com/p/29344146 Styled-components 是目前 React 樣式方案中最受關注的一種,它既具備了 css-in-js 的模塊化與參數化優點,又完全使用CSS的書寫習慣,不會引起額外的學習成本。本文是 styled-components 作者之一 Max Stoiber 所寫,首先總結了前端組件化樣式中的最佳實踐原則,然后在此基...

    精品国产乱码久久久久久蜜桃不卡