主頁 >  其他 > git版本控制工具

git版本控制工具

2021-09-11 10:13:59 其他

git版本控制工具

一、什么是git

git 官方名稱: 分布式版本管理器

通俗解釋:就是一個管理我們檔案夾的工具,只不過可以保留所有版本資訊

  • 就是我們安裝的一個軟體
    • 然后這個軟體來管理我們的檔案夾
    • 這個檔案夾被git管理后,我們可以對他進行各種操作
    • 保證我們寫過的內容不會丟失

二、git安裝

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

打開官網,直接下載

在這里插入圖片描述

選擇自己電腦的作業系統和位數

在這里插入圖片描述

在這里插入圖片描述

  • 下載好后,直接安裝

  • 一直下一步就可以了

  • 檢測是否安裝成功,在命令列視窗輸入

    # 檢測是否安裝成功
    $ git --version
    

三、git命令操作

  • git是一個軟體沒錯,但是不會生成桌面圖示
  • 而是需要在 命令列 進行操作的軟體
  • 我們單擊滑鼠右鍵,點擊 git bash here ,會出現以下內容

在這里插入圖片描述

  • 點開就是一個命令列視窗
  • 可以寫一些指令,只不過色彩更鮮艷
    • 使用 cmd 或者 powershell 視窗來運行 git 指令也可以
    • 只要是在終端運行就行
    • OS作業系統直接在 終端 中運行就行
  • git bash here 表示在當前目錄下運行 git bash
  • 所以你在哪個檔案夾下點擊的,那么出來的命令列視窗的目錄就是哪里

四、本地庫使用

1.git磁區

git init 在當前目錄創建版本庫,該目錄被git管理

  • 當一個檔案被 git 管理了以后

  • git 就會對當前檔案夾進行 磁區

  • 會分為三個區域

    • 作業區: 我們書寫的原始碼就在作業區里面
    • 暫存區: 把我們想要存盤的內容放在暫存區
    • 歷史區: 把暫存區里面的內容拿出來,形成一個歷史版本
      在這里插入圖片描述

    向版本庫添加檔案

    • 要先放在暫存區
    • 然后才能在暫存區里面放到歷史區
    • 才能生成一個版本保存下來

2.初始用戶名和郵箱,告訴git是誰提交的版本

$ git config --global user.name "Your Name"
$ git config --global user.email "YourEmail@xxx.com"

3.添加內容在暫存區

git add 指令

  • 把單獨一個檔案放在暫存區

    # 把檔案夾下的index.txt 文本放在暫存區
    $ git add index.txt
    
  • 把單獨一個檔案夾放在暫存區(不能存放空檔案夾)

    # 把檔案夾下的src檔案夾放在暫存區
    $ git add src/
    
  • 把所有檔案放在暫存區

    # 把檔案夾下的所有內容放在暫存區
    $ git add --all
    #簡寫
    $ git add .
    

4.暫存區的內容再回拉到作業區

  • 把已經放在暫存區的內容在拉回到作業區

    # 拉回暫存區的 index.txt 檔案
    $ git reset  HEAD -- index.txt
    
    # 拉回暫存區的 ceshi 檔案夾
    $ git reset HEAD -- ceshi/
    
    # 拉回暫存區的 所有檔案
    $ git reset HEAD -- .
    
    //注意: -- 兩邊都有空格, 拉回所有檔案的時候,有一個 .
    

5.添加到歷史區

  • 暫存區,只是幫我們暫時存放內容,我們洗掉了還是會丟的
  • 要想幫我們保存下來,那么還是需要把暫存區的內容放到歷史區
  1. git 的歷史區,就是把我們暫存區里面的檔案形成一個歷史版本

  2. 當一些檔案形成一個版本的時候,就會一直記錄下來

  3. 向歷史區里面添加內容的時候,必須保證 暫存區 有內容

  4. 因為 歷史區 就是把 暫存區 里面的內容收錄進去

  5. 向歷史區添加內容使用 git commit -m "說明"

    # 把暫存區的內容放到歷史區
    $ git commit -m "我是第一個版本"
    
    • 我們一定要寫一個簡單的說明
    • 因為當我們的歷史版本多了以后,我們也不記得那個版本做了哪些修改
    • 所以有個簡單的說明會好很多

6.查看日志

  • 這時歷史區就有了我們的第一個版本

  • 我們使用git log 這個指令查看版本資訊

    # 查看當前歷史區版本資訊
    $ git log
    

在這里插入圖片描述

  • commit 版本號

  • Author 作者

  • Date 本次版本的記錄時間

  • 后面的內容就是提交的時候寫的說明

  • git reflog

    回退查看原來版本號

7.版本回退

在這里插入圖片描述

  • 我們提交了兩次,歷史區也有兩條資訊,也就是兩個版本

  • 放在歷史區的內容,理論上就丟不了了

  • 現在我們可以把作業區中的內容洗掉掉,洗掉后我們進行歷史回退

  • 使用git reset --hard 版本編號

    # 回退到第一次提交的版本
    $ git reset --hard ce0c17f7a703c6847552c7aaab6becea6f0197f2
    # 回退到第二次提交的版本
    $ git reset --hard abb2c4f12566440e84bc166c3285f855a37a3bb2
    
  • 方法二: git reset --hard HEAD ^ ( ^ 表示回到上一個版本,如果需要回退到上上個版本的話,將HEAD改成HEAD^, 以此類推,那如果要回退到前100個版本,這種方法肯定不方便,我們可以使用簡便命令操作:git reset –hard HEAD~100 );

在這里插入圖片描述

五、GIT遠程庫

1.注冊賬號

github:

官網: https://github.com/

在這里插入圖片描述

gitee:

官網: https://gitee.com/

在這里插入圖片描述

在這里插入圖片描述

2.遠程庫操作

  1. 開 辟 遠 程 庫 \color{red}{開辟遠程庫}

    • 有了github 賬號后
    • 我們就登錄github 網站,開辟一個遠程倉庫
    • github 的遠程庫也是以一個倉庫一個倉庫的形式來保存代碼
      • 我們可以在 github上保存很多的專案
      • 只要一個專案一個倉庫就可以了
    1. 先點擊新建倉庫

在這里插入圖片描述

  1. 填寫倉庫資訊

在這里插入圖片描述

  1. 創建成功

在這里插入圖片描述

g i t e e 和 g i t h u b 操 作 差 不 多 ? \color{red}{gitee和github操作差不多}? giteegithub?

3.添加倉庫地址

  • 接下來,就要使用 git 上傳代碼了

  • 我們先要告訴 git 上傳到哪里

  • 也就是給 git 添加一個上傳的地址

  • 使用 git remote add origin 倉庫地址 來上傳

    # 在專案檔案夾下打開 gitbase
    # 添加倉庫地址
    $ git remote add origin https://gitee.com/****/H5.git
    // remote	遠程的意思
    //add	    添加的意思
    //origin	是一個變數名
    

4.上傳

  • 上傳到哪里的地址我們已經添加好了

  • 接下來就是上傳內容了

    • 上傳要保證 歷史區 里面有內容
    • 上傳的程序會把 歷史區 里面所有的內容上傳到云端
  • 我們使用git push 指令來上傳

    # 上傳內容
    $ git push -u origin master
    # 表示把內容上傳到origin這個地址
    # master 是上傳到遠程的 master 分支
    
    • -u 是我們第一次上傳的時候使用到的,是為了記錄一下你的用戶名密碼
    • 下次上傳就不需要再寫了
  • 第二次上傳

    # 第二次上傳
    $ git push
    
    • 第二次上傳的時候,因為有剛才的記錄,就不需要在寫originmaster
    • 會默認上傳到origin 這個地址的master 分支上
    • 到這里,就完成了一次git 推送
    • 這個時候本地的檔案夾就真的可以洗掉了
    • 因為遠程倉庫有一份我們的內容,本地的就可以洗掉了,可以直接把遠程的拉回來就行

5.克隆

  • git 克隆就是指把遠程倉庫里面的內容克隆一份到本地
  • 可以克隆別人 公開 的倉庫,也可以克隆自己的倉庫
  • 克隆別人的倉庫,我們只能拿下來,修改后不能重新上傳
  • 克隆自己的倉庫,我們修改后還可以再次上傳

克隆

  • 復制好地址后,選擇一個我們要存放內容的檔案夾(這里以桌面為例)

  • 直接在想存放內容的位置打開 git bash

  • 輸入克隆指令 git clone 倉庫地址

    # 直接克隆倉庫
    $ git clone https://gitee.com/*****/H5.git
    
    • 克隆指定版本git clone http://github.com/symfony/symfony.git -b v2.0.9

    • 克隆遠程分支git clone -b 遠程分支名 http://github.com/symfony/symfony.git

在這里插入圖片描述

6.下拉

  • 不管你克隆下來的倉庫還是別的方式弄來的本地倉庫

  • 當別人的代碼更新以后,你想獲得最新的代碼

  • 我們不需要重新克隆

  • 只需要拉去一次代碼就可以了

  • 下拉指令git pull

    # 拉取遠程最新代碼
    $ git pull
    

7.GIT沖突

  • git 沖突是指在我們的上傳程序中

  • 本地的版本和遠程的版本不一致導致的

  • 這個時候只要先使用git pull 拉取回來

    • 讓本地和遠程保持一致
  • 然后再重新上傳就好了

  • 但是git pull 相對不安全,因為會自動和本地內容合并

  • 我們也可以使用git fetch

    # 使用fetch 獲取遠程最新資訊并開辟一個一個臨時分支
    $ git fetch origin master:tmp
    
    # 將當前分支和臨時分支的內容進行對比
    $ git diff tmp
    
    # 再選擇合并分支內容
    $ git merge tmp
    

在這里插入圖片描述

六、GIT本地分支

1.git分支介紹

  • git 分支,就是我們自己把我們的整個檔案夾分成一個一個獨立的區域

    • 比如我們開發 登錄 功能,可以放在 login 分支下進行開發
    • 開發 串列 功能的時候,可以放在 list 分支下進行開發
    • 大家互不干擾,每一個功能都是一個獨立的功能分支
  • 這樣開發就會好很多

  • git 在初始化的時候,會自動生成一個分支,叫做 master

  • 表示主分支的意思,我們可以開辟很多獨立分支

在這里插入圖片描述

2.查看開辟分支

  • 開辟一個分支使用git branch 分支名稱 指令

    # 開辟一個login分支
    $ git branch login 
    
  • 查看當前分支情況

    # 查看當前分支情況
    $ git branch
    

在這里插入圖片描述

  • 會看到,當前有兩個分支了

  • 一個是master ,一個是 login

  • 前面有一個 * ,表示你當前所處分支

  • 我們對 登錄 功能的開發要移動到 login 分支去完成

3.切換所處分支

  • 我們切換所處分支使用 git checkout 分支名稱

    # 切換到 login 分支
    $ git checkout login 
    
  • 然后我們在整個分支上進行 登錄 功能的開發

  • 開發完畢后,我們就在當前分支上進行提交

4.git合并分支

  • git 合并分支,只能是把別的分支的內容合并到自己的分支上

  • 使用的是git merge

    # 切換到master分支
    $ git checkout 
    # 把 login 的內容合并到自己的分支
    $ git merge login  
    
  • 這個時候,我們剛才在login 上開發的東西就都到master 主分支上

5.洗掉分支

  1. 先切換到別的分支

  2. 使用指令git branch -d 分支名稱 來洗掉

    # 先切換到別的分支
    $ git checkout master
    # 洗掉login分支
    $ git branch -d login
    

6.GIT遠程分支

  1. 查看遠程分支git branch -r

在這里插入圖片描述

  1. 創建遠程分支(本地分支push到遠程 )git push origin [name]

在這里插入圖片描述

  1. 洗掉遠程分支git push origin :heads/[name]

在這里插入圖片描述

  1. 拉取遠程倉庫

    git pull [remoteName] [localBranchName]

  2. 克隆遠程分支

    $ fit pill -b[遠程分支名] [地址]
    $ git clone -b product-dev  http://github.com/symfony/symfony.git   
    

在這里插入圖片描述

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

標籤:其他

上一篇:2021-09-09

下一篇:Windows MSHTML遠程代碼執行漏洞風險通告更新,騰訊安全支持全面檢測攔截

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

熱門瀏覽
  • 網閘典型架構簡述

    網閘架構一般分為兩種:三主機的三系統架構網閘和雙主機的2+1架構網閘。 三主機架構分別為內端機、外端機和仲裁機。三機無論從軟體和硬體上均各自獨立。首先從硬體上來看,三機都用各自獨立的主板、記憶體及存盤設備。從軟體上來看,三機有各自獨立的作業系統。這樣能達到完全的三機獨立。對于“2+1”系統,“2”分為 ......

    uj5u.com 2020-09-10 02:00:44 more
  • 如何從xshell上傳檔案到centos linux虛擬機里

    如何從xshell上傳檔案到centos linux虛擬機里及:虛擬機CentOs下執行 yum -y install lrzsz命令,出現錯誤:鏡像無法找到軟體包 前言 一、安裝lrzsz步驟 二、上傳檔案 三、遇到的問題及解決方案 總結 前言 提示:其實很簡單,往虛擬機上安裝一個上傳檔案的工具 ......

    uj5u.com 2020-09-10 02:00:47 more
  • 一、SQLMAP入門

    一、SQLMAP入門 1、判斷是否存在注入 sqlmap.py -u 網址/id=1 id=1不可缺少。當注入點后面的引數大于兩個時。需要加雙引號, sqlmap.py -u "網址/id=1&uid=1" 2、判斷文本中的請求是否存在注入 從文本中加載http請求,SQLMAP可以從一個文本檔案中 ......

    uj5u.com 2020-09-10 02:00:50 more
  • Metasploit 簡單使用教程

    metasploit 簡單使用教程 浩先生, 2020-08-28 16:18:25 分類專欄: kail 網路安全 linux 文章標簽: linux資訊安全 編輯 著作權 metasploit 使用教程 前言 一、Metasploit是什么? 二、準備作業 三、具體步驟 前言 Msfconsole ......

    uj5u.com 2020-09-10 02:00:53 more
  • 游戲逆向之驅動層與用戶層通訊

    驅動層代碼: #pragma once #include <ntifs.h> #define add_code CTL_CODE(FILE_DEVICE_UNKNOWN,0x800,METHOD_BUFFERED,FILE_ANY_ACCESS) /* 更多游戲逆向視頻www.yxfzedu.com ......

    uj5u.com 2020-09-10 02:00:56 more
  • 北斗電力時鐘(北斗授時服務器)讓網路資料更精準

    北斗電力時鐘(北斗授時服務器)讓網路資料更精準 北斗電力時鐘(北斗授時服務器)讓網路資料更精準 京準電子科技官微——ahjzsz 近幾年,資訊技術的得了快速發展,互聯網在逐漸普及,其在人們生活和生產中都得到了廣泛應用,并且取得了不錯的應用效果。計算機網路資訊在電力系統中的應用,一方面使電力系統的運行 ......

    uj5u.com 2020-09-10 02:01:03 more
  • 【CTF】CTFHub 技能樹 彩蛋 writeup

    ?碎碎念 CTFHub:https://www.ctfhub.com/ 筆者入門CTF時時剛開始刷的是bugku的舊平臺,后來才有了CTFHub。 感覺不論是網頁UI設計,還是題目質量,賽事跟蹤,工具軟體都做得很不錯。 而且因為獨到的金幣制度的確讓人有一種想去刷題賺金幣的感覺。 個人還是非常喜歡這個 ......

    uj5u.com 2020-09-10 02:04:05 more
  • 02windows基礎操作

    我學到了一下幾點 Windows系統目錄結構與滲透的作用 常見Windows的服務詳解 Windows埠詳解 常用的Windows注冊表詳解 hacker DOS命令詳解(net user / type /md /rd/ dir /cd /net use copy、批處理 等) 利用dos命令制作 ......

    uj5u.com 2020-09-10 02:04:18 more
  • 03.Linux基礎操作

    我學到了以下幾點 01Linux系統介紹02系統安裝,密碼啊破解03Linux常用命令04LAMP 01LINUX windows: win03 8 12 16 19 配置不繁瑣 Linux:redhat,centos(紅帽社區版),Ubuntu server,suse unix:金融機構,證券,銀 ......

    uj5u.com 2020-09-10 02:04:30 more
  • 05HTML

    01HTML介紹 02頭部標簽講解03基礎標簽講解04表單標簽講解 HTML前段語言 js1.了解代碼2.根據代碼 懂得挖掘漏洞 (POST注入/XSS漏洞上傳)3.黑帽seo 白帽seo 客戶網站被黑帽植入劫持代碼如何處理4.熟悉html表單 <html><head><title>TDK標題,描述 ......

    uj5u.com 2020-09-10 02:04:36 more
最新发布
  • 2023年最新微信小程式抓包教程

    01 開門見山 隔一個月發一篇文章,不過分。 首先回顧一下《微信系結手機號資料庫被脫庫事件》,我也是第一時間得知了這個訊息,然后跟蹤了整件事情的經過。下面是這起事件的相關截圖以及近日流出的一萬條資料樣本: 個人認為這件事也沒什么,還不如關注一下之前45億快遞資料查詢渠道疑似在近日復活的訊息。 訊息是 ......

    uj5u.com 2023-04-20 08:48:24 more
  • web3 產品介紹:metamask 錢包 使用最多的瀏覽器插件錢包

    Metamask錢包是一種基于區塊鏈技術的數字貨幣錢包,它允許用戶在安全、便捷的環境下管理自己的加密資產。Metamask錢包是以太坊生態系統中最流行的錢包之一,它具有易于使用、安全性高和功能強大等優點。 本文將詳細介紹Metamask錢包的功能和使用方法。 一、 Metamask錢包的功能 數字資 ......

    uj5u.com 2023-04-20 08:47:46 more
  • vulnhub_Earth

    前言 靶機地址->>>vulnhub_Earth 攻擊機ip:192.168.20.121 靶機ip:192.168.20.122 參考文章 https://www.cnblogs.com/Jing-X/archive/2022/04/03/16097695.html https://www.cnb ......

    uj5u.com 2023-04-20 07:46:20 more
  • 從4k到42k,軟體測驗工程師的漲薪史,給我看哭了

    清明節一過,盲猜大家已經無心上班,在數著日子準備過五一,但一想到銀行卡里的余額……瞬間心情就不美麗了。最近,2023年高校畢業生就業調查顯示,本科畢業月平均起薪為5825元。調查一出,便有很多同學表示自己又被平均了。看著這一資料,不免讓人想到前不久中國青年報的一項調查:近六成大學生認為畢業10年內會 ......

    uj5u.com 2023-04-20 07:44:00 more
  • 最新版本 Stable Diffusion 開源 AI 繪畫工具之中文自動提詞篇

    🎈 標簽生成器 由于輸入正向提示詞 prompt 和反向提示詞 negative prompt 都是使用英文,所以對學習母語的我們非常不友好 使用網址:https://tinygeeker.github.io/p/ai-prompt-generator 這個網址是為了讓大家在使用 AI 繪畫的時候 ......

    uj5u.com 2023-04-20 07:43:36 more
  • 漫談前端自動化測驗演進之路及測驗工具分析

    隨著前端技術的不斷發展和應用程式的日益復雜,前端自動化測驗也在不斷演進。隨著 Web 應用程式變得越來越復雜,自動化測驗的需求也越來越高。如今,自動化測驗已經成為 Web 應用程式開發程序中不可或缺的一部分,它們可以幫助開發人員更快地發現和修復錯誤,提高應用程式的性能和可靠性。 ......

    uj5u.com 2023-04-20 07:43:16 more
  • CANN開發實踐:4個DVPP記憶體問題的典型案例解讀

    摘要:由于DVPP媒體資料處理功能對存放輸入、輸出資料的記憶體有更高的要求(例如,記憶體首地址128位元組對齊),因此需呼叫專用的記憶體申請介面,那么本期就分享幾個關于DVPP記憶體問題的典型案例,并給出原因分析及解決方法。 本文分享自華為云社區《FAQ_DVPP記憶體問題案例》,作者:昇騰CANN。 DVPP ......

    uj5u.com 2023-04-20 07:43:03 more
  • msf學習

    msf學習 以kali自帶的msf為例 一、msf核心模塊與功能 msf模塊都放在/usr/share/metasploit-framework/modules目錄下 1、auxiliary 輔助模塊,輔助滲透(埠掃描、登錄密碼爆破、漏洞驗證等) 2、encoders 編碼器模塊,主要包含各種編碼 ......

    uj5u.com 2023-04-20 07:42:59 more
  • Halcon軟體安裝與界面簡介

    1. 下載Halcon17版本到到本地 2. 雙擊安裝包后 3. 步驟如下 1.2 Halcon軟體安裝 界面分為四大塊 1. Halcon的五個助手 1) 影像采集助手:與相機連接,設定相機引數,采集影像 2) 標定助手:九點標定或是其它的標定,生成標定檔案及內參外參,可以將像素單位轉換為長度單位 ......

    uj5u.com 2023-04-20 07:42:17 more
  • 在MacOS下使用Unity3D開發游戲

    第一次發博客,先發一下我的游戲開發環境吧。 去年2月份買了一臺MacBookPro2021 M1pro(以下簡稱mbp),這一年來一直在用mbp開發游戲。我大致分享一下我的開發工具以及使用體驗。 1、Unity 官網鏈接: https://unity.cn/releases 我一般使用的Apple ......

    uj5u.com 2023-04-20 07:40:19 more