常用git命令

2021-09-20 21:32:27 字數 4697 閱讀 8393

git remote -v

git status

git log (q退出)

git log --graph --abbrev-commit --decorate --date=relative --all
git log --graph --oneline --decorate --all
$ git log --oneline

git log  --graph --all

git log --author=xx

git log --oneline --before= --after= --no-merges

如果你要指定日期,可以執行幾個選項:--since 和 --before,但是你也可以用 --until 和 --after。

git branch

git branch branchname

git checkout branchname

git checkout -b myfeature

git checkout -b myfeature develop

git merge --no-ff myfeature
git branch -d myfeature
git push origin develop
git commit -a -m "bumped version number to 1.2"

推送本地分支local_branch到遠端分支 remote_branch並建立關聯關係

a.遠端已有remote_branch分支並且已經關聯本地分支local_branch且本地已經切換到local_branch

git push

b.遠端已有remote_branch分支但未關聯本地分支local_branch且本地已經切換到local_branch

git push -u origin remote_branch

c.遠端沒有remote_branch分支並,本地已經切換到local_branch

git push origin local_branch:remote_branch

一、列出標籤

$ git tag # 在控制台列印出當前倉庫的所有標籤

二、搜尋標籤

$ git tag -l 『v0.1.*』 # 搜尋符合模式的標籤

三、推送標籤到遠端倉庫

git push並不會把tag標籤傳送到遠端伺服器上,只有通過顯式命令才能分享標籤到遠端倉庫。

1.push單個tag,命令格式為:git push origin [tagname]

例如:git push origin v1.0 #將本地v1.0的tag推送到遠端伺服器

2.push所有tag,命令格式為:git push [origin] --tags

例如:git push --tags

或git push origin --tags

git pull 《遠端主機名》 《遠端分支名》:《本地分支名》

git pull origin master:brantest

將遠端主機origin的master分支拉取過來,與本地的brantest分支合併。

後面的冒號可以省略:

git pull origin master

上面的pull操作用fetch表示為:

git fetch origin master:brantest

git merge brantest

$ git log -p -2

//常用 -p 選項展開顯示每次提交的內容差異,用 -2 則僅顯示最近的兩次更新

$ git log --pretty=format:"%h - %an, %ar : %s"

$ git log --pretty=format:"%h %s" --graph

$ git log --since=2.weeks

$ git log --pretty="%h - %s" --author=gitster --since="2008-10-01" \

--before="2008-11-01" --no-merges

表列出了常用的格式佔位符寫法及其代表的意義。

選項說明

%h提交物件(commit)的完整雜湊字串

%h提交物件的簡短雜湊字串

%t樹物件(tree)的完整雜湊字串

%t樹物件的簡短雜湊字串

%p父物件(parent)的完整雜湊字串

%p父物件的簡短雜湊字串

%an作者(author)的名字

%ae作者的電子郵件位址

%ad作者修訂日期(可以用 -date= 選項定製格式)

%ar作者修訂日期,按多久以前的方式顯示

%cn提交者(committer)的名字

%ce提交者的電子郵件位址

%cd提交日期

%cr提交日期,按多久以前的方式顯示

%s提交說明

你一定奇怪作者(author)和提交者(committer)之間究竟有何差別,其實作者指的是實際作出修改的人,提交者指的是最後將此工作成果提交到倉庫的人。所以,當你為某個專案發布補丁,然後某個核心成員將你的補丁併入專案時,你就是作者,而那個核心成員就是提交者。

以上只是簡單介紹了一些git log命令支援的選項。表 2-2 還列出了一些其他常用的選項及其釋義。

選項說明

-p按補丁格式顯示每個更新之間的差異。

--word-diff按 word diff 格式顯示差異。

--stat顯示每次更新的檔案修改統計資訊。

--shortstat只顯示 --stat 中最後的行數修改新增移除統計。

--name-only僅在提交資訊後顯示已修改的檔案清單。

--name-status顯示新增、修改、刪除的檔案清單。

--abbrev-commit僅顯示 sha-1 的前幾個字元,而非所有的 40 個字元。

--relative-date使用較短的相對時間顯示(比如,「2 weeks ago」)。

--graph顯示 ascii 圖形表示的分支合併歷史。

--pretty使用其他格式顯示歷史提交資訊。可用的選項包括 oneline,short,full,fuller 和 format(後跟指定格式)。

--oneline--pretty=oneline --abbrev-commit的簡化用法。

除了定製輸出格式的選項之外,git log還有許多非常實用的限制輸出長度的選項,也就是只輸出部分提交資訊。之前我們已經看到過-2了,它只顯示最近的兩條提交,實際上,這是-選項的寫法,其中的n可以是任何自然數,表示僅顯示最近的若干條提交。不過實踐中我們是不太用這個選項的,git 在輸出所有提交時會自動呼叫分頁程式(less),要看更早的更新只需翻到下頁即可。

另外還有按照時間作限制的選項,比如--since--until。下面的命令列出所有最近兩周內的提交

你可以給出各種時間格式,比如說具體的某一天(「2008-01-15」),或者是多久以前(「2 years 1 day 3 minutes ago」)。

還可以給出若干搜尋條件,列出符合的提交。用--author選項顯示指定作者的提交,用--grep選項搜尋提交說明中的關鍵字。(請注意,如果要得到同時滿足這兩個選項搜尋條件的提交,就必須用--all-match選項。否則,滿足任意乙個條件的提交都會被匹配出來)

另乙個真正實用的git log選項是路徑(path),如果只關心某些檔案或者目錄的歷史提交,可以在git log選項的最後指定它們的路徑。因為是放在最後位置上的選項,所以用兩個短劃線(--)隔開之前的選項和後面限定的路徑名。

表 2-3 還列出了其他常用的類似選項。

選項說明

-(n)僅顯示最近的 n 條提交

--since, --after僅顯示指定時間之後的提交。

--until, --before僅顯示指定時間之前的提交。

--author僅顯示指定作者相關的提交。

--committer僅顯示指定提交者相關的提交。

來看乙個實際的例子,如果要檢視 git 倉庫中,2008 年 10 月期間,junio hamano 提交的但未合併的測試指令碼(位於專案的 t/ 目錄下的檔案)

常用Git命令

下面是我在開發中常用的git命令 1.配置git git config global add user.email git config global add user.name 2.建立新的專案 git init git add git commit a m git remote add orig...

常用Git命令

附上一些git的常見命令 gitremote add origin git github.com myaccount myproject.git git push u origin master gitinit 建立repository git 命令 help 檢視幫助命令 touchfilenam...

常用Git命令

建立管理倉庫 git initadd和commit git add readme.txt git commit m wrote a readme file 簡略版log git log pretty oneline abbrev commit當前狀態 git status撤銷更改 git check...