Git基礎(chǔ)命令記錄

clear : 終端清屏
command + k : 終端清屏

添加配置

git config [--local | --global | --system] user.name 'Your name'
git config [--local | --global | --system] user.email 'Your email'

查看配置

git config --list [--local | --global | --system]

local: 只對(duì)某個(gè)本倉(cāng)庫(kù)有效
global: 對(duì)當(dāng)前用戶的所有倉(cāng)庫(kù)有效
system: 對(duì)本系統(tǒng)的所有登錄用戶有效

git status : 查看git工作目錄與暫存區(qū)的當(dāng)前狀態(tài)
git add 文件名 : 將新添加某個(gè)文件到git的暫存區(qū)中
git add -u : 已經(jīng)被git管理的 可以用-u來(lái)將修改的文件,提交到暫存區(qū)
注意:
git add -u : 將文件的修改、文件的刪除,添加到暫存區(qū)
git add . : 將文件的修改,文件的新建,添加到暫存區(qū)
git add -A : 將文件的修改,文件的刪除,文件的新建,添加到暫存區(qū)

git commit -m'提交信息描述' : 提交git中的改變
git commit -am'描述' : 將工作目錄下的修改直接提交到git版本歷史庫(kù)中,不推薦
git commit --amend : 修改最新commit的message

修改老舊commit的message:
git rebase -i 需要修改的commit的父commitid,進(jìn)入交互界面,只將需要修改的commit記錄前的pick改為reword或r,保存退出
進(jìn)入新交互界面,修改message,保存退出,完成。

把多個(gè)commit整理成一個(gè):
git rebase -i 需要合并的最早的commit的父commitid
進(jìn)入到交互界面,需要合并的最早的commit的記錄前的pick不需要變,將需要合并的其他commit記錄前的pick改為squash或者s,保存退出,
進(jìn)入新交互界面,在This is a combination of 4 commits下面添加最新提交信息接口,保存退出,完成。

git rm 文件名 : 刪除文件

git mv 文件名 文件新名 : 文件重命名

git log --all : 查看所有分支提交日志

git log --all --graph : 圖像化 查看所有分支提交日志

git log : 查看當(dāng)前分支提交日志

git log -n2 : 查看當(dāng)前分支最近2次提交

git log --oneline : 查看當(dāng)前分支簡(jiǎn)潔的提交日志

git log --oneline --all : 查看所有分支簡(jiǎn)潔的提交日志

git log -n2 --oneline : 查看當(dāng)前分支最近2次簡(jiǎn)潔的提交日志

git log --oneline --all -n2 : 查看所有分支最近2次簡(jiǎn)潔的提交日志

git log --oneline --all -n3 --graph : 圖像化 查看所有分支最近2次簡(jiǎn)潔的提交日志

git branch -v : 查看本地分支信息

git branch -av :

git checkout master : 切換分支到master

git checkout -b 分支名稱 已經(jīng)存在的分支名稱 : 基于某個(gè)存在的分支創(chuàng)建分支

git checkout -b 分支名稱 之前的某個(gè)分支的提交序號(hào) : 基于之前的某個(gè)提交記錄創(chuàng)建分支

git branch -d 分支名稱 : 刪除分支
如果報(bào)錯(cuò):“error:The branch is not fully merged”,指這個(gè)分支不曾合入到其他任何分支。
在日常開(kāi)發(fā)中,我們通常賦予有意義的分支名,Git判斷本分支沒(méi)和任何別的分支合并,意味著刪除存在風(fēng)險(xiǎn)。
如果確認(rèn)需要?jiǎng)h除本分支,使用下面的命令即可:
git branch -D 分支名稱 : 強(qiáng)制刪除分支

cat 文件名稱 : 查看文件的內(nèi)容
git cat-file 文件hash值: 顯示版本庫(kù)對(duì)象的內(nèi)容、類型及大小信息。
git cat-file -t 文件hash值 : 顯示版本庫(kù)對(duì)象的類型
git cat-file -s 文件hash值 : 顯示版本庫(kù)對(duì)象的大小
git cat-file -p 文件hash值 : 顯示版本庫(kù)對(duì)象的內(nèi)容

分離頭指針:
git checkout commitId 命令
會(huì)出現(xiàn)分離頭指針的情況,這種情況下比較危險(xiǎn),因?yàn)檫@個(gè)時(shí)候你提交的代碼沒(méi)有和分支對(duì)應(yīng)起來(lái),當(dāng)切換到其他分支的時(shí)候(比如master分支),容易丟失代碼;
但是分離頭指針也有它的應(yīng)用場(chǎng)景,就是在自己做嘗試或者測(cè)試的時(shí)候可以分離頭指針,當(dāng)嘗試完畢沒(méi)有用的時(shí)候可以隨時(shí)丟棄,但是如果覺(jué)得嘗試有用,那么可以新建一個(gè)分支,使用 git branch <新分支的名稱> commitId

比較差異

git diff 分支名稱 分支名稱 : 比較兩個(gè)分支的差異

git diff 分支名稱 分支名稱 -- 文件名稱 : 比較兩個(gè)分支某個(gè)文件的差異

git diff 分支commitid 分支commitid -- 文件名稱 : 比較兩個(gè)分支某個(gè)文件的差異

git diff commitid commitid :查看兩次提交的差異

HEAD可以來(lái)指代commit:
git diff HEAD HEAD^(表示head的父親) : 查看兩次提交的差異 等同于 git diff HEAD HEAD~1

git diff HEAD HEAD^^(表示head的父親的父親) 等同于 git diff HEAD HEAD~2

git diff : 比較工作區(qū)和暫存區(qū)所含文件的差異

git diff -- 文件名稱(可以多個(gè)文件名稱,中間空格隔開(kāi)) : 比較工作區(qū)和暫存區(qū)某個(gè)文件的差異

git diff --cached : 比較暫存區(qū)與HEAD內(nèi)容的差異

取消更改

git reset HEAD : 讓暫存區(qū)恢復(fù)成和HEAD的一樣

git reset HEAD -- 文件名稱(可以多個(gè)文件名稱,中間空格隔開(kāi)) : 取消暫存區(qū)部分文件的更改

git reset --hard : 清除暫存區(qū)與工作目錄下的修改

git reset --hard commitid : 工作區(qū)、暫存區(qū) 、HEAD都回退到commitid提交的狀態(tài)

git reset commitid : 暫存區(qū) 、HEAD都回退到commitid提交的狀態(tài) ,工作區(qū)不變

git reset --soft commitid : HEAD都回退到commitid提交的狀態(tài),暫存區(qū)、工作區(qū)不變

git checkout -- 文件名 : 讓工作區(qū)的文件恢復(fù)為和暫存區(qū)一樣

開(kāi)發(fā)中臨時(shí)加塞了緊急任務(wù)怎么處理? 使用存儲(chǔ)功能

git stash : 將工作區(qū)的修改存儲(chǔ)起來(lái),還原成為修改之前的狀態(tài)

git stash list : 查看存儲(chǔ)列表

git stash apply : 應(yīng)用存儲(chǔ)的代碼,恢復(fù)到工作區(qū),stash區(qū)域中的存儲(chǔ)不會(huì)被刪除

git stash pop : 應(yīng)用存儲(chǔ)的代碼,恢復(fù)到工作區(qū),stash區(qū)域中的存儲(chǔ)會(huì)被刪除

stash區(qū)域多個(gè)stash的情況:
如stash@{2} 和 stash@{1},序號(hào)中數(shù)字大的代表的是較早的stash。
git stash pop = git stash pop stash@{0}
git stash pop stash@{2}

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

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

  • 簡(jiǎn)介 Git是一個(gè)開(kāi)源的分布式版本控制系統(tǒng),用于敏捷高效地處理任何或小或大的項(xiàng)目。 Git 與常用的版本控制工具 ...
    閩越布衣閱讀 2,872評(píng)論 0 18
  • Git 記錄 本文是根據(jù) 凱子哥 的掘金小冊(cè):Git 原理詳解及使用指南,記錄下的一些筆記,希望不會(huì)造成版權(quán)上的問(wèn)...
    chendroid閱讀 400評(píng)論 0 1
  • git 使用筆記 git原理: 文件(blob)對(duì)象,樹(shù)(tree)對(duì)象,提交(commit)對(duì)象 tree對(duì)象 ...
    神刀閱讀 3,849評(píng)論 0 10
  • 一、基本概念: 注:對(duì)于git的分布式概念及其優(yōu)點(diǎn),不重復(fù)說(shuō)明,自己百度或谷歌。本文中涉及到指令前面有$的,在cm...
    大廠offer閱讀 1,558評(píng)論 0 3
  • 以下筆記主要參考gitgot,大致了解git使用和原理。 第一部分我們從個(gè)人的視角去研究如何用好Git,并且揭示G...
    carolwhite閱讀 2,523評(píng)論 0 1

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