git-bash 經常使用命令

記錄,方便之後工做查閱git

-------------------- 
做者:左手121 
來源:CSDN 
原文: https://blog.csdn.net/qq_20282263/article/details/80859589 fetch

 

基本配置url

git config --global user.name "name" : 配置用戶名
git config --global user.email "email" : 配置郵箱
git remote : 查看當前遠程庫
git remote add <name> <url> : 添加遠程倉庫
git remote remove <name> : 刪除遠程倉庫
git remote rename <old> <new> : 修改遠程庫的名字
git remote show <name> : 查詢遠程庫主機信息
git init : 初始化本地倉庫
git init --bare : 初始化一個空目錄,用於搭建本身的遠程倉庫
git clone <url> <path> : 克隆一個遠程庫到對應路徑下,path 未指定時候指當前目錄
git diff : 查看提交和工做樹等之間的更改,能夠是指定某個文件。也能夠指定兩個分支之間對比等
git status : 檢查文件狀態
git add
git add : 將修改的文件提交到暫存區
git add [<path>] : 將路徑中的文件提交到暫存區(1.x 版本中:修改、新增,2.x 版本中:修改、新增、刪除)
git add --ignore-removal [<path>] : 將路徑中的文件提交到暫存區(2.x 版本中:修改、新增、刪除)
git add -u [<path>] : 將路徑中的文件提交到暫存區(修改、刪除)
git add -A [<path>] : 將路徑中的全部文件提交到暫存區(修改、新增、刪除)
git commit
git commit : 提交暫存區的內容
git commit -m <msg> : 提交暫存區的內容,並添加提交信息
git commit --amend : 合併暫存區的內容到上一次的提交內容中。使用場景:提交代碼以後發現漏掉了幾個文件,再次提交併合併。
git commit [-a -m] | [-am] : 提交全部修改的內容(暫存區和工做區),並添加提交信息。
git push
git push <遠程主機名> <遠程分支名>:<本地分支名> : git push origin master將 master 分支的代碼推送到 origin 遠程的 branch 分支中
git push -u origin master : 指定一個默認遠程,將本地的 master 分支推送到遠程主機的 master 分支中。若是 master 不存在,則會被新建。首次提交的時候須要執行該命令,指定一個默認的遠程
git push : 將當前分支的代碼推送到對應的遠程分支中。指定了默認遠程或者只存在一個遠程則能夠省略主機名。當前分支與遠程分支之間存在追蹤關係則能夠省略分支名
git push origin --delete master | git push origin :master : 刪除 origin 遠程的 master 分支
git pull
git pull <遠程主機名> <遠程分支名>:<本地分支名> : git pull origin master從 origin 遠程拉去 master 分支代碼並和本地 master 分支合併。指定了默認遠程或者只存在一個遠程則能夠省略主機名。當前分支與遠程分支之間存在追蹤關係則能夠省略分支名
git pull 等同於 git fetch 和 git merge 兩個操做
git pull --rebase : 抓去代碼合併的同事,剔除一些毫無心義的 merge commit 信息。例如:好比:Merge banchA into branchB.
git stash
使用場景:一、修改了部分代碼以後又不須要了,想保存起來方便之後查看。二、本地有修改的內容,在同步數據的時候能夠臨時暫存,隨後釋放。spa

git stash : 將工做區的內容所有存儲起來。只是在本地操做,不會隨着 push 發佈到遠程
git stash save <name> : 將工做區的內容所有存儲起來,並添加標註信息。
git stash pop : 釋放上一次的存儲信息到工做區
git stash <name> : 釋放對應信息的存儲數據到工做區
git stash list : 查看全部的暫存信息
git stash drop <name> : 刪除對應的存儲信息
git stash show <name> : 查看對應存儲信息的 diff 數據
git stash show -p <name> : 查看對應存儲信息的全部 diff 數據
git branch
git branch :
git branch : 列出本地已經存在的分支,而且在當前分支的前面用」*」標記
git branch -r : 查看遠程版本庫分支列表
git branch -a : 查看全部分支列表,包括本地和遠程
git branch <name> : 建立分支.net

git branch -d <name> : 刪除分支日誌

git branch -vv : 查看本地分支對應的遠程分支code

git branch -m <old> <new> : 分支重命名orm

git branch --set-upstream branch-name origin/branch-name : 本地分支關聯遠程分支  對象

git remote -v :查看遠程倉庫信息blog

git checkout <fileName> : 放棄單個文件的修改
git checkout . : 放棄當前目錄下的修改
git checkout <name> : 切換分支
git checkout -b <name> : 分支存在則只切換分支,若不存在則建立並切換
git reset
git reflog : 查詢每次的提交記錄
git reset HEAD <file> : 撤銷 add 的 file 文件。HEAD 指當前修改,HEAD^指最近一次的提交,HEAD^^^指最近 3 次的提交等同於 HEAD~3
git reset [HEAD^ | CommitID] : 回退到上一個版本或者指定版本,保留最近的修改內容
git reset --hard [HEAD^ | CommitID] : 回退到上一個版本或者指定版本,最近的修改記錄會丟失,若是還原須要執行 git reflog 查找對應的 commit 信息,再 reset 一次
git reset --soft [HEAD^ | CommitID] : 回退到上一個版本或者指定版本,最近的修改內容保存在 stage 中
git log
git log : 以默認格式和順序輸出提交歷史,上下鍵翻頁,Q 鍵退出
git log --oneline : 每條日誌的輸出爲一行
git log -[length] : 輸出幾條日誌
git log –skip=[skip] : 跳過前幾條日誌
git log -p : 輸出提交信息中的全部 diff 數據
git log --name-status : 輸出日誌中包含每次提交對應的文件改動
git log --author <name> : 輸出對應提交人的提交日誌
git log --grep <keywords> : 輸出包含該關鍵字的提交日誌
git log [commit] | [commit1 commit2] | [commit1..commit2] : 查詢 commit 以前的記錄,包含 commit。查詢 commit1 與 commit2 之間的記錄,包括 commit1 和 commit2。查詢 commit1 與 commit2 之間的記錄,不包括 commit1
git log --stat : 列出文件的修改行數
git log --numstat : 列出文件的添加 刪除行數
git log --name-only : 僅在提交信息後顯示已修改的文件清單
git log --relative-date : 使用較短的相對時間顯示(好比 2 weeks ago)
git log --since '2018-01-01' --until '2018-07-07' : 顯示在 2018-01-01 和 2018-07-07 之間的提交記錄,不包括 2018-01-01。或者使用 befor 和 after
git log --pretty=format:"%an %ae %ad %cn %ce %cd %cr %s" : 格式化輸出的內容


%H : 提交對象(commit)的完整哈希字串
%h : 提交對象的簡短哈希字串
%T : 樹對象(tree)的完整哈希字串
%T : 樹對象(tree)的完整哈希字串
%t : 樹對象的簡短哈希字串
%P : 父對象(parent)的完整哈希字串
%p : 父對象的簡短哈希字串
%an : 做者(author)的名字
%ae : 做者的電子郵件地址
%ad : 做者修訂日期(能夠用 -date= 選項定製格式)
%ar : 做者修訂日期,按多久之前的方式顯示
%cn : 提交者(committer)的名字
%ce : 提交者的電子郵件地址
%cd : 提交日期
%cr : 提交日期,按多久之前的方式顯示
%s : 提交說明

 

Git鼓勵大量使用分支:

查看分支:git branch

建立分支:git branch <name>

切換分支:git checkout <name>

建立+切換分支:git checkout -b <name>

合併某分支到當前分支:git merge <name>

刪除分支:git branch -d <name>


經常使用集合命令獲取對應時間內對應提交人的提交代碼量 : git log --since '2018-06-01' --until '2018-07-01' --author="$(git config --get user.name)" --pretty=format: --numstat | gawk '{ add += $1 ; subs += $2 ; loc += $1 - $2 } END { printf "added lines: %s, removed lines : %s, total lines: %s.\n", add, subs, loc }'顯示本倉庫中提交次數排名前五的做者 : git log --pretty='%an' | uniq -c | sort -k1 -n -r | head -n 5

相關文章
相關標籤/搜索