Git命令總結

Git命令總結

先上個圖形化界面GIT工具php

SourceTree下載連接
windows版 1.8.3 & Mac版 2.2.4
連接: http://pan.baidu.com/s/1bpnxx5l password: 36jj

Git 常用命令jquery

git clone
git remote
git fetch
git pull
git push

1. git clone

遠程操做的第一步,通常是從遠程主機克隆一個版本號庫,這時就要用到git clone命令。git

$ git clone <版本號庫的網址>github

比方。克隆jQuery的版本號庫。
$ git clone https://github.com/jquery/jquery.gitwindows

該命令會在本地主機生成一個文件夾,與遠程主機的版本號庫同名。假設要指定不一樣的文件夾名,可以將文件夾名做爲git clone命令的第二個參數。ruby

$ git clone <版本號庫的網址> <本地文件夾名>
git clone支持多種協議。除了HTTP(s)之外,還支持SSH、Git、本地文件協議等。如下是一些樣例。markdown

$ git clone http[s]://example.com/path/to/repo.git/
$ git clone ssh://example.com/path/to/repo.git/
$ git clone git://example.com/path/to/repo.git/
$ git clone /opt/git/project.git 
$ git clone file:///opt/git/project.git
$ git clone ftp[s]://example.com/path/to/repo.git/
$ git clone rsync://example.com/path/to/repo.git/

SSH協議還有另外一種寫法。ssh

$ git clone [user@]example.com:path/to/repo.git/
一般來講。Git協議下載速度最快,SSH協議用於需要用戶認證的場合。工具

2. git remote

爲了便於管理。Git要求每個遠程主機都必須指定一個主機名。post

git remote命令就用於管理主機名。
不帶選項的時候,git remote命令列出所有遠程主機。

$ git remote
origin

使用-v選項。可以參看遠程主機的網址。

$ git remote -v
origin  git@github.com:jquery/jquery.git (fetch)
origin  git@github.com:jquery/jquery.git (push)

上面命令表示。當前僅僅有一臺遠程主機。叫作origin。以及它的網址。
克隆版本號庫的時候,所使用的遠程主機本身主動被Git命名爲origin。假設想用其它的主機名,需要用git clone命令的-o選項指定。

$ git clone -o jQuery https://github.com/jquery/jquery.git
$ git remote
jQuery

上面命令表示。克隆的時候,指定遠程主機叫作jQuery。


git remote show命令加上主機名。可以查看該主機的具體信息。

$ git remote show <主機名> git remote add命令用於加入遠程主機。

$ git remote add <主機名> <網址> git remote rm命令用於刪除遠程主機。 $ git remote rm <主機名> git remote rename命令用於遠程主機的更名。

$ git remote rename <原主機名> <新主機名>

3. git fetch

一旦遠程主機的版本號庫有了更新(Git術語叫作commit),需要將這些更新取回本地,這時就要用到git fetch命令。

$ git fetch <遠程主機名>
上面命令將某個遠程主機的更新。所有取回本地。


默認狀況下,git fetch取回所有分支(branch)的更新。假設僅僅想取回特定分支的更新。可以指定分支名。

$ git fetch <遠程主機名> <分支名>
比方,取回origin主機的master分支。
$ git fetch origin master

所取回的更新,在本地主機上要用」遠程主機名/分支名」的形式讀取。比方origin主機的master,就要用origin/master讀取。


git branch命令的-r選項,可以用來查看遠程分支,-a選項查看所有分支。

$ git branch -r
origin/master

$ git branch -a
* master
remotes/origin/master

上面命令表示,本地主機的當前分支是master,遠程分支是origin/master。


取回遠程主機的更新之後,可以在它的基礎上。使用git checkout命令建立一個新的分支。

$ git checkout -b newBrach origin/master
上面命令表示,在origin/master的基礎上。建立一個新分支。
此外。也可以使用git merge命令或者git rebase命令,在本地分支上合併遠程分支。

$ git merge origin/master
或者
$ git rebase origin/master
上面命令表示在當前分支上。合併origin/master。

4. git pull

git pull命令的做用是,取回遠程主機某個分支的更新,再與本地的指定分支合併。它的完整格式稍稍有點複雜。

$ git pull <遠程主機名> <遠程分支名>:<本地分支名>
比方,取回origin主機的next分支,與本地的master分支合併。需要寫成如下這樣。

$ git pull origin next:master
假設遠程分支是與當前分支合併,則冒號後面的部分可以省略。

$ git pull origin next
上面命令表示。取回origin/next分支,再與當前分支合併。實質上。這等同於先作git fetch,再作git merge。

$ git fetch origin
$ git merge origin/next

在某些場合,Git會本身主動在本地分支與遠程分支之間,創建一種追蹤關係(tracking)。比方,在git clone的時候。所有本地分支默認與遠程主機的同名分支,創建追蹤關係,也就是說,本地的master分支本身主動」追蹤」origin/master分支。
Git也贊成手動創建追蹤關係。

git branch --set-upstream master origin/next
上面命令指定master分支追蹤origin/next分支。


假設當前分支與遠程分支存在追蹤關係,git pull就可以省略遠程分支名。

$ git pull origin
上面命令表示。本地的當前分支本身主動與相應的origin主機」追蹤分支」(remote-tracking branch)進行合併。
假設當前分支僅僅有一個追蹤分支。連遠程主機名都可以省略。

$ git pull
上面命令表示。當前分支本身主動與惟一一個追蹤分支進行合併。

假設合併需要採用rebase模式,可以使用–rebase選項。

$ git pull --rebase <遠程主機名> <遠程分支名>:<本地分支名>
假設遠程主機刪除了某個分支。默認狀況下。git pull 不會在拉取遠程分支的時候。刪除相應的本地分支。

這是爲了防止。因爲其它人操做了遠程主機,致使git pull不知不覺刪除了本地分支。


但是,你可以改變這個行爲。加上參數 -p 就會在本地刪除遠程已經刪除的分支。

$ git pull -p
等同於如下的命令

$ git fetch --prune origin 
$ git fetch -p

5. git push

git push命令用於將本地分支的更新。推送到遠程主機。

它的格式與git pull命令相仿。

$ git push <遠程主機名> <本地分支名>:<遠程分支名>
注意。分支推送順序的寫法是<來源地>:<目的地>。因此git pull是<遠程分支>:<本地分支>,而git push是<本地分支>:<遠程分支>
假設省略遠程分支名,則表示將本地分支推送與之存在」追蹤關係」的遠程分支(一般二者同名),假設該遠程分支不存在。則會被新建。

$ git push origin master
上面命令表示,將本地的master分支推送到origin主機的master分支。假設後者不存在。則會被新建。


假設省略本地分支名,則表示刪除指定的遠程分支。因爲這等同於推送一個空的本地分支到遠程分支。

$ git push origin :master
等同於
$ git push origin --delete master
上面命令表示刪除origin主機的master分支。


假設當前分支與遠程分支之間存在追蹤關係,則本地分支和遠程分支都可以省略。

$ git push origin
上面命令表示,將當前分支推送到origin主機的相應分支。
假設當前分支僅僅有一個追蹤分支。那麼主機名都可以省略。

$ git push
假設當前分支與多個主機存在追蹤關係,則可以使用-u選項指定一個默認主機。這樣後面就可以不加不論什麼參數使用git push。

$ git push -u origin master
上面命令將本地的master分支推送到origin主機,同一時候指定origin爲默認主機,後面就可以不加不論什麼參數使用git push了。


不帶不論什麼參數的git push,默認僅僅推送當前分支,這叫作simple方式。此外,另外一種matching方式,會推送所有有相應的遠程分支的本地分支。Git 2.0版本號以前,默認採用matching方法。現在改成默認採用simple方式。假設要改動這個設置。可以採用git config命令。

$ git config --global push.default matching
或者
$ git config --global push.default simple
另外一種狀況,就是不管是否存在相應的遠程分支,將本地的所有分支都推送到遠程主機。這時需要使用–all選項。

$ git push --all origin
上面命令表示,將所有本地分支都推送到origin主機。


假設遠程主機的版本號比本地版本號更新,推送時Git會報錯。要求先在本地作git pull合併差別,而後再推送到遠程主機。這時。假設你必定要推送,可以使用–force選項。

$ git push --force origin
上面命令使用–force選項,結果致使遠程主機上更新的版本號被覆蓋。除非你很是肯定要這樣作,不然應該儘可能避免使用–force選項。


最後,git push不會推送標籤(tag),除非使用–tags選項。

$ git push origin --tags

Git 常用命令總結

git branch 查看本地所有分支 git status 查看當前狀態 git commit 提交 git branch -a 查看所有的分支 git branch -r 查看本地所有分支 git commit -am "init" 提交併且加凝視 git remote add origin git@192.168.1.119:ndshow git push origin master 將文件給推到server上 git remote show origin 顯示遠程庫origin裏的資源 git push origin master:develop git push origin master:hb-dev 將本地庫與server上的庫進行關聯 git checkout --track origin/dev 切換到遠程dev分支 git branch -D master develop 刪除本地庫develop git checkout -b dev 創建一個新的本地分支dev git merge origin/dev 將分支dev與當前分支進行合併 git checkout dev 切換到本地dev分支 git remote show 查看遠程庫 git add . git rm 文件名稱(包含路徑) 從git中刪除指定文件 git clone git://github.com/schacon/grit.git 從server上將代碼給拉下來 git config --list 看所有用戶 git ls-files 看已經被提交的 git rm [file name] 刪除一個文件 git commit -a 提交當前repos的所有的改變 git add [file name] 加入一個文件到git index git commit -v 當你用-v參數的時候可以看commit的差別 git commit -m "This is the message describing the commit" 加入commit信息 git commit -a -a是表明add,把所有的change加到git index裏而後再commit git commit -a -v 通常提交命令 git log 看你commit的日誌 git diff 查看還沒有暫存的更新 git rm a.a 移除文件(從暫存區和工做區中刪除) git rm --cached a.a 移除文件(僅僅從暫存區中刪除) git commit -m "remove" 移除文件(從Git中刪除) git rm -f a.a 強行移除改動後文件(從暫存區和工做區中刪除) git diff --cached 或 $ git diff --staged 查看還沒有提交的更新 git stash push 將文件給push到一個暫時空間中 git stash pop 將文件從暫時空間pop下來 git remote add origin git@github.com:username/Hello-World.git git push origin master 將本地項目給提交到server中 git pull 本地與server端同步 git push (遠程倉庫名) (分支名) 將本地分支推送到server上去。

git push origin serverfix:awesomebranch git fetch 至關因而從遠程獲取最新版本號到本地,不會本身主動merge git commit -a -m "log_message" (-a是提交所有改動,-m是加入log信息) 本地改動同步至server端 : git branch branch_0.1 master 從主分支master建立branch_0.1分支 git branch -m branch_0.1 branch_1.0 將branch_0.1重命名爲branch_1.0 git checkout branch_1.0/master 切換到branch_1.0/master分支
相關文章
相關標籤/搜索