Git_命令行

幾個概念
—————————————

這裏寫圖片描述
(圖片來自http://www.ruanyifeng.com/blog/2015/12/git-cheat-sheet.html)

  • Workspace:工作區
  • Index / Stage:暫存區
  • Repository:本地倉庫
  • Remote:遠程倉庫

配置用戶信息
—————————————

用戶的信息保存在.gitconfig文件中。全局的.gitconfig文件位於用戶目錄下。

由於CSDN博客的兩條橫線看不出來中間的空隙,所以本文故意在兩條橫線之間加了個空格。實際輸命令的時候請去掉空格。

// 查看配置信息
git config - -list

// 配置用戶名
git config - -global user.name “yourname”

// 配置用戶郵箱
git config - -global user.email “[email protected]

// 配置默認文本編輯器
git config - -global core.editor sublime

// 配置默認merge工具
git config - -global merge.tool p4merge

// 設置推送默認方式(simple或者matching)
// ・matching:Git 1.x 的默認行爲,如果執行 git push 但沒有指定分支,將 push 所有本地的分支到遠程倉庫中。
// ・simple:Git 2.x 的默認行爲,如果執行 git push 但沒有指定分支,將 push 當前本地的分支到遠程倉庫中。
git config - -global push.default simple/matching

如果用了 - -global 選項,那麼更改的配置文件就是位於你用戶主目錄下的那個,以後你 所有的項目都會默認使用這裏配置的用戶信息。如果要在某個特定的項目中使用其他名字或 者電郵,只要去掉 –global 選項重新配置即可,新的設定保存在當前項目的 .git/config 文件裏。

常用命令
—————————————

// 創建本地Git倉庫
git init

// 克隆倉庫
git clone https://github.com/test/test.git

// 查看當前狀態
git status

// 把文件添加到暫存區域
git stage <文件名>
git add <文件名>
// 把所有文件添加到暫存區域
git stage .
git add .

// 提交文件
git commit <文件名>
// 提交所有文件
git commit . / git commit
// 提交所有文件並附帶註釋
git commit -m “comment”

// 推送到遠程倉庫
git push
// 把當前分支push到遠程倉庫,並制定分支在遠程倉庫的名稱
git push origin <分支名>

// 抓取遠程倉庫數據到本地,抓取僅僅是看遠程倉庫有哪些更新
// 如果想要這些更新反應到本地工作目錄,必須要執行pull操作
git fetch origin
git fetch - -all
git fetch
// 在抓取的同時,把已經不存在的branch給刪除掉
git fetch - -prune
git fetch -p

// 把遠程倉庫最新內容更新到本地工作目錄
git pull

// 刪除文件
rm <文件名>
// 刪除文件並添加到暫存區域
git rm <文件名>
// 刪除文件(僅僅是從Git倉庫刪除,本地工作目錄不刪除)
git rm - -cached <文件名>

// 重命名文件
git mv <原文件名> <新文件名>

// 查看工作目錄中當前文件和暫存區域快照之間的差異
git diff
// 查看已經暫存起來的文件和上次提交時的快照之間的差異
git diff - -staged
// 工具diff
git difftool
// 工具diff(所有文件一起顯示)(kdiff3可以,p4Merge不可以)
git difftool - -dir-diff
git difftool -d

// 修正提交內容(有些文件忘了提交或者想要修改提交註釋)
// 下面兩個提交會合併成一個提交
git stage file1
git commit -m “commit 1”
git stage file2
git commit - -amend -m “commit 1 and 2”

// 取消已暫存的文件
git reset HEAD <文件名>
// 取消對文件的修改
git checkout - - <文件名>
// 取消對所有文件的修改
git checkout .
// 撤銷某次提交內容及之後的所有提交內容,恢復到所選提交id的前一次提交id的狀態
// 撤銷完成後如果沒有衝突的話會自動新建一個commit
git revert <提交id>

// 查看所有本地branch
git branch
// 查看所有遠程branch
git branch -r
// 查看所有本地和遠程branch
git branch -a
// 查看所有branch,並顯示最後一次commit信息
git branch -v
// 切換到指定的branch
git checkout <分支名>
// 從遠程倉庫checkout分支
git checkout -b <本地分知名> origin/<遠程倉庫分支名>
git checkout - -track origin/<遠程倉庫分支名>
// 創建branch(不會自動切換到創建的branch)
git branch test-branch
// 創建branch(並切換到創建的branch)
git checkout -b test-branch
// push本地分支到遠程倉庫
git push - -set-upstream origin test-branch
// 將其他分支的內容merge到master
git checkout master
git merge test-branch
// 查看那些分支已經被合併到當前分支
git branch - -merged
// 查看那些分支還沒有被合併到當前分支
git branch - -no-merged
// 刪除分支
git branch -d test-branch
// 把某次的提交內容合併到當前分支
git cherry-pick <提交id>

// 刪除遠程分支
git push origin :<遠程分支名>

// 顯示所有tag
git tag
// 顯示所有1.x的tag
git tag -l “v1.*”
// 顯示tag的詳細信息
git show v1.0
// 創建tag
git tag -a v1.0 -m ‘tag v1.0’

// 查看log
git log
// 查看log並顯示簡要的增高行數
git log - -stat
// 查看最近2次log
git log -p -2
// 以關鍵字搜索log
git log -S <關鍵字>
// 顯示所有提交過的用戶和提交message
git shortlog
// 顯示所有提交過的用戶,按提交次數排序
git shortlog -sn
// 顯示指定文件是什麼人在什麼時間修改過
git blame [file]
// 查看所有分支的所有操作記錄(注意是操作記錄,不僅僅侷限於提交紀錄)
git reflog
// 使用可視化工具查看log
gitk

// 查看遠程倉庫信息
git remote show origin
// 重命名遠程倉庫
git remote rename <原倉庫名> <新倉庫名>
// 刪除遠程倉庫
git remote rm <倉庫名>

// 緩存當前增在進行的工作
git stash
git stash save
git stash save “stash name”
// 緩存當前增在進行的工作(包括沒有被追蹤的文件)
git stash –include-untracked
git stash -u
// 查看所有stash
git stash list
// 恢復緩存(不加緩存名稱則默認最近一次緩存)
git stash apply
git stash apply stash@{0}
// 恢復緩存並刪除該緩存
git stash pop
git stash pop stash@{0}
// 刪除緩存
git stash drop
git stash drop stash@{0}
// 顯示緩存內容(文件一覽)
git stash show stash@{0}
// 顯示緩存內容(差分一覽)
git stash show -p stash@{0}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章