git基本操做

本文轉載自:https://blog.csdn.net/xiaogeldx/article/details/89223650git

@[toc]github

爲何要使用git

傳統文檔管理

在這裏插入圖片描述

  • 咱們在寫畢業論文時可能會遇到屢次修改以後的論文命名方式:
    • 論文_改.doc、論文_改改.doc、論文_改改改.doc、論文_改改改改.doc、論文_改改改改再改.doc、
      論文_改改改改再改TM不改了.docvim

      源代碼管理的好處

  • 方便多人協同開發
  • 方便版本控制服務器

    git的誕生

  • 做者 Linux之父:Linux Torvalds
  • git 開發目的:爲了輔助 Linux 內核開發
  • 是 Linux Torvalds 在無奈被逼的狀況下創造的
  • 2008年,github 網站上線,爲開源項目免費提供 git 存儲,無數開源項目開始遷移至github
  • git 迅速成爲最流行的分佈式版本控制系統(沒有之一)ssh

    git結構

    結構分析

  • git 是分佈式管理系統,服務器和客戶端都有版本控制能力,都能進行代碼的提交、合併……
  • 結構圖1
    在這裏插入圖片描述
  • 結構圖2
    在這裏插入圖片描述分佈式

    本地代碼管理

  • 工做區(workspace):添加、修改、刪除文件
  • 暫存區(index):將工做區中的操做完成小階段的存儲,是版本庫的一部分
  • 本地倉庫區(respository):對我的開發的一個小階段代碼存儲
    • 記錄的各版本能夠查看或者回退
    • 可是在暫存區的版本一旦提交就再也沒有了(保存到倉庫區中)測試

      本地倉庫操做

      安裝git

      在Linux安裝

      sudo apt-get install git網站

      查看是否安裝成功

      git --versionspa

      建立項目

  1. 建立一個項目文件夾用於演示(MyProjects)
  2. 新建本地倉庫
cd ~/MyProjects/
#初始化,使其變成 git 的倉庫
git init
#會建立一個 .git 隱藏文件

在這裏插入圖片描述

  1. 配置我的信息
#全局配置我的信息
git config --global user.name 'xiaogeldx'
git config --global user.email 'xxx@qq.com'
#針對本項目的我的配置信息
git config user.name 'xiaogeldx'
git config user.email 'xxx@qq.com'
#配置信息出如今 .git/config 文件中

在這裏插入圖片描述

  1. 新建測試文件
    vim test01.py
  2. 查看文件狀態
    git status #當前在工做區
    在這裏插入圖片描述
  3. 將工做區添加到暫存區
#添加項目中全部文件
git add .
#或者添加指定文件
git add test01.py

在這裏插入圖片描述

  1. 將暫存區文件提交到倉庫區
    git commit -m '一些描述'
    在這裏插入圖片描述
  2. 查看歷史版本
git log
git reflog
#git reflog 能夠查看全部分支的全部操做記錄(包括 commit 和 reset 的操做),包括已經被刪除的 commit 記錄,git log 不能查看已經刪除了的 commit 記錄

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

回退版本

  • 方法一:
    • HEAD 表示當前最新版本
    • HEAD^ 表示當前最新版本的前一個版本
    • HEAD^^ 表示當前最新版本的前兩個版本,以此類推
    • HEAD-1表示當前最新版本的前一個版本
    • HEAD-10表示當前最新版本的前十個版本,以此類推
      git reset --hard HEAD^
  • 方法二:
    當版本很是多時可選擇的方案
#經過每一個版本的版本號回退到指定版本
git reset --hard 版本號
  • 回退到最新版本
    在這裏插入圖片描述
  • 回退到最新版本的前一個版本
    在這裏插入圖片描述
  • 經過版本號回到新建了test02.py
    在這裏插入圖片描述

    撤銷修改

  • 只能撤銷工做區、暫存區的代碼
    • 撤銷工做區代碼
      git checkout 文件名
      在這裏插入圖片描述
    • 撤銷暫存區代碼
    #第一步:將暫存區代碼撤銷到工做區
    git reset HEAD 文件名
    #第二步:撤銷工做區代碼
    git checkout 文件名
    在這裏插入圖片描述
    在這裏插入圖片描述
  • 撤銷倉庫區的代碼就至關於回退版本操做

    版本對比

  • 對比本地倉庫與工做區
    • 在工做區,修改文件
      git diff HEAD -- test1.py
  • 修改前對比
    在這裏插入圖片描述
  • 修改後對比
    在這裏插入圖片描述
  • 對比本地倉庫各版本代碼
    git diff HEAD HEAD^ -- test1.py

    文件刪除

  • 誤刪處理,撤銷修改
#刪除文件
rm 文件名
#git撤銷修改
git checkout -- 文件名

在這裏插入圖片描述

  • 肯定刪除處理
#刪除文件
rm 文件名
#git肯定刪除文件,對比添加文件git add
git rm 文件名
#刪除後記錄刪除操做版本
git commit -m '刪除描述'

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

遠程倉庫

克隆遠程倉庫

git clone 遠程倉庫的ssh

  • 查看遠程鏈接信息
    git remote -v
  • clone 將遠程倉庫的文件克隆到本地並造成鏈接
    在這裏插入圖片描述

上傳到遠程倉庫

git push

  • 例:
    • 先添加一句話,經過 echo
    • 而後提交到暫存區
    • 提交到本地倉庫區
    • 上傳到遠程倉庫
      在這裏插入圖片描述

拉下遠程倉庫文件

git pull 遠程倉庫的ssh

pull和clone的區別

  • pull 所在的文件夾必須是 git 的倉庫,clone 能夠是隨意的文件夾
  • pull 只從遠程倉庫拉下文件,不創建鏈接,clone 從遠程倉庫獲得文件並創建鏈接
    在這裏插入圖片描述
  • pull 想要鏈接遠程倉庫須要 git remote add gitee 遠程倉庫的ssh
    gitee 本身起的,表示遠程倉庫克隆或下拉到本地倉庫的名字,默認是origin,上傳遠程倉庫時會用到
    在這裏插入圖片描述
  • clone 從本地倉庫上傳到遠程倉庫用 git push,pull 從本地倉庫上傳到遠程倉庫用 git push 遠程倉庫名 分支的名
    在這裏插入圖片描述
    在這裏插入圖片描述

  • 當遠程上傳時發生衝突,說明遠程倉庫的文件(部分或所有)在本地倉庫沒有,這時用 git push gitee master就很差用
    • 能夠用git push gitee +master強制推送,此時會覆蓋掉本地倉庫沒有的文件
    • 能夠先把本地倉庫沒有的文件從遠程倉庫拉下,而後再一塊兒上傳

刪除遠程倉庫

  • git remote rm 遠程倉庫名
    在這裏插入圖片描述
相關文章
相關標籤/搜索