`

git fetch命令

阅读更多

曾犯过一个错误:
  clone到本地的代码,平时只用master分支,所以只在master分支上更新本地的代码,之前搞不清本地库和github上的库的关系,不明白远程分支的含义;比如线上新建了一个分支”release_Aug_01”,我不知道如何把git的远程分支同步到本地的分支,只是发现在本地checkout 到某个远程分支提示我没有这个分支,我不知道通过git fetch origin获取远程分支,就只好在本地新建了和远程分支同名的分支,然后checkout到新建的分支,再把远程的分支merge到本地;当时这样做好像没出问题。不过这样做应该就是每次都需要通过git merge来更新远程代码
正确的做法是,在本地执行git fetch origin,命令把远程分支的更新同步到本地,这样本地就有远程的分支了,然后check到要开发的分支,就可以开发了,和在master上一样的


查了一些git fetch的资料:
git fetch 参考网址:http://git-scm.com/docs/git-fetch

git fectch常用的四种用法:(以下来源于https://ruby-china.org/topics/4768
git fetch:
     这一步执行了两个关键的操作:创建并更新本地远程分支;设定当前分支的FETCH_HEAD为远程服务器的master分支上
git fetch origin:
     和git fetch一样,只不过手动指定了remote 
git fetch origin branch1
     设定当前分支的FETCH_HEAD为远程服务器的branch1分支,这个命令不会在本地创建本地远程分支,但是可以用来测试远程主机的远程分支branch1是否存在,如果存在返回0,失败就返回128错误码
git fetch origin branch1:branch2
     首先执行fetch操作,使用远程branch1分支在本地创建branch2(但不会切换到该分支),如果本地不存在branch2分支就会自动创建一个新的branch2分支,如果本地存在branch2分支,并且是fast forward,则自动合并两个分支,否则,会阻止以上操作,
git fetch origin :branch2
   等价于git fetch origin current_branch:branch2.
fetch的关键是FETCH_HEAD指的是,某个branch在服务器上的最新状态
  每一个执行过fetch操作的项目都会存在一个FETCH_HEAD列表,这个列表保存在.git/FETCH_HEAD文件中,其中每一行对应于远程服务器的一个分支。当前分支指向的FETCH_HEDAD就是这个文件第一行对应的那个分支;所以你可以在当前分支查看FETCH_HEAD文件,就可以知道当前分支对应的远程分支了

分享到:
评论

相关推荐

    解决因文件权限导致git fetch命令执行失败的问题

    最近在工作中遇到一个问题,就是在在一个基于 git 的发布系统中拉取代码,发现无法拉取最新的提交记录,查找相关资料发现是因为文件权限的问题,所以这篇文章主要介绍了关于解决因文件权限导致git fetch命令执行失败...

    Git pull命令与fetch命令的区别

    Git pull命令与fetch命令的区别 今天在公司碰到个问题,公司不使用master分支作为主分支,而使用release分支作为主分支,这就碰到了个问题,也就是当clone一个项目下来的时候,如果master跟release分支有冲突,就不...

    git 视频教程

    git视频教程.5.1.Git 命令 - git fetch.mp4 git视频教程.5.2.Git 命令 - git pull.mp4 git视频教程.5.3.Git 命令 - git push.mp4 git视频教程.5.4.Git 命令 - git remote.mp4 git视频教程.5.5.Git 命令 - git ...

    Linux环境下Git命令自动补全脚本

    When you git<tab><tab> add cherry diff instaweb rebase show-ref am cherry-pick fast-export log relink st annotate ci fetch los

    git-helper:GIT快速帮助命令

    git repack设置远程GIT git init git add . git status git commit -m "First commit" git ... git fetch -- all 删除未跟踪的文件git clean -f -d 重置分支/文件git reset --hard origin/master强制放弃本地更改

    git-info:git-info是一个git子命令,显示有关Git信息库的信息,如`svn info'

    git-info概要git-info-显示有关Git信息库的信息,如`svn info'如何设置只需将这些脚本放在PATH的目录之一中...infoRemote Repositories:origingit@github.com:knu/git-info.git (fetch)origingit@github.com:knu/git-i

    Git操作流程及部分问题解决方案(纯命令版).docx

    Git基本操作流程-命令版,最后附了两个问题:1.git fetch 和 git pull 有什么区别? 2.在git前台页面和命令端显示的不一致问题

    Git使用手册.pdf

    git常用命令总结 分布式相比于集中式的最大区别在于开发者可以提交到本地,每个开发者通过克隆(git clone),在本地机器上拷贝一个完整的Git仓库。 如图1所示是经典的git开发过程。 图1 图1 Git的功能特性: 从一般...

    git-command-demo:正在创建此存储库以演示基本的git命令

    日志要获取到存储库中的提交的列表,可以使用以下任何一个命令详细生成命令git log此命令生成详细输出非冗长的生成命令git log --oneline此命令生成非详细输出拉git pull该命令可以被视为命令git fetch和git merge的...

    Git-1.8.chm Git-1.8英文API Git文档工具

     5:新建一个分支,把服务器上最新版的代码fetch下来,然后跟自己的主分支合并。  6:生成补丁(patch),把补丁发送给主开发者。  7:看主开发者的反馈,如果主开发者发现两个一般开发者之间有冲突(他们之间...

    git-ray::laptop::water_pistol:-一个nodejs库来调用用RxJS编写的git命令

    git-fetch 所有命令都将具有功能签名模式,例如: 有关生成选项和ChildProcess类的定义,请参见文档。 function gitCommand ( arg : String , // a string argument to pass as the main param to git params ...

    visualizing-git:可视化常见的Git操作如何影响提交图

    可视化Git Git是一个非常强大的工具-它可能会令人困惑。...clear =清除历史记录窗格并重置可视化可用的Git命令: git branchgit checkoutgit cherry_pickgit commitgit fetchgit loggit mergegit pullg

    Git Hab 日常使用命令总结

    Git Hab 日常使用命令总结,包含底层命令 冲突解决 pull push fetch .....................

    Git gui(git客户端)64位 v2.12.0.zip

    Git gui(git客户端)64位是免费、开源的分布式版本控制系统,用于Linux内核开发的版本控制工具,GUI的方便快捷,也不用记忆冗杂的命令,这里为大家分享的是Windows下的GIT客户端,有需要的赶快下载吧! Git是简单易学...

    all-git-fetcher:更新当前目录下所有 git 存储库的行命令

    该脚本将在 git 项目上运行 git fetch。 之后,如果项目没有任何未提交的更改,将尝试运行 git rebase origin/master ,否则它会忽略 rebase。 请参阅下面部分中的一些。 安装 只需在您的终端中运行: sudo wget ...

    doc

    Git命令 mkdir git ; cd git && git init git init . git config core.sshCommand " ssh -i /some/where/thekey -F /dev/null " git remote add origin git@github.com:bendows/some-repo.git git fetch git remote ...

    蔡氏电路matlab仿真代码-git-tips:基本的git命令

    fetch origin && git reset --hard origin/master && git clean -f -d 1次提交中所有文件的列表 git ls-tree --name-only -r < commit-ish > Git重置第一次提交 git update-ref -d HEAD 已冲突的所有文件的列表 ...

    gitwatcher-ui:git repo watcher pull push commit fetch 命令都在一个应用程序中

    git repo watcher-ui 用于拉、推、提交、获取命令都在一个应用程序中。 作为 gitHub 应用程序。 写在 Kivy 要求 git+ 看门狗 在 Linux 上安装 pip install -U numpy pip install -U cython pip install -U ...

Global site tag (gtag.js) - Google Analytics