Remote 遠端協同工作 - remote, fetch, pull, push
顯示你的遠端
git remote
命令可以檢視你已經設定好的遠端版本庫, 它會列出每個遠端版本庫的「簡稱」。
可以指定 -v
選項來顯示 Git 用來讀寫遠端簡稱時所用的網址。
$ git remote
origin
$ git remote -v
origin https://github.com/schacon/ticgit (fetch)
origin https://github.com/schacon/ticgit (push)
新增遠端版本庫
使用 git remote add <簡稱> <url>
來新增遠端版本庫。
實作上常用於將本地倉庫推送到雲端倉庫時,先新增遠端版本庫後,再進行 push 指令。
$ git remote add origin https://github.com/example/test-repo.git
$ git push -u origin master
刪除遠端版本庫
使用 git remote rm <簡稱>
來刪除。刪除前建議先確認目標的位置,避免誤刪
$ git remote rm test-origin
遠端獲取或拉取
git fetch
這個命令會連到遠端專案,然後從遠端專案中將你還沒有的資料全部拉下來;
注意!git fetch
只會下載資料到你的版本庫——它並不會自動合併你的任何工作內容,也不會自動修改你正在修改的東西,
如果目前分支被設定為「追蹤」遠端上的分支,便可使用 git pull
命令來自動「獲取」並「合併」那個遠端分支到你目前的分支裡去。
$ git fetch [remote-name]
實際上 git pull
就是同時執行了 fetch 跟 merge。
同步遠端的 branch 狀態到本地
比如遠端已經把 test 分支刪除了,但本地還留著 origin/test
,此時用 git branch -D origin/test
仍無法移除,就需要使用下面的指令把遠端上的分支狀態改動同步到本地
$ git fetch --all --prune
推送到你的遠端
git push
只有在你對克隆來源的伺服器有寫入權限,並且在這個當下還沒有其它人推送過,這個命令才會成功;
如果你和其它人同時做了克隆,然後他們先推送到雲端,接著你才推送到雲端,毫無疑問地你的推送會被拒絕;
你必需先拉取他們的工作內容,將其整併到你之前的工作內容,如此你才會被允許推送。
git push [remote-name] [branch-name]