一、配置全局用戶名git config --global user.name "你的名字"
git
二、配置全局emailgit config --global user.email "你的Email"
ssh
在git clone的時候,全部本地分支默認與遠程主機的同名分支,創建追蹤關係,也就是說,本地的master分支自動"追蹤"origin/master分支。fetch
一、從遠程主機克隆一個版本庫,到本地生成的同名目錄git clone <版本庫的網址>
code
二、從遠程主機克隆一個版本庫,到本地指定的目錄git clone <版本庫的網址> <本地目錄名>
開發
三、git clone支持HTTP(s)、SSH、Git、本地文件協議等多種協議rem
$ git clone http[s]://example.com/path/to/repo.git/ $ git clone ssh://example.com/path/to/repo.git/ $ git clone [user@]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/
Git協議下載速度最快get
SSH協議用於須要用戶認證的場合it
各協議優劣比較ast
四、克隆指定主機名的版本庫git clone -o <指定主機名> <版本庫網址>
email
Git要求每一個遠程主機都必須指定一個主機名,git默認的遠程主機名爲origin,git remote命令就用於管理主機名。
一、列出全部遠程主機git remote
二、查看遠程主機地址git remote -v
三、查看指定主機的詳細信息git remote show <主機名>
四、添加遠程主機git remote add <主機名> <網址>
五、刪除遠程主機git remote rm <主機名>
六、修改遠程主機名git remote rename <原主機名> <新主機名>
遠程主機的版本庫有了更新,該命令能夠將這些更新取回本地,fetch取回的代碼不會和本地的代碼合併,所以經常使用來看別人的開發進度。
一、獲取遠程主機的更新到本地(默認取回全部分支)git fetch <遠程主機名>
二、獲取遠程主機指定分支的更新到本地git fetch <遠程主機名> <分支名>
所取回的更新,在本地主機上要用"遠程主機名/分支名"的形式讀取。好比origin主機的master,就要用origin/master讀取。
一、查看全部分支
$ git branch -a * master //本地主機的當前分支是master remotes/origin/master //遠程分支是origin/master
二、查看遠程分支git branch -r
三、手動創建追蹤關係git branch --set-upstream <本地分支名> <遠程分支名(如origin/next)>
一、建立新分支(在取回的遠程分支基礎上 fetch+branch)git checkout -b <新分支名> <遠程分支名(如origin/master)>
一、合併分支(在當前本地分支上,合併遠程分支)git merge <遠程分支名(如origin/master)>
一、合併分支(在當前本地分支上,合併遠程分支)git merge <遠程分支名(如origin/master)>
取回遠程分支的更新,並與本地分支合併。fetch+merge
一、取回遠程分支,和當前本地分支合併git pull <遠程主機名> <遠程分支名>
二、取回遠程分支,和指定本地分支合併git pull <遠程主機名> <遠程分支名>:<本地分支名>
三、省略寫法1:當前本地分支和遠程分支,存在追蹤關係git pull origin
四、省略寫法2:當前本地分支只有一個追蹤分支git pull
五、rebase方式合併git pull --rebase <遠程主機名> <遠程分支名>:<本地分支名>
若是遠程主機刪除了某個分支,默認狀況下,git pull不會在拉取遠程分支的時候,刪除對應的本地分支。這是爲了防止,因爲其餘人操做了遠程主機,致使git pull不知不覺刪除了本地分支。可是參數 -p能夠在本地刪除遠程已經刪除的分支
六、刪除(已刪除的遠程分支)對應的本地分支
git pull -p # 等同於下列寫法 git fetch --prune origin git fetch -p
該命令將本地分支的更新,推送到遠程主機
一、推送本地更新到遠程分支(徹底寫法)git push <遠程主機名> <本地分支名>:<遠程主機名>
二、推送本地更新到遠程分支(具備追蹤關係)
git push origin master //將本地的master分支推送到origin主機的master分支。若是後者不存在,則會被新建。
三、推送本地空分支到遠程分支(刪除遠程分支)
git push <遠程主機名> :<遠程分支> $ git push origin :master # 等同於 $ git push origin --delete master