Git簡明原理

學(xué)完就忘的典型: git, 寫個(gè)文檔記錄一下

一些常用但不想背的東西寫在前面

git config --global init.defaultBranch main #全局設(shè)置默認(rèn)主分支名為main
git branch -m main #重命名當(dāng)前主分支名為main
#好看的短命令 git lg
git config --global alias.lg "log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit"

0x00 Quick Start

很簡單, 熟記以下命令, 你就上手git了.

(細(xì)節(jié)可參考官方GitBook (1.3, 1.5, 1.6, 第二章和第三章) https://git-scm.com/book/zh/v2

git init #初始化一個(gè)倉庫
git branch -m main #重命名主分支為main
git status #當(dāng)前工作區(qū)的狀態(tài)(是否有未提交的文件
git add . #添加所有文件進(jìn)暫存區(qū)
git commit -m "some description about this commit" #提交一個(gè)commit
git log #查看HEAD之前的提交信息
git log --oneline #簡潔的log
git reflog #查看所有對HEAD狀態(tài)有改變的操作記錄
git push #推上遠(yuǎn)程倉庫
git reset --hard 03522d7 #回退到指定版本
git reset --hard HEAD^ #回退到HEAD前一個(gè)版本
git reset --hard HEAD~1 #同上, 回退到HEAD前一個(gè)版本
git reset --hard HEAD~100 #回退到HEAD前面100個(gè)版本

0x01 工作區(qū), 暫存區(qū) 和 本地倉庫

初學(xué)git的時(shí)候就只顧著趕緊用上, 這塊的知識(shí)一直比較模糊, 一知半解. 現(xiàn)在正好系統(tǒng)整理一遍.

在理解這三個(gè)分區(qū)之前, 我們首先應(yīng)該知道他對應(yīng)的git命令階段, 上面的圖很好地展示了這些對應(yīng)關(guān)系.

工作區(qū)

很簡單, 直接面向用戶的區(qū)域, 也就是直接寫代碼的地方. 在執(zhí)行g(shù)it add后, 文件就被放進(jìn)了暫存區(qū).

暫存區(qū)

暫存區(qū)是一個(gè)抽象的概念, 它不是一個(gè)存著工作區(qū)文件備份的具體的目錄, 它只是一個(gè)索引(index), 記錄還未被提交的文件信息. add之后commit之前的文件就認(rèn)為是屬于暫存區(qū)的.

本地倉庫

commit之后, 文件的信息就會(huì)附帶上commit時(shí)候填寫的備注信息和提交人信息等, 從暫存區(qū)轉(zhuǎn)移到本地倉庫(git數(shù)據(jù)庫).

遠(yuǎn)程倉庫

這個(gè)很好理解, git push就會(huì)將本地倉庫的新信息同步到遠(yuǎn)端的服務(wù)器, 遠(yuǎn)端的服務(wù)器維護(hù)一份最新的本地庫副本, 供給團(tuán)隊(duì)里的每一個(gè)人同步開發(fā)進(jìn)度, 共同進(jìn)行開發(fā).

0x02 可是這些是什么原理呢

Ref.

Oh Shit, Git!?! (ohshitgit.com)

Git - Book

Git 原理入門 - 阮一峰的網(wǎng)絡(luò)日志

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 隨著對git不斷使用,逐步進(jìn)行學(xué)習(xí)和理解,現(xiàn)把學(xué)習(xí)整理成一系列基礎(chǔ)內(nèi)容,供大家參考和討論。主要包括:1、git工作...
    greatjing閱讀 714評論 0 0
  • 一、電腦本地初始化一個(gè)倉庫 1. git init: 初始化一個(gè)電腦上本地倉庫 終端進(jìn)入項(xiàng)目目錄,輸入: 該命令將...
    dragon_li閱讀 3,142評論 1 4
  • Git入門教程 1. 基本原理 概述 Git是分布式版本控制系統(tǒng)(Distributed Version Cont...
    東方月初灬閱讀 200評論 0 1
  • 1.1 關(guān)于版本控制 開始之前先看一個(gè)沒有版本控制的例子 1.1.1 本地版本控制 本地版本控制系統(tǒng) 許多人習(xí)慣用...
    Habit_1027閱讀 327評論 0 3
  • 16宿命:用概率思維提高你的勝算 以前的我是風(fēng)險(xiǎn)厭惡者,不喜歡去冒險(xiǎn),但是人生放棄了冒險(xiǎn),也就放棄了無數(shù)的可能。 ...
    yichen大刀閱讀 7,884評論 0 4

友情鏈接更多精彩內(nèi)容