跳轉到內容

Git/高階

來自華夏公益教科書
< Git

本教程介紹了一些 Git 更高階的多使用者功能。對於單使用者功能,請參閱單開發者基礎

檢出遠端倉庫

[編輯 | 編輯原始碼]

檢出遠端 Git 倉庫的一種方法是

$ git clone ssh://username@server.com:port/remote/path/to/repo

現在你擁有了該倉庫的本地副本。你可以使用在單開發者基礎中介紹的所有命令。完成後,你可能希望再次將你的更改簽入中心倉庫。

首先,你需要執行 git pull 操作,以防倉庫在此期間發生了更改,你可能需要將你的分支與倉庫合併。合併後,你可以使用 git push 將你的更改傳送到倉庫

$ git pull /remote/path/to/repo

或者

$ cd repo
$ git pull

然後

$ git push

檢出本地倉庫

[編輯 | 編輯原始碼]

git clone 也適用於本地倉庫

$ git clone /local/path/to/repo

檢出遠端分支

[編輯 | 編輯原始碼]

你可能還想檢出遠端分支,對其進行操作,然後簽入你的本地分支。首先,你可能需要知道哪些分支可用

$ git branch -r
$ git remote show origin

獲取遠端分支(拉入本地分支)

$ git pull origin remoteBranchName:localBranchName

更新遠端分支(將本地分支推入遠端分支)

$ git push origin localBranchName:remoteBranchName

這假設你有一個名為“origin”的遠端倉庫。你可以使用 git remote 來檢查這一點。

如果你想從遠端分支建立本地分支,請使用

$ git checkout -b mylocalbranch origin/maint

刪除遠端分支的操作如下

$ git push origin :remoteBranchNameToDelete

以下命令同步分支 $ git fetch origin

Git 允許你指定一些標籤,以便專注於歷史記錄中的某些內容[1]

要新增帶註釋的標籤,請執行以下操作

$ git tag -a mytag

或者

$ git tag -a mytag my-branch

要新增輕量級標籤,請執行以下操作

$ git tag mytag

要強制覆蓋現有標籤,請執行以下操作

$ git tag -f mytag HEAD

要顯示以前的標籤,請執行以下操作

$ git tag 

標籤可以被推送到遠端倉庫,方法是

$ git push --tags

要將倉庫定位到標籤,請執行以下操作

git checkout tags/0.3.4

標籤與分支

[編輯 | 編輯原始碼]

標籤和分支都指向一個提交,因此它們都是特定雜湊的別名,透過使用它們可以節省時間,因為不需要輸入雜湊。

標籤和分支之間的區別在於,分支始終指向開發線頂端,並且在推送新的提交時會更改,而標籤不會更改。因此,標籤更適合用於“標記”特定版本,並且該標籤將始終停留在該版本上,通常不會更改。

實際上,標籤用於指定軟體版本控制,並且以數字命名(例如:v1.0.2)。


Example of branches with tags.
帶有標籤的分支示例。

建立和應用補丁

[編輯 | 編輯原始碼]

要為 origin 和 master 之間的更改建立純文字補丁(系列),請使用

$ git format-patch origin/master

要應用提交的純文字補丁(系列),請使用

$ git apply --stat  P1.txt  #see the stats, how much will the path change?
$ git apply --check P1.txt  #check for problems
$ git am < P1.txt           #apply the patches in the correct order

參考文獻

[編輯 | 編輯原始碼]
  1. https://git-scm.tw/book/en/Git-Basics-Tagging
華夏公益教科書