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页。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章