git clone、 remote、fetch、pull、push、remote


  • git clone命令笔记

作用:远程克隆版本库 1. 克隆版本库 git clone <版本库的网址> git clone zoran@192.168.2.167:/data/gitdata/gittest.git git clone https://github.com/jquery/jquery.git 如果想用其它主机名: git clone -o zhangsan <版本库的网址> git clone -o zoran zoran@192.168.2.167:/data/gitdata/gittest.git 2.克隆版本库到指定路径 git clone <版本库的网址> <本地目录名> git clone zoran@192.168.2.167:/data/gitdata/gittest.git zoran 2.克隆支持的协议类型 支持:HTTP(s)、SSH、Git、本地文件协议等,如: git clone http[s]://example.com/path/to/repo.git/  git clone ssh://example.com/path/to/repo.git/ or  git clone zoran@192.168.2.167:/path/to/repo.git  git clone git://example.com/path/to/repo.git/  git clone /opt/git/project.git git clone file:///opt/git/project.git  git clone ftp[s]://example.com/path/to/repo.git/  git clone rsync://example.com/path/to/repo.git/
  • git fetch命令笔记

主机的版本库有了更新(Git术语叫做commit),需要将这些更新取回本地,这时就要用到git fetch命令,只跟新不合并。 1. 全部更新回本地 git fetch <远程主机名> git fetch origin git fetch . 2. 更新指定分支 git fetch <远程主机名> <分支名> git fetch origin dev git fetch origin master tips:取回的更新,在本地主机上要用"远程主机名/分支名"的形式读取。比如origin主机的master,就要用origin/master读取。 3. 查看远程分支 git branch -r 4. 查看远程所有分支 git branch -a 5.更新并创建新分支 git checkout -b newBrach origin/master tips:在origin/master的基础上,创建一个新分支 6. 本地分支上合并远程分支 git merge origin/master # 或者 git rebase origin/master tips:表示在当前分支上,合并origin/master。
  • git pull命令笔记

git pull命令的作用是,取回远程主机某个分支的更新,再与本地的指定分支合并 1.取回分支更新,与本地指定分支合并 git pull <远程主机名> <远程分支名>:<本地分支名> git pull origin next:master //origin主机的next分支,与本地的master分支合并 如果远程分支是与当前分支合并,则冒号后面的部分可以省略,如: git pull origin dev 实际取回origin/dev分支,再与当前分支合并。实质上,这等同于先做git fetch,再做git merge。 git fetch origin git merge origin/dev 2.手动指定(追踪)本地分支与远程分支的关联 git branch --set-upstream-to=origin/next //当前分支关联远程origin/next分支 如果当前分支与远程分支存在关联关系,git pull可以省略远程分支名,如: git pull origin 如果当前分支只有一个追踪分支,连远程主机名都可以省略,如: git pull 如果远程主机删除了某个分支,默认情况下,git pull 不会在拉取远程分支的时候,删除对应的本地分支。这是为了防止,由于其他人操作了远程主机,导致git pull不知不觉删除了本地分支。但是,你可以改变这个行为,加上参数 -p 就会在本地删除远程已经删除的分支。 git pull -p # 等同于下面的命令 git fetch --prune origin git fetch -p 3. rebase模式合并 git pull --rebase <远程主机名> <远程分支名>:<本地分支名> git pull --rebase origin dev:dev
  • git push命令笔记

git push命令用于将本地分支的更新,推送到远程主机。 1. 本地分支的更新推到远程主机 git push <远程主机名> <本地分支名>:<远程分支名> git push origin dev:dev 如果省略远程分支名,则表示将本地分支推送与之存在"链接(追踪)关系"的远程分支(通常两者同名),如果该远程分支不存在,则会被新建。 git push origin dev//本地dev分支推送到origin主机的dev分支;如果后者不存在,则会被新建. 如果省略本地分支名,则表示删除指定的远程分支,因为这等同于推送一个空的本地分支到远程分支。 git push origin :dev # 等同于 git push origin --delete master //删除origin主机的master分支 2.本地分支对应多个远程主机,可推送到指定主机,并设置默认主机,使用git push就可以不加任何参数了 git push -u <远程主机名> <本地分支名称> git push -u origin master //本地的master分支推送到origin主机,同时指定origin为默认主机 3.不管是否存在远程分支,都可以将本地分支推到远程 git push --all origin //本地分支都推送到origin主机 4.远程主机比推送版本新,如需强制推送 如果远程主机的版本比本地版本更新,推送时Git会报错,要求先在本地做git pull合并差异,然后再推送到远程主机。这时,如果你一定要推送,可以使用--force选项。-使用场景,确定代码是你提交,存在错误,不需要处理差异,直接覆盖,可以这么做,慎用。 git push --force origin 5.git push不推送标签(tag),如需推送标签 git push origin --tags //使用--tags选项
  • git remote命令笔记

git remote Git要求每个远程主机都必须指定一个主机名。git remote命令就用于管理主机名。 1.列出所有远程主机 git remote 2. 查看远程主机的网址 git remote -v 3. 克隆版本库自定义名称 tips:克隆版本库的时候,所使用的远程主机自动被Git命名为origin。如果想用其他的主机名,需要用git clone命令的-o选项指定。 git clone -o jQuery https://github.com/jquery/jquery.git git remote 输出 jQuery 4. 查看主机详细信息 git remote show <主机名> git remote show origin 5. 远程主机改名 git remote rename <原主机名> <新主机名> git remote rename origin zoran 6.添加远程主机 git remote add <主机名> <网址> git remote add zoran zoran@192.168.2.167:/data/gitdata/gittest.git 7. 删除远程主机 git remote rm <主机名> git remote rm origin
Git