Git 備忘單

2021-08-30 16:39 更新

此備忘單總結(jié)了常用的 Git 命令行說(shuō)明以供快速參考。

開(kāi)始

創(chuàng)建存儲(chǔ)庫(kù)

創(chuàng)建一個(gè)新的本地存儲(chǔ)庫(kù)

$ git init [project name]

克隆一個(gè)倉(cāng)庫(kù)

$ git clone git_url

將存儲(chǔ)庫(kù)克隆到指定目錄

$ git clone git_url my_directory

做出改變

在工作目錄中顯示修改后的文件,為您的下一次提交暫存

$ git status

暫存文件,準(zhǔn)備提交

$ git add [file]

暫存所有更改的文件,準(zhǔn)備提交

$ git add .

將所有暫存文件提交到版本化歷史記錄

$ git commit -m "commit message"

將所有跟蹤的文件提交到版本化歷史記錄

$ git commit -am "commit message"

Unstages 文件,保留文件更改

$ git reset [file]

將所有內(nèi)容恢復(fù)到最后一次提交

$ git reset --hard

已更改但未上演的差異

$ git diff

已上演但尚未提交的內(nèi)容的差異

$ git diff --staged

在指定分支之前應(yīng)用當(dāng)前分支的任何提交

$ git rebase [branch]

配置

設(shè)置將附加到您的提交和標(biāo)簽的名稱

$ git config --global user.name "name"

設(shè)置將附加到您的提交和標(biāo)簽的電子郵件地址

$ git config --global user.email "email"

啟用 Git 輸出的一些著色

$ git config --global color.ui auto

在文本編輯器中編輯全局配置文件

$ git config --global --edit

使用分支

列出所有本地分支機(jī)構(gòu)

$ git branch

列出所有分支,本地和遠(yuǎn)程

$ git branch -av

切換到一個(gè)分支,my_branch,并更新工作目錄

$ git checkout my_branch

創(chuàng)建一個(gè)名為 new_branch 的新分支

$ git branch new_branch

刪除名為 my_branch 的分支

$ git branch -d my_branch

將分支 A 合并到分支 B

$ git checkout branchB
$ git merge branchA

標(biāo)記當(dāng)前提交

$ git tag my_tag

觀察您的存儲(chǔ)庫(kù)

顯示當(dāng)前活動(dòng)分支的提交歷史

$ git log

顯示 branchA 上不在 branchB 上的提交

$ git log branchB..branchA

顯示更改文件的提交,即使跨重命名

$ git log --follow [file]

顯示 branchA 中不在 branchB 中的內(nèi)容的差異

$ git diff branchB...branchA

以人類可讀的格式顯示 Git 中的任何對(duì)象

$ git show [SHA]

同步

從那個(gè) Git 遠(yuǎn)程獲取所有分支

$ git fetch [alias]

將遠(yuǎn)程分支合并到您當(dāng)前的分支中以使其保持最新?tīng)顟B(tài)

$ git merge [alias]/[branch]

將本地分支提交傳輸?shù)竭h(yuǎn)程存儲(chǔ)庫(kù)分支

$ git push [alias] [branch]

從跟蹤遠(yuǎn)程分支獲取并合并任何提交

$ git pull

將另一個(gè)分支的一個(gè)特定提交合并到當(dāng)前分支

$ git cherry-pick [commit_id]

遠(yuǎn)程

添加一個(gè) git URL 作為別名

$ git remote add [alias] [url]

顯示您設(shè)置的遠(yuǎn)程存儲(chǔ)庫(kù)的名稱

$ git remote

顯示遠(yuǎn)程存儲(chǔ)庫(kù)的名稱和 URL

$ git remote -v

刪除遠(yuǎn)程存儲(chǔ)庫(kù)

$ git remote rm [remote repo name]

更改 git repo 的 URL

$ git remote set-url origin [git_url]

臨時(shí)提交

保存修改和分階段的更改

$ git stash

列出隱藏文件更改的堆棧順序

$ git stash list

從存儲(chǔ)堆棧頂部寫(xiě)入工作

$ git stash pop

丟棄存儲(chǔ)堆棧頂部的更改

$ git stash drop

跟蹤路徑變化

從項(xiàng)目中刪除文件并暫存刪除以進(jìn)行提交

$ git rm [file]

更改現(xiàn)有文件路徑并暫存移動(dòng)

$ git mv [existing-path] [new-path]

顯示所有提交日志,并指出任何移動(dòng)的路徑

$ git log --stat -M

忽略文件

/logs/*

!logs/.gitkeep

/# Ignore Mac system files
.DS_store

# Ignore node_modules folder
node_modules

# Ignore SASS config files
.sass-cache

一個(gè).gitignore文件指定了 Git 應(yīng)該忽略的有意未跟蹤的文件

Git 技巧

重命名分支

  • 重命名new_name

    $ git branch -m <new_name>
    
  • 推送和重置

    $ git push origin -u <new_name>
    
  • 刪除遠(yuǎn)程分支

    $ git push origin --delete <old>
    

日志

按內(nèi)容搜索更改

$ git log -S'<a term in the source>'

顯示特定文件隨時(shí)間的變化

$ git log -p <file_name>

打印出一個(gè)很酷的日志可視化

$ git log --pretty=oneline --graph --decorate --all

分支

列出所有分支及其上游

$ git branch -vv 

快速切換到上一個(gè)分支

$ git checkout -

只獲取遠(yuǎn)程分支

$ git branch -r

從另一個(gè)分支檢出單個(gè)文件

$ git checkout <branch> -- <file>

提交

重寫(xiě)上次提交消息

$ git commit -v --amend

Git 別名

git config --global alias.co checkout
git config --global alias.br branch
git config --global alias.ci commit
git config --global alias.st status

另請(qǐng)參閱:更多別名


以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)