git review (四)

git review (四)

git clone克隆

  1. 用法1:git clone <repository> <directory>
  2. 用法2:git clone --bare <repository> <directory.git>
  3. 用法3:git clone --mirror <repository> <directory.git>

用法說明:

  • 用法1將repository指向的版本庫創建一個克隆到directory目錄。目錄directory相當於克隆版本庫的工作區,文件都會檢出,版本庫位於工作區目錄下的.git目錄下。
  • 用法2和用法3都不包含工作區,直接就是版本庫的內容,這樣的版本庫相當於裸版本庫。一般約定俗成以.git爲後綴
  • 用法3區別於用法2在於用法3克隆出的裸版本庫對上游版本庫進行了註冊,這樣可以使用git fetch進行持續同步。

對於上游版本的註冊信息配置等都在.git/config裏面。

  • git的push和pull用法命令:
    git push [<remote-reposity> [refspec(冒號表達式前面是本地後面是遠端)]]
    git pull [<remote-reposity> [refspec]]
    其中refspec是引用表達式。

如果遇到了衝突,可以先pull回來然後再push過去。
實際上git pull = git fetch+git merge
解決衝突的方法:

  • 手動修改文件,然後git add -u git commit git push
  • 藉助圖形化工具 git mergetool

git 里程碑

  • 創建的里程碑默認只會在本地版本庫中可見,如果要推送,示例如下:
    git push origin mytag
  • 使用pull可以獲取新的里程碑,但是里程碑被改變後,不能進行用pull自動更新。必須使用顯示更新:
    git pull origin refs/tags/mytag2:refs/tags/mytag2
  • 刪除遠程版本庫中的里程碑:
    git push <remote_url> :<tagname>

git 分支

  • git checkout -b <new_branch> [<start_point>]
    通過參數實現了創建分支和切換分支兩個動作合二爲一。
  • git push origin user2/i18n:master
    用本地user2/i18n分支更新版本庫的master分支
  • git push origin :user2/i18n
    刪除遠程user2/i18n分支

git 遠程版本庫

  • 爲了能夠在遠程分支refs/remotes/origin/hello上進行工作,需要基於遠程分支創建本地分支
    git checkout hello
  • 但是如果基於本地分支創建另外一個本地分支則沒有分支跟蹤功能,但是可以加--track參數:
    git checkout --track -b hello-jx hello
  • 如果註冊了多個遠程版本庫並希望獲取所有遠程版本庫的更新:
    git remote update
  • 如果要在遠程版本庫中創建分支,則執行命令:
    git push <remote> <new_branch>
  • 關於不帶參數的git push和pull過程詳細說明,參見《git權威指南》294頁。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章