美文网首页
Git远程操作

Git远程操作

作者: zhangferry | 来源:发表于2018-08-29 09:59 被阅读62次
git-logo.png

Git中远程操作是我们做多人项目维护时很常使用到的命令,这里总结了一下git指令中remotefetchpullpush 的常见用法:

git remote

列出所有的远程仓库,默认为origin

$ git remote
origin

查看远程仓库的网址

$ git remote -v
origin  https://bitbucket.org/company/project-ios/src (fetch)
origin  https://bitbucket.org/company/project-ios/src (push)

上面命令表示,当前只有一台远程主机,叫做origin,以及它的网址。fetch和push对应的都是同一远程地址

显示获取远程引用的完整列表,包括远程分支和tag

$ git ls-remote origin
0185329b020db9043accb4ead02c4709dae1616b    HEAD
7c915b5bae1a5f864fbc23ecb533d4e63c4be95b    refs/heads/1.0.2
5970a7e8269be2258288b71e922f93b43478a13b    refs/tags/1.0.2

获取远程分支的更多信息

$ git remote show origin
* remote origin
  Fetch URL: https://bitbucket.org/company/project-ios/src
  Push  URL: https://bitbucket.org/company/project-ios/src
  HEAD branch: master
  Remote branches:
    1.0.2                            tracked

关联远程仓库

$ git remote add <仓库名> <git地址>

删除远程仓库

$ git remote rm <仓库名>

git fetch

说fetch命令之前先说下远程跟踪分支的概念。首先当只有本地分支,或者只有远程分支时,提交记录表现形式为:

5cf7ce72.png

当我们本地分支和远程关联之后,就产生两个分支,一个是本地分支:master,一个是关联的远程分支,表示方式为:origin/master。他们指向同一节点:


bea55e17.png

当本地做了一些本地提交之后会变成这样,远程分支并不会动。

此时如果有其他同事修改了远程master分支的内容,我们需要合并或者查看他的代码,可以执行git fetch origin master该命令会把远程master更新内容拉下来,此时提交记录表现为:

3494430e.png

本地分支和远程关联分支可以说是并行的存在。

具体命令

$ git fetch <仓库名>

执行之后分支情况就变成了

默认情况下,git fetch 取回所有分支更新,如果只想取回特定分支更新,可以指定分支名:

$ git fetch <仓库名> <分支名>

所取回的更新,在本地主机要用“远程仓库名/分支名”的形式读取,比如origin的master,就要用origin/master读取。这还有一种叫法是远程跟踪分支

然后我们就可以使用git merge 或者git rebase 命令,合并远程分支

$ git merge origin/master
# 或者
$ git rebase origin/master

git pull

git pull 相当于取回远程主机某个分支的更新,再与本地的指定分支合并。(git fetch + git merge)
完整格式为

$ git pull <远程主机名> <远程分支名>:<本地分支名>

可以指定,某一远程分支跟某一本地分支合并。如果当前只有一个跟踪分支可以简写为

$ git pull

git pull 默认合并操作时git merge如果我们想用rebase 模式的话,可以加个--rebase参数

$ git pull --rebase <远程主机名> <远程分支名>:<本地分支名>

git push

该命令用于,将本地分支更新推送到远程主机,格式用法跟git pull 差不多。完整格式为:

$ git push <远程主机名> <远程分支名>:<本地分支名>

如果省略远程分支名,则表示将本地分支推送与之存在"追踪关系"的远程分支(通常两者同名),如果该远程分支不存在,则会被新建。

$ git push origin master

上面的命令是将本地master分支退到origin的master分支,如果后者不存在,就新建
如果当前分支与多个主机存在追踪关系,可以使用-u来指定一个默认主机,这样以后就不用加任何参数使用git push了

$ git push -u origin master

以后推送可以不带参数的写git push了,默认只推当前分支。
如果我们想将本地分支都推到远程主机,可以使用--all参数

$ git push --all origin

如果远程分支跟当前分支有差异,会报错。有两种解决办法,要么我们先git pull合并差异,再git push 要么直接强推,覆盖远程分支

$ git push --force origin

简写命令

$ git push -f

相关文章

  • Git远程操作详解

    Git远程操作详解 Git远程操作详解

  • git常用操作命令

    git常用操作命令 1 git工作原理图 2 git远程操作 2.1 git clone 远程操作的第一步,通常是...

  • Git的操作流程

    Git的基本操作: 只要操作git 最前⾯面 都需要写git 克隆隆远程代码仓库:git clone+远程代码仓库...

  • Gite Bash 用法2018-07-16

    Git的基本操作: 只要操作git 最前面 都需要写git 克隆隆远程代码仓库:git clone 远程代码仓库的...

  • Git 系列文章

    GIT 初识 Git的基础操作 Git的远程操作 Git的分支管理 Git标签操作 Git团队协作 Git 多账户...

  • Git 教程(一)--Git简介及操作流程

    前言 Git 教程(一)--Git简介及操作流程Git 教程(二)--Git文件操作Git 教程(三)--远程仓库...

  • Git 教程(五)--远程分支

    前言 Git 教程(一)--Git简介及操作流程Git 教程(二)--Git文件操作Git 教程(三)--远程仓库...

  • Git 教程(四)--分支原理

    前言 Git 教程(一)--Git简介及操作流程Git 教程(二)--Git文件操作Git 教程(三)--远程仓库...

  • Git 教程(三)--远程仓库

    前言 Git 教程(一)--Git简介及操作流程Git 教程(二)--Git文件操作Git 教程(三)--远程仓库...

  • Git 教程(二)--Git文件操作

    前言 Git 教程(一)--Git简介及操作流程Git 教程(二)--Git文件操作Git 教程(三)--远程仓库...

网友评论

      本文标题:Git远程操作

      本文链接:https://www.haomeiwen.com/subject/wjkhwftx.html