最全的前端Git使用教程

常見信息

master: 默認開發分支
origin:默認遠程版本庫
Head: 默認開發分支
Head^:Head 的父提交

建立新倉庫

git init
git init [project-name]   # 新建一個目錄,並將其初始化爲git倉庫
git clone [url]           # 拷貝一個git倉庫到本地

配置

Git 的配置文件是 .gitconfig,能夠放在用戶的主目錄(全局配置)下或項目目錄下(項目配置) 。

# 顯示當前的 git 配置
git config --list  

# 編輯 Git 配置
git config -e [--global] 

# 設置用來提交代碼的用戶信息
git config [--global] user.name "[name]" 
git config [--global] user.email "[email address]"

添加刪除文件

# 將指定文件添加到暫存區
git add [file1] [file2] ... 

# 將指定目錄添加到暫存區,包括子目錄
git add [dir]               

# 將當前目錄中的全部文件添加到暫存區
git add .                   

# 對同一個文件屢次更改,建議分開提交
git add -p                  

# 將指定文件從工做區刪除,並將本次刪除添加到暫存區
git rm [file1] [file2] ...  

# 中止追蹤指定的文件,不會刪除文件
git rm --cached [file]      

# 對指定文件進行重命名,並添加到暫存區中
git mv [file-original] [file-renamed]

代碼提交

# 將暫存區中的文件提交到代碼倉庫
git commit -m [message]  

# 將指定的文件從暫存區中提交到倉庫
git commit [file1] [file2] ... -m [message] 

# 將工做區的更改直接提交到倉庫
git commit -a 

# 提交前展現全部的變更
git commit -v 

# 使用新提交代替上次提交,若是代碼沒有任何變更,將會用於重寫上次提交的提交信息
git commit --amend -m [message] 

# 重作上次的提交,並將指定的文件包含其中
git commit --amend [file1] [file2] ...

分支相關

# 列出本地分支
git branch  

# 列出全部遠程分支
git branch -r 

# 列出本地和遠程的全部分支
git branch -a 

# 新建分支,並留在當前分支
git branch [branch-name] 

# 新建分支,並切換到新建分支
git checkout -b [branch-name] 

# 指向某次提交新建分支
git branch [branch] [commit] 

# 建立一個新分支,並與指定的遠程分支創建跟蹤關係
git branch --track [branch] [remote-branch] 

# 切換到指定分支,並更新工做區
git checkout [branch-name] 

# 切換到上一個分支
git checkout - 

# 將本地分支與指定的遠程分支創建跟蹤關心
git branch --set-upstream [branch] [remote-branch]

# 合併指定分支與當前分支
git merge [branch] 

# 將指定的提交合併到本地分支
git cheery-pick [commit] 

# 刪除本地指定分支
git branch -d [branch-name] 

# 刪除遠程分支
git push origin --delete [branch-name]
git push -dr [remote/branch]

標籤操做

# 列出全部標籤
git tag

# 在當前 tag 上建立一個新標籤
git tag [tag]

# 在指定 tag 上建立一個新標籤
git tag [tag] [commit]

# 刪除本地標籤
git tag -d [tag]

# 刪除遠程標籤
git push origin :refs/tags/[tagName]

# 查看標籤信息
git show [tag]

# 提交指定標籤
git push [remote] --tags

# 建立一個新分支,指向特定的標籤
git checkout -b [branch] [tag]

查看信息

# 顯示有變更的文件
git status

# 顯示當前分支的提交歷史
git log

# 顯示提交歷史和每次提交的文件
git log --stat

# 指定關鍵字搜索提交歷史
git log -S [keyword]

# 顯示自某次提交以來的全部更改,一次提交顯示一行
git log [tag] HEAD --pretty=format:$s

# 顯示自某次提交以來的全部更改,其提交描述必須符合搜索條件
git log [tag] HEAD --grep feature

# 顯示指定文件的提交歷史
git log --flollow [file]
git whatchanged [file]

# 顯示與指定文件相關的每一個差別
git log -p [file]

# 顯示最近 5 次提交
git log -5 --pretty --oneline

# 顯示全部的提交用戶,已提交數目多少排名
git shortlog -sn

# 顯示指定文件什麼時候被何人修改過
git blame [file]

# 顯示暫存區和工做區文件差異
git diff

# 顯示暫存區和上一次提交的差異
git diff --cached [file]

# 顯示工做區和當前分支的最近一次提交的差異
git diff HEAD

# 顯示指定兩次提交的差異
git diff [first-branch]...[second-branch]

# 顯示今天提交了多少代碼
git diff --shortstat "@{0 day ago}"

# 顯示特定提交的提交信息和更改的內容
git show [commit]

# 某次提交改動了哪些文件
git show --name-only [commit]

# 顯示某個提交的特定文件的內容
git show [commit]:[filename]

# 顯示當前分支的最新提交
git reflog

遠程同步

# 從遠程分支下載全部變更
git fetch [remote]

# 顯示全部遠程倉庫
git remote -v

# 顯示某個遠程參考信息
git remote show [remote]

# 新建一個遠程倉庫,並命名
git remote add [shortname] [url]

# 檢索遠程村粗庫的更改,並與本地分支合併
git pull [remote] [branch]

# 將本地分支提交到遠程倉庫
git push [remote] [branch]

# 將當前分支強制提交到遠程倉庫,即便有衝突存在
git push [remote] --force

# 將全部分支提交到遠程倉庫
git push [remote] --all

#### 撤銷操做

# 將暫存區中的指定文件還原到工做區,保留文件變更
git checkout [file]

# 將指定文件從某個提交還原到暫存區和工做區
git checkout [commit] [file]

# 將暫存區中的全部文件還原到工做區
git checkout .

# 重置暫存區中的指定文件,與先前的提交保持一致,但保持工做空間的變更不變
git reset [file]

# 重置暫存區和工做區中的指定文件,並與最近一次提交保持一致,工做空間文件變更不會保留
git reset --hard

# 重置暫存區,指向指定的某次提交,工做區的內容不會被覆蓋
git reset [commit]

# 重置暫存區和工做區中的指定文件,並與指定的某次提交保持一致,工做區的內容會被覆蓋
git reset --hard [commit]

# 將 HEAD 重置爲指定的某次提交,保持暫存區和工做區的內容不變
git reset --keep [commit]

# 新建新提交以撤銷指定的提交
git revert [commit]

# 暫存爲提交的變更,並在稍後移動它們
git stash
git stash pop
git stash apply

其餘

# 生成用於發佈的存檔
git archive

歡迎關注 公衆號【前端開發小白】

歡迎關注 公衆號【小夭同窗】
相關文章
相關標籤/搜索