Git基礎篇

Git是開源的分佈式版本控制系統,能夠說是開發人員必備了,每一個程序員都應該掌握。這裏主要講Git的安裝與配置,工做區、暫存區、版本庫的概念以及經常使用的一些命令。git

Linux下Git的安裝與配置

Ubuntu下能夠運行如下命令安裝:sudo apt install git,安裝成功後可查看Git版本:git --version程序員

Git配置

Git 提供了一個叫作 git config 的工具,專門用來配置或讀取相應的工做環境變量。緩存

這些環境變量,決定了Git 在各個環節的具體工做方式和行爲。這些變量能夠存放在如下三個不一樣的地方:bash

  • /etc/gitconfig文件:系統中對全部用戶都廣泛適用的配置。若使用 git config 時用「--system」選項,讀寫的就是這個文件。可以使用git config -e --system對配置文件進行配置。
  • ~/.gitconfig文件:用戶目錄下的配置文件只適用於該用戶。若使用 git config 時用「--global」選項,讀寫的就是這個文件。可以使用git config -e --global對配置文件進行配置。
  • 當前項目的 Git 目錄中的配置文件(也就是工做目錄中的 .git/config 文件):這裏的配置僅僅針對當前項目有效。每個級別的配置都會覆蓋上層的相同配置,因此 .git/config 裏的配置會覆蓋 /etc/gitconfig中的同名變量。可進入對應項目目錄使用git config -e對配置文件進行配置。

(Git的配置文件是INI格式的)分佈式

配置用戶信息

開始前,須要先配置用戶名和郵件地址:工具

git config --global user.name "your name"
git config --global user.email your_email
複製代碼

若是用了 --global 選項,那麼更改的配置文件就是位於你用戶主目錄下的那個,之後你全部的項目都會默認使用這裏配置的用戶信息。若是要在某個特定的項目中使用其餘名字或者電郵,只要去掉 --global 選項從新配置便可,新的設定保存在當前項目的 .git/config 文件裏。url

查看已有的配置信息:git config --listspa

Git基本概念(工做區、暫存區、版本庫)

理解Git是怎麼工做的,主要是要理解工做區、暫存區、版本庫這三個概念。3d

  • 工做區:就是你在電腦裏能看到的目錄。
  • 暫存區:英文叫stage, 或index。通常存放在 ".git目錄下" 下的index文件(.git/index)中,因此咱們把暫存區有時也叫做索引(index)。
  • 版本庫:工做區有一個隱藏目錄.git,這個不算工做區,而是Git的版本庫。

下面這個圖展現了工做區、版本庫中的暫存區和版本庫之間的關係: 版本控制

這裏寫圖片描述

工做區-->暫存區 當對工做區修改(或新增)的文件執行 "git add" 命令時,暫存區的目錄樹被更新,同時工做區修改(或新增)的文件內容被寫入到對象庫中的一個新的對象中,而該對象的ID被記錄在暫存區的文件索引中。

暫存區-->版本庫 當執行提交操做(git commit)時,暫存區的目錄樹寫到版本庫(對象庫)中,master 分支會作相應的更新。即 master 指向的目錄樹就是提交時暫存區的目錄樹(這句話相對繞口一些,這裏以master分支爲例)。

Git經常使用命令

建立倉庫
  • git init:使用當前目錄做爲Git倉庫
  • git init <directory>:使用指定目錄做爲Git倉庫
git clone
  • git clone <repertory-url>:克隆倉庫
  • git clone <repertory-url> <directory>:克隆到指定目錄
git diff
  • git diff:查看工做區的最新改動,即工做區與提交暫存區的差別
  • git diff --cached:查看已緩存的改動,即提交暫存區與版本庫中的差別
  • git diff HEAD:查看工做區與HEAD(當前工做分支)的差別
  • git diff --stat:顯示摘要而非整個 diff:

HEAD :表明版本庫中最近一次提交
^ :指代父提交
HEAD^:表明當前提交的上一次提交
HEAD^^:以此類推......

git reset
  • git reset --hard HEAD^:回退到上一次提交。完全撤銷最近的提交,工做區和暫存區都回退到上一次提交的狀態。
  • git reset --hard <commit>:回退到指定提交

git reset --hard參數會進行完全回退,工做區、暫存區、版本庫內容一致,即回退到指定commit的那個狀態

查看項目的分支們(包括本地和遠程)
  • git branch -a
刪除本地分支與遠程分支
  • git branch -d <BranchName>: 刪除本地分支
  • git push origin --delete <BranchName>: 刪除遠程分支
其餘命令
  • git add:文件添加到緩存
  • git add .:添加項目的全部文件
  • git status:查看當前狀態
  • git commit -m"註釋":將緩存區內容添加到倉庫

參考:
Git官網
Git Book

相關文章
相關標籤/搜索