Git命令集合

不二冰彬發表於2016-05-27

安裝完成git之後要配置一些基本的資訊

git config --global user.name "Your Name"
git config --global user.email "email@example.com"

(其中的”Your Name”和”email@example.com”都要換成你自己個人的資訊)

建立一個空的本地倉庫

git init

將檔案從工作區新增到暫存區

git add filename

(filename是指你所要新增的檔名,若想新增全部修改的檔案,則可以將直接執行”git add .”,或者某一命令下的修改過的檔案則執行”git add /path/.”,path是資料夾名)  

將檔案從暫存區提交到本地倉庫

git commit -m "note"

(note是你提交時的備註,以讓自己及其他人知道提交的大概內容)

回退版本

git reset --hard HEAD^

(這個是回退到上一個版本)

git reset --hard HEAD~n

(n是一個整數,指要往前回退n個版本)

git reset --hard id

(id是某一個版本號的前幾位,直接跳到對應的版本)

檢視歷史記錄

git log

(檢視提交歷史,以便確定要回退到哪個版本)

git reflog

(檢視命令歷史,以便確定要回到未來的哪個版本)

撤銷工作區的修改

git checkout -- filename

(filename是想要撤銷修改的檔名)

從版本庫中刪除檔案

git rm filename

(filename是想要刪除的檔名)

刪除遠端庫檔案保留本地

git rm -r --cached filename

本地庫與遠端庫之間的操作

ssh-keygen -t rsa -C "youremail@example.com"

(在本地建立SSH Key,”youremail@example.com”要換成你自己的郵箱賬號,然後一直回車即可,接著在使用者主目錄下找到.ssh目錄,裡面的id_rsa是私鑰,id_rsa.pub是公鑰,一般還需要在遠端倉庫中新增公鑰)

git clone originname git@server-name:path/repo-name.git

(從遠端庫克隆,originname是遠端庫在本地所起的名字,git@server-name:path/repo-name.git是你遠端庫的連結)

git remote add originname git@server-name:path/repo-name.git

(關聯遠端庫,originname是你給該遠端庫在本地所起的名字,git@server-name:path/repo-name.git是你遠端庫的連結)

git push originname branchname

(推送本地庫的內容到遠端庫,originname是遠端庫的名字,branchname是所要推送的遠端庫分支)

git pull originname branchname

(從遠端倉庫獲取最新程式碼合併到本地庫的當前分支,originname是遠端庫的名字,remotebranchname是所要獲取的遠端庫分支)

git pull originname remotebranchname:localbranchname

(從遠端倉庫獲取最新程式碼合併到本地庫的當前分支,originname是遠端庫的名字,remotebranchname是所要獲取的遠端庫分支,localbranchname是本地新建的分支名)

git remote update
git fetch

<– 以上兩句等價於 –>

git fetch --all && git fetch -t

(更新遠端倉庫中所有的分支且合併到本地)

分支管理

git checkout -b newbranchname

(基於當前分支建立一個新分支,newbranchname是本地新建的分支名)

git checkout -b newbranchname originname/branchname

(基於遠端跟蹤分支建立本地分支,newbranchname是本地新建的分支名,originname是遠端名,branchname是遠端上已有的分支名)

git branch

(檢視本地庫的所有分支)

git branch -r

(檢視遠端庫的所有分支)

git config -l | grep `branch.{branchname}`

(檢視某分支的跟蹤分支,branchname是所要檢視的分支名)

git checkout branchname

(切換分支,branchname是所要切換到的分支名)

git merge branchname

(將branchname分支合併到當前分支,branchname是分支名)

git branch -d branchname

(刪除本地分支,branchname是分支名,若所要刪除分支中的內容未合併且要丟棄,則將“-d”替換為“-D”即可)

git push origin :branchname

(刪除遠端分支,branchname是遠端分支名)

暫存當前分支正在進行的工作,且退回到上一個commit版本,結束緊急工作後重新取回暫存的工作內容

git stash

(暫存修改但未commit的程式碼)

git stash list

(將當前的Git棧資訊列印出來)

git stash apply stash@{v}

(v為對應版本號,將該版本號的工作內容取出來,但是恢復後stash的內容並沒有被刪除掉,需要用git stash apply drop stash@{v}命令進一步刪除)

git stash pop

(將Git棧所有版本的工作內容全部取出來,恢復後stash中的內容也被清空)

git stash clear

(將stash中的內容全部丟棄)