前兩天主要介紹了對本地的git
倉庫的一些基礎操作,今天將會介紹對遠端倉庫的基本操作。
在平常的專案中,我們常常會與遠端倉庫打交道。遠端倉庫是指在網際網路或者其他網路伺服器上託管的專案版本庫。通過遠端倉庫我們可以與其他專案團隊成員共享工作成果。對於遠端倉庫的基礎的使用,我們需要了解如何新增遠端倉庫、檢視專案中使用了哪些遠端倉庫、移除不再使用的遠端倉庫、管理遠端倉庫的遠端分支等等操作。
$ git clone
使用命令git remote
命令可以檢視當前專案中設定哪些遠端倉庫,可以追加-v
選項檢視遠端倉庫的url
位址
$ git remote
origin
$ git remote -v
origin (fetch)
origin (push)
如果使用git clone
來初始化本地的git
倉庫,則origin
是轉殖的遠端倉庫的預設名稱,並沒有特別的含義。如果使用git clone -o
為遠端倉庫設定別名,則此時git remote
的輸出為設定的別名。
執行git remote add [shortname] [url]
新增遠端倉庫,其中shortname
為遠端倉庫的引用名稱。
$ git remote add vue-next
$ git remote -v
origin (fetch)
origin (push)
vue-next (fetch)
vue-next (push)
git
中提供了2種從遠端倉庫拉取資料的方式:git pull :
和git fetch
。
如果使用git clone
轉殖遠端專案,則remote_name
為origin
;如果使用git clone -o
,則remote_name
為alias_name
;如果使用git remote add [shortname] [url]
新增的遠端倉庫,則remote_name
為shortname
。
git fetch
會從對應的遠端倉庫中獲取本地倉庫沒有的資料,也包括遠端倉庫中含有的分支,需要注意的是,該命令只是獲取資料到本地,並不會與本地工作區內的檔案合併,如果想和當前本地分支合併,需要後續執行git merge
命令。
git pull
也會從遠端倉庫自動獲取資料,但是會將遠端倉庫分支合併到當前本地分支,可以認為該命令是git fetch
和git merge
兩個步驟的結合。
可以使用git push [remote-name] [local-branch-name]
命令將本地資料推送到遠端倉庫,例如:可以使用git push origin master
可以將本地的master
分支推動到origin
對應的遠端倉庫。
如果想將本地資料順利的推送至遠端倉庫,需要注意的是:
當前使用者需要擁有轉殖下來的遠端倉庫的讀寫許可權
從遠端倉庫倉庫轉殖後,在提交之前,如果遠端倉庫被修改了,那麼這次推送會不成功,需要拉取最新的遠端倉庫,合併到自己的工作目錄中,然後在將合併後的版本內容再推送到遠端倉庫
在7.2節使用git remote -v
可以檢視專案中設定的遠端倉庫的名稱和對應的url
位址。這裡可以使用git remote show [remote-name]
,顯示更多的遠端的資訊。
$ git remote show origin
* remote origin
fetch url:
push url:
head branch: master
remote branches:
>linusborg/improve-render-warning-missing-props tracked
add-license-files-to-all-packages-2650 tracked
akryum/on-server-prefetch tracked
dependabot/npm_and_yarn/babel/parser-7.12.11 tracked
dependabot/npm_and_yarn/babel/types-7.12.12 tracked
dependabot/npm_and_yarn/estree-walker-2.0.2 tracked
dependabot/npm_and_yarn/ini-1.3.8 tracked
dependabot/npm_and_yarn/node-notifier-8.0.1 tracked
feat/expose tracked
linusborg/feat-warn-reserved-properties tracked
linusborg/handle-readonly-type-attr-on-textarea-2766 tracked
linusborg/map-shallow-proxies-seperately-2843 tracked
master tracked
postcss-8 tracked
reactive-let tracked
script-setup-2 tracked
test/types/props-default tracked
local branch configured for 'git pull':
master merges with remote master
local ref configured for 'git push':
master pushes to master (up to date)
輸出結果中不僅僅顯示了遠端倉庫的名稱和url
位址,並列出了當前專案追蹤了遠端倉庫的哪些分支,以及當前使用的分支名稱。
這裡可以注意一下最後4行的輸出內容,其中最後2行的輸出內容指出了,當執行git push
命令是會將本地倉庫中的master
分支推送至遠端倉庫中的master
分支;最後3-4行的輸出內容指出了,當執行git pull
命令時,會將遠端倉庫的master
拉取並合併到本地倉庫的master
中。
可以使用命令git remote rename
更新遠端倉庫的名稱,更新時也會更新遠端分支的名稱,例如更新後,之前的/master
分支名稱會變成為/master
。
可以使用命令git remote rm
刪除指定的遠端倉庫。
4 Git 基礎 撤消操作
任何時候,你都有可能需要撤消剛才所做的某些操作。接下來,我們會介紹一些基本的撤消操作相關的命令。請注意,有些撤銷操作是不可逆的,所以請務必謹慎小心,一旦失誤,就有可能丟失部分工作成果。amend git commit amend此命令將使用當前的暫存區域快照提交。如果剛才提交完沒有作任何改動,直接執...
git基礎 4 git跟蹤或取消跟蹤檔案
在git是用過程中,可能遇到以下情況 1 被跟蹤檔案裡面有不想跟蹤的檔案。2 每次用git status檢視狀態時總是列出未被跟蹤的檔案。解決方法 1 當被跟蹤的檔案裡面有不想跟蹤的檔案時,使用命令git rm刪除檔案。如 git rm cached readme1.txt 刪除readme1.tx...
git系列文章
霍格沃茲測試學院是由中國最大的測試開發技術社群 testerhome 孵化的高階教育品牌,致力於為 it 行業提供最優秀的測試開發技術培訓和人才服務。學院成立於 2017 年,不到一年時間就已經服務上萬使用者且好評不斷。學院已經與 70 多家最頂級的一線網際網路公司建立合作聯絡,包括 阿里 騰訊 美...