git 常用操作匯總

git 倉庫特點

  1. 使用快照流
  2. 近乎所有操作都是本地執行
  3. 一般只添加數據
    三種狀態:modified -> committed -> staged
在 Git 中任何已提交的東西幾乎總是可以恢復的。甚至那些被刪除的分支中的提交或使用 --amend 選項覆蓋的提交也可以恢復。然而,任何你未提交的東西丟失后很可能再也找不到了。

config

全局讀:~/.gitconfig(在無.git目錄下 或者 加上--global 參數)
項目讀:.git/config

  1. git config --list
    列出當前所有配置信息
  2. git config <key>
    查詢某一項配置信息

status

git status -s 簡短輸出各文件狀態

diff

git diff 查看未放入暫存區的文件變化
git diff --cached 查看已放入暫存區的文件變化

commit

git commit -a 可以跳過 git add . 步驟
git commit --amend 提交后發現忘記了暫存某些需要的修改,可以使用此命令,最終只會有一個提交 - 第二次提交將代替第一次提交的結果

reset

  1. git reset:回滾 git add 操作
  2. git reset --soft HEAD^:回滾最近一次提交(commit)
  3. git reset --hard HEAD~n:永久刪除最近的 n 個提交
  4. git reset --hard:回滾 git pull 操作
  5. git reset -- {fileName}:回滾 git add fileName 操作
  6. git reset --keep {tagName}:回滾到 tagName 之前

rm

git rm 從已跟蹤文件清單中移除(確切地說,是從暫存區域移除)
git rm --cached 把文件從 Git 倉庫中刪除(亦即從暫存區域移除),但仍然希望保留在當前工作目錄中

mv

git 不會顯示地跟蹤文件的重命名和移動
所以需要使用git mv命令
git mv {originFile} {targetFile}
相當于以下三條命令
mv {originFile} {targetFile}
git rm {originFile}
git add {targetFile}

log

git log 查看提交歷史
-p 查看提交歷史的變化
-2 查看最近兩次提交
--stat 查看簡略信息
--pretty=oneline 一行表示一次提交信息
--pretty=format:"%h - %an, %ar : %s" 指定格式顯示提交信息

tag

  1. git tag:列出已有的標簽
  2. git tag -a {tagName} -m {‘description’}:創建標簽
  3. git tag -s {tagName} -m {‘description’}:使用私鑰創建標簽
  4. git tag -d {tagName}:刪除標簽
  5. git tag {tagName}:創建輕量級標簽(無描述)
  6. git tag -a {tagName} {HEAD} -m {‘description’}:對某一次提交打上標簽
  7. git push --tags:分享標簽

show

git show 命令指定提交ID(hash HEAD)來查看具體的變化

stash

git stash 將當前工作區的更改隱藏起來 保存在一個棧中
git stash pop 將隱藏棧頂部的工作去更改推出
git stash list 顯示當前的隱藏棧
git stash 詳解

git工作流程

  1. 將Git的一個存儲庫克隆為工作副本。
  2. 可以通過添加/編輯文件修改工作副本。
  3. 如有必要,還可以通過讓其他開發人員一起來更改/更新工作副本。
  4. 在提交之前查看更改。
  5. 提交更改:如果一切正常,那么將您的更改推送到存儲庫。
  6. 提交后,如果意識到某些錯誤并修改錯誤后,則將最后一個正確的修改提交并將推送到存儲庫。
image.png

rebase

好用的 git rebase

delete branch

  1. 刪除本地分支:git branch -d 分支名稱
  2. 強制刪除本地分支:git branch -D 分支名稱
  3. 刪除遠程分支:git push origin --delete 分支名稱

shortlog

git shortlog 統計提交(commit)次數
-s 只顯示次數,不顯示commit描述
-n 從多到少排序

強行將遠程代碼回滾

git reset HASH_HEAD
git push -f

.gitignore 存放忽略文件

# no .a files
*.a

# but do track lib.a, even though you're ignoring .a files above
!lib.a

# only ignore the TODO file in the current directory, not subdir/TODO
/TODO

# ignore all files in the build/ directory
build/

# ignore doc/notes.txt, but not doc/server/arch.txt
doc/*.txt

# ignore all .pdf files in the doc/ directory
doc/**/*.pdf
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • Git常用語法 [TOC] Git簡介 描述 ? Git(讀音為/g?t/。)是一個開源的分布式版本控制系統,...
    君惜丶閱讀 3,584評論 0 13
  • 1.git的安裝 1.1 在Windows上安裝Git msysgit是Windows版的Git,從https:/...
    落魂灬閱讀 12,710評論 4 54
  • 簡介 Git是一個開源的分布式版本控制系統,用于敏捷高效地處理任何或小或大的項目。 Git 與常用的版本控制工具 ...
    閩越布衣閱讀 2,771評論 0 18
  • git常用命令 GIT常用命令備忘:http://stormzhang.com/git/2014/01/27/gi...
    新篇章閱讀 8,610評論 1 26
  • 【原文】“在上位,不凌下;在下位,不援上。正己而不求于人,則無怨。”——西漢·戴圣《禮記·中庸》 【大意】君子身處...
    愛在夏末秋初閱讀 946評論 0 1