使用git 已不知好幾年,最近想着把經常使用的一些git 命令作個總結,本文主要寫的是git經常使用的命令。git
閱讀三連:點贊(👍)、關注(😍)、收藏(📝)。
本文 github (一學就會的Git命令操做) 已上傳,更多往期文章已分類整理。
mkdir folder_name // 建立文件夾 [folder_name: 文件夾名稱,舉個栗子:git-demo] cd folder_name // 進入文件夾 touch file_name // 建立一個文件 [file_name:文件名稱,舉個栗子:index.js] vim file_name // 編輯一個文件 [舉個栗子:vim index.js] rm -rf file_name // 刪除文件或者文件夾 [rm -rf file_name] ls // 顯示工做目錄 clear // 清除屏幕
1.第一種方式,將本地項目轉換成git 倉庫, 生成一個.git文件;github
mkdir git-demo //建立一個文件 cd git-demo git init // 建立一個名爲 .git 的子目錄
2.第二種方式,拉取(克隆)遠程已存在的git倉庫;web
git clone <url> // url 倉庫地址 git clone https://github.com/FishStudy520/git-demo.git
配置用戶信息(用戶名和郵箱);vim
git config user.name 'your name' // 配置用戶名 git config user.email 'your email' //配置用戶郵箱
查看配置信息 (顯示配置信息);緩存
git config --list
全局配置用戶只須要加 --global
;app
git config --global user.name 'your name' // 全局配置用戶名
查看常見的命令;fetch
git help
查看git所有的命令;url
git help -a
查看git命令某個文檔, 舉個栗子:spa
git help add
查看狀態版本控制
git status
主要用於查看工做區與保存區的狀態;文件狀態如如下三種:
Untracked files: 未跟蹤的文件,新建立的文件 (未跟蹤的文件);
Changes to be committed:保存已修改的文件,該文件運行在git add 的版本歷史記錄中,但尚未commit ;
Changes not staged for commit: 保存已修改的文件;
git add .
提交到暫存區區,使用git reset HEAD <file>
還原到git add .
時的狀態;git checkout .
將以跟蹤全部已修改的文件,還原到修改前的狀態(Unmodifed);查看狀態,簡寫參數:-s
git status -s
將文件/文件夾提交到暫存區,添加單個或者多個;
git add file file1 ...
將當前目錄下的全部文件添加到暫存區(包含修改的文件以及新增文件);
git add .
將已經監控的文件添加到暫存區(不包含新增的文件);
git add -u
將當前項目下的全部變化都添加到暫存區;
git add -A
Git commit將工做區的內容提交到本地倉庫,每次提交生成一個commit-id,在版本回退起了重要的位置。
將工做區內容提交到本地倉庫;
git commit -m 'message'
將暫存區已修改的文件提交到本地倉庫,注:已版本控制的文件;
git commit -a -m 'messgae'
若是咱們最近一次的提交信息寫錯了,可使用下面命令修改;
git commit --amend
查看本地倉庫下的分支,標記「*」的是當前工做區分支;
git branch
查看全部的分支(本地倉庫以及遠程倉庫分支),-a
是 --all
的簡寫;
git branch -a
建立一個新分支;
git branch <branch_name> //branch_name: 新分支名稱
切換分支,好比你如今在master分支上,切換到develop分支;
git checkout develop // 切換到develop分支
刪除某個分支,-d
是 --delete
的簡寫;
git branch -d <branch_name> // branch_name:須要刪除的分支名 // 舉個栗子:刪除develop 分支 git branch -d develop // 強制刪除某個分支,分支未合併,若是想刪除,就使用下面命令; git branch -D develop
打印當前分支名稱;
git branch --show-current
顯示與工做區分支已合併的分支;
git branch --merged
顯示與工做區分支未合併的分支;
git branch --no-merged
git checkout
主要的做用是切換分支或者還原工做區文件的變動。
切換分支;
git checkout <branch_name> // branch_name:分支名稱 git checkout develop //切換到develop 分支
建立新分支而且切換到這個分支上;
git checkout -b <branch_name> // branch_name:新增分支名稱 git checkout -b develop // 建立develop 分支並切換到develop分支上
忽略工做區的修改,切換分支;
git checkout -f <branch_name> // 忽略修改切換到 branch_name 上
git merge
的做用就是將指定的分支合併到當前分支;
合併分支;
git merge <branch_name> // branch_name: 分支名稱
在合併分支時,產生合併衝突,退回到合併前的狀態;
git merge --abort
查看全部的提交記錄;
git log // 按 字母 q 退出查看
參數
--oneline: git log 的簡寫,輸出7個commit hash 的前7個字符,以及提交說明;
git log --oneline
-p:查看每次提交改變的差別,這個很詳細;
git log -p // 查看每次提交改變的差別 git log -p <file> // 查看指定文件的提交記錄
--stat:查看每次提交的簡略信息,能夠快速查看每次提交的差別,比-p簡潔;
git log --stat
--prettry:這個參數用於自定義輸出格式信息;好比:oneline[單行],format[定製時間格式]
git log --prettry=oneline
-n: n表明限制輸出的數量,最近的n條提交信息;
git log -2 // 最近兩條的提交信息
--graph:查看在日誌旁以 ASCII 圖形顯示分支與合併歷史;
git log --graph
查看當前工做區與保存區文件修改了哪些內容(不包含新文件);
git diff
查看當前工做區與上一個版本的差別;
git diff HEAD git diff commit-id // 與commit-id版本比較差別,commit-id:對應提交的版本號
查看當前工做區與另外一個分支的差別;
git diff master // 與master 分支比較差別
查看對比兩個分支間的差別;
git diff master...develop // 對比master分支與develop 分支的差別
查看哪些文件改動了,有多少,可使用--stat
參數;
git diff --stat
git tag
用來標記git 版本的標記;
查看全部的tag 標記;
git tag
建立一個tag標記;
git tag v0.0.1
查看某個tag的詳情內容;
git tag <tag_name> // tag_name: tag名稱 // 好比:查看v0.0.1 標記 git tag v0.0.1
刪除某個tag;
git tag -d v0.0.1
推送本地tag到遠倉庫;
git push origin --tags
查看遠程倉庫的全部tag;
git ls-remote --tags origin
以某個tag 建立新分支;
git checkout -b <branch_name> <tag_name> // branch_name:新分支名,tag_name: tag名
查看遠程倉庫;
git remote -v
添加遠程倉庫;
git remote add <short_name> <url> // short_name: 簡短的名稱,url:遠程倉庫地址 // 舉個栗子: git remote add fishStudy520 https://github.com/FishStudy520/git-demo.git
從遠程倉庫拉取和抓取到本地倉庫,但未合併(同步遠程倉庫數據);
git fetch <remote> //remote: 遠程地址
從遠程倉庫拉取和抓取到本地倉庫,而且合併數據(同步遠程倉庫數據);
git pull origin master // 拉去遠程倉庫數據
刪除遠程倉庫的某個分支;
git push origin --delete <branch_name> // branch_name: 遠端分支名
推送到遠程倉庫;
git push origin master // 推送到遠程倉庫的master分支
查看某個遠程倉庫;
git remote show origin
修改遠程倉庫名稱;
git remote rename old_name new_name // 舉個栗子: git remote rename fishStudy520 fish001
移除遠程倉庫;
git remote remove fishStudy520 //移除遠程倉庫 fishStudy520
git pull 與 git fetch 的區別:
git pull = git fetch + git merge
執行貯藏操做,是將修改暫時存儲到堆棧中
場景:當你在項目上修改一些內容,而如今臨時線上有個緊急bug 須要修復,可是你不想這麼一會就建立一次提交,這時使用stash,將修改保存。等Bug 修改完後,再次切回原分支,從堆棧中恢復剛剛貯藏的內容。
貯藏內容,添加備註信息,方便之後查找;
git stash save <message> // message:備註信息(可選參數下) or git stash //不添加備註信息
查看貯藏列表;
git stash list
查看貯藏的內容變動,默認顯示第一個,若是查看其餘的貯藏,在stash${num},num表明哪一個貯藏;
git show stash //默認第一個,索引爲0, git show stash@{1} // 查看第二次貯藏的內容有哪些
應用某個貯藏,但不會在堆棧列表中刪除,這裏的索引從0開始;注:0最新的一次保存,1上一次貯藏,以此類推;
git stash apply // 默認使用最近一次的貯藏,至關於 git stash apply stash${0} git stash apply stash${1} // 使用第二個貯藏
應用某個貯藏,而且從堆棧列表中刪除;
git stash pop stash@{2} // 使用第3個貯藏,而且刪除從緩存中刪除
將以前的某次貯藏從列表中刪除;
git stash drop stash@{2} // 丟棄列表中的第3次貯藏
刪除全部貯藏的stash;
git stash clear
若是喜歡或對你有用,那就點個讚唄(👍👍👍)! (╯ε╰)(╯ε╰)(╯ε╰)。