git clone、 remote、fetch、pull、push、remote

  • git clone命令筆記

做用:遠程克隆版本庫
1. 克隆版本庫
git clone <版本庫的網址>
git clone zoran@192.168.2.167:/data/gitdata/gittest.git
若是想用其它主機名:
git clone -o zhangsan <版本庫的網址>
git clone -o zoran zoran@192.168.2.167:/data/gitdata/gittest.git
2.克隆版本庫到指定路徑
git clone <版本庫的網址> <本地目錄名>
git clone zoran@192.168.2.167:/data/gitdata/gittest.git zoran
2.克隆支持的協議類型
支持:HTTP(s)、SSH、Git、本地文件協議等,如:
git clone http[s]://example.com/path/to/repo.git/ 
git clone ssh://example.com/path/to/repo.git/ or
 git clone zoran@192.168.2.167:/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 fetch命令筆記

主機的版本庫有了更新(Git術語叫作commit),須要將這些更新取回本地,這時就要用到git fetch命令,只跟新不合並。
1. 所有更新回本地
git fetch <遠程主機名>
git fetch origin
git fetch .
2. 更新指定分支
git fetch <遠程主機名> <分支名>
git fetch origin dev
git fetch origin master
tips:取回的更新,在本地主機上要用"遠程主機名/分支名"的形式讀取。好比origin主機的master,就要用origin/master讀取。
3. 查看遠程分支
git branch -r
4. 查看遠程全部分支
git branch -a
5.更新並建立新分支
git checkout -b newBrach origin/master
tips:在origin/master的基礎上,建立一個新分支
6. 本地分支上合併遠程分支
git merge origin/master # 或者  git rebase origin/master
tips:表示在當前分支上,合併origin/master。
  • git pull命令筆記

git pull命令的做用是,取回遠程主機某個分支的更新,再與本地的指定分支合併
1.取回分支更新,與本地指定分支合併
git pull <遠程主機名> <遠程分支名>:<本地分支名>
git pull origin next:master //origin主機的next分支,與本地的master分支合併
若是遠程分支是與當前分支合併,則冒號後面的部分能夠省略,如:
git pull origin dev
實際取回origin/dev分支,再與當前分支合併。實質上,這等同於先作git fetch,再作git merge。
git fetch origin git merge origin/dev
2.手動指定(追蹤)本地分支與遠程分支的關聯
git branch --set-upstream-to=origin/next //當前分支關聯遠程origin/next分支
若是當前分支與遠程分支存在關聯關係,git pull能夠省略遠程分支名,如:
git pull origin
若是當前分支只有一個追蹤分支,連遠程主機名均可以省略,如:
git pull
若是遠程主機刪除了某個分支,默認狀況下,git pull 不會在拉取遠程分支的時候,刪除對應的本地分支。這是爲了防止,因爲其餘人操做了遠程主機,致使git pull不知不覺刪除了本地分支。可是,你能夠改變這個行爲,加上參數 -p 就會在本地刪除遠程已經刪除的分支。
git pull -p
# 等同於下面的命令
git fetch --prune origin
git fetch -p
3. rebase模式合併
git pull --rebase <遠程主機名> <遠程分支名>:<本地分支名>
git pull --rebase origin dev:dev
  • git push命令筆記

git push命令用於將本地分支的更新,推送到遠程主機。
1. 本地分支的更新推到遠程主機
git push <遠程主機名> <本地分支名>:<遠程分支名>
git push origin dev:dev
若是省略遠程分支名,則表示將本地分支推送與之存在"連接(追蹤)關係"的遠程分支(一般二者同名),若是該遠程分支不存在,則會被新建。
git push origin dev//本地dev分支推送到origin主機的dev分支;若是後者不存在,則會被新建.
若是省略本地分支名,則表示刪除指定的遠程分支,由於這等同於推送一個空的本地分支到遠程分支。
git push origin :dev
# 等同於
git push origin --delete master //刪除origin主機的master分支
2.本地分支對應多個遠程主機,可推送到指定主機,並設置默認主機,使用git push就能夠不加任何參數了
git push -u <遠程主機名> <本地分支名稱>
git push -u origin master //本地的master分支推送到origin主機,同時指定origin爲默認主機
3.無論是否存在遠程分支,均可以將本地分支推到遠程
git push --all origin //本地分支都推送到origin主機
4.遠程主機比推送版本新,如需強制推送
若是遠程主機的版本比本地版本更新,推送時Git會報錯,要求先在本地作git pull合併差別,而後再推送到遠程主機。這時,若是你必定要推送,可使用--force選項。- 使用場景,肯定代碼是你提交,存在錯誤,不須要處理差別,直接覆蓋,能夠這麼作,慎用。
git push --force origin
5.git push不推送標籤(tag),如需推送標籤
git push origin --tags //使用--tags選項
  • git remote命令筆記

git remote
Git要求每一個遠程主機都必須指定一個主機名。git remote命令就用於管理主機名。
1.列出全部遠程主機
git remote
2. 查看遠程主機的網址
git remote -v
3. 克隆版本庫自定義名稱
tips:克隆版本庫的時候,所使用的遠程主機自動被Git命名爲origin。若是想用其餘的主機名,須要用git clone命令的-o選項指定。
git clone -o jQuery  https://github.com/jquery/jquery.git
git remote 輸出 jQuery
4. 查看主機詳細信息
git remote show <主機名>
git remote show origin
5. 遠程主機更名
git remote rename <原主機名> <新主機名>
git remote rename origin zoran
6.添加遠程主機
git remote add <主機名> <網址>
git remote add zoran zoran@192.168.2.167:/data/gitdata/gittest.git
7. 刪除遠程主機
git remote rm <主機名>
git remote rm origin
相關文章
相關標籤/搜索