首頁 > 軟體

Git常用命令整理

2020-06-16 16:59:28

本人認為比較重要的一些 Git常用命令,主要供自己查閱使用。

遠端倉庫

新增遠端倉庫

git remote add origin git@server-name:path/repo-name.git  #新增一個遠端庫

檢視遠端倉庫

git remote      #要檢視遠端庫的資訊
git remote -v   #顯示更詳細的資訊

推播分支

git push origin master    #推播到遠端master分支

抓取分支

git clone git@server-name:path/repo-name.git   #克隆遠端倉庫到本地(能看到master分支)
git checkout -b dev origin/dev   #建立遠端origin的dev分支到本地,並命名為dev
git checkout origin/dev --track  #與上面效果一樣
git pull origin master           #從遠端分支進行更新 
git fetch origin master          #獲取遠端分支上的資料

抓取GitHub上某個pull request到本地

git fetch origin pull/ID/head:BRANCHNAME
git checkout BRANCHNAME

$ git branch --set-upstream branch-name origin/branch-name,可以建立起本地分支和遠端分支的關聯,之後可以直接git pull從遠端抓取分支。

另外,git pull = git fetch + merge to local

刪除遠端分支

$ git push origin --delete bugfix
To https://github.com/dijia478/bos
 - [deleted]         bugfix
# 或者直接push一個空分支
$ git push origin :bugfix
To https://github.com/dijia478/bos
 - [deleted]         bugfix

更新遠端分支資訊

專案往前推進的過程中,遠端倉庫上經常會增加一些分支、刪除一些分支。 所以有時需要與遠端同步下分支資訊。

git fetch -p

歷史管理

檢視歷史

git log --pretty=oneline filename #一行顯示
git log -p -2      #顯示最近2次提交內容的差異
git show cb926e7   #檢視某次修改

版本回退

git reset --hard HEAD^    #回退到上一個版本
git reset --hard cb926e7  #回退到具體某個版
git reflog                #檢視命令歷史,常用於幫助找回丟失掉的commit

用HEAD表示當前版本,上一個版本就是HEAD^,上上一個版本就是HEAD^^HEAD~100就是上100個版本。

管理修改

git status              #檢視工作區、暫存區的狀態
git checkout -- <file>  #丟棄工作區上某個檔案的修改
git reset HEAD <file>   #丟棄暫存區上某個檔案的修改,重新放回工作區

檢視差異

git diff              #檢視未暫存的檔案更新 
git diff --cached     #檢視已暫存檔案的更新 
git diff HEAD -- readme.txt  #檢視工作區和版本庫裡面最新版本的區別
git diff <source_branch> <target_branch>  #在合併改動之前,預覽兩個分支的差異

使用內建的圖形化git:gitk,可以更方便清晰地檢視差異。當然 Github 用戶端也不錯。

刪除檔案

git rm <file>           #直接刪除檔案
git rm --cached <file>  #刪除檔案暫存狀態

儲藏和恢復

git stash           #儲藏當前工作
git stash list      #檢視儲藏的工作現場
git stash apply     #恢復工作現場,stash內容並不刪除
git stash pop       #恢復工作現場,並刪除stash內容

分支管理

建立分支

git branch develop              #只建立分支
git checkout -b master develop  #建立並切換到 develop 分支

合併分支

git checkout master         #切換到主分支
git merge --no-ff develop   #把 develop 合併到 master 分支,no-ff 選項的作用是保留原分支記錄
git branch -d develop       #刪除 develop 分支

標籤

顯示標籤

git tag            #列出現有標籤 
git show <tagname>  #顯示標籤資訊

建立標籤

git tag v0.1    #新建標籤,預設位 HEAD
git tag v0.1 cb926e7  #對指定的 commit id 打標籤
git tag -a v0.1 -m 'version 0.1 released'   #新建帶注釋標籤

操作標籤

git checkout <tagname>        #切換到標籤

git push origin <tagname>     #推播分支到源上
git push origin --tags        #一次性推播全部尚未推播到遠端的本地標籤

git tag -d <tagname>          #刪除標籤
git push origin :refs/tags/<tagname>      #刪除遠端標籤

Git 設定

設定 commit 的使用者和郵箱

git config user.name "xx"               #設定 commit 的使用者
git config user.email "xx@xx.com"       #設定 commit 的郵箱
git commit --amend --author "Jark Wu <imjark@gmail.com>"    #修改上次提交的使用者資訊
git config format.pretty oneline        #顯示歷史記錄時,每個提交的資訊只顯示一行

GitHub 教學系列文章: 

通過GitHub建立個人技術部落格圖文詳解  http://www.linuxidc.com/Linux/2015-02/114121.htm

GitHub 使用教學圖文詳解  http://www.linuxidc.com/Linux/2014-09/106230.htm 

使用 GitHub / GitLab 的 Webhooks 進行網站自動化部署  http://www.linuxidc.com/Linux/2016-06/131993.htm

多個GitHub帳號的SSH key切換 http://www.linuxidc.com/Linux/2016-05/131080.htm

如何在同一台電腦上使用兩個GitHub賬戶 http://www.linuxidc.com/Linux/2016-05/131079.htm

利用GitHub搭建個人Maven倉庫  http://www.linuxidc.com/Linux/2016-04/130197.htm

一分鐘認識GitHub http://www.linuxidc.com/Linux/2015-11/125089.htm

分享實用的GitHub 使用教學 http://www.linuxidc.com/Linux/2014-04/100556.htm 

GitHub使用操作指南  http://www.linuxidc.com/Linux/2016-10/135782.htm

GitHub使用方法入門基礎  http://www.linuxidc.com/Linux/2017-05/144084.htm


IT145.com E-mail:sddin#qq.com