美文网首页
远程仓库操作

远程仓库操作

作者: 若兮缘 | 来源:发表于2018-12-14 18:54 被阅读89次

远程仓库

1.克隆远程仓库

git clone <url> [dir] #将存储库克隆到新创建的目录中,默认与远程主机的版本库同名,可以指定目录名称dir
执行此命令会为克隆的存储库中的每个分支创建远程跟踪分支(使用git branch -r可见),并且本地创建一个master分支,与本地的远程跟踪分支master进行关联。

2.添加远程仓库

git remote add <remoteName> <url> #remoteName为远程仓库名称,url为远程仓库链接
实际上是与远程仓库建立联系,这样在推送和拉取代码时就知道往哪里推送和拉取了。

示例:在github上新建一个仓库,然后在本地一个空的git仓库里添加远程仓库

3.查看远程仓库

git remote #只查看远程仓库名
git remote -v #查看远程仓库名及url信息

4.修改|查看远程仓库链接

git remote set-url <remoteName> <url> #设置指定远程仓库的链接
git remote get-url <remoteName> #获取指定远程仓库的链接

5.修改本地远程仓库名称

git remote rename <old> <new>

6.删除本地的远程仓库

git remote remove <remoteName>

远程分支

1.远程分支查看

git branch -a #查看本地及远程分支
git branch -r #只查看远程分支
git branch -l #只查看本地分支

2.1从远程分支拉取内容

git fetch <remote_name> <branch_name> #从远程仓库的指定同名分支上拉取最新的内容
git fetch #如果省略参数,会从远程仓库的所有分支上拉取最新的内容
这将更新git remote中所有的远程仓库所包含分支的最新commitId, 将其记录到.git/FETCH_HEAD文件中
FETCH_HEAD:该文件在git目录下,指向目前已经从远程仓库取下来的分支的末端版本
git fetch更新远程仓库的方式如下:

# 方法一
git fetch origin master    #从远程的origin仓库的master分支下载代码到本地的origin master
git log -p master.. origin/master    #比较本地的仓库和远程仓库的区别
git merge origin/master    #把远程下载下来的代码合并到本地仓库

# 方法二
git fetch origin master:temp    #本地新建一个分支temp,并将远程origin仓库的master分支下载到本地temp分支
git diff temp    #比较master分支和temp分支的不同
git merge temp    #合并temp分支到master分支
git branch -d temp    #删除temp
2.2从远程分支拉取内容

git pull <remote_name> <branch_name> #从远程仓库的指定同名分支上拉取最新的内容,会自动进行分支的合并
该命令等同于 git fetch + git merge
git pull #如果省略参数,会自动从当前分支名称相同的远程分支上拉取内容。如果当前分支没有跟踪到任何远程分支或者跟踪的远程分支不同名,则拉取失败

3.推送本地分支至远程

git push <remote_name> <branch_name> #将指定本地分支推送到远程仓库的同名分支上,如果远程分支不存在则会自动创建
git push #如果省略参数,会自动将当前分支推送到与其分支名称相同的远程分支上。如果当前分支没有跟踪到任何远程分支或者跟踪的远程分支不同名,则推送失败
git push <remote_name> <branch_name>:<remote_branch> #将本地分支推送到远程指定的分支上
例如:
git push origin dev #推送本地dev分支到远程的dev分支
git push origin HEAD:master #推送本地HEAD指向的分支(当前工作分支)到远程的master分支

4.远程分支检出

如果远程存在多个分支,使用 git clone 只会创建一个master分支 ,需要使用命令进行远程分支检出。
git checkout -b <branch_name> <remote_name>/<remote_branch>#本地新建分支并检出远程分支代码
git checkout <remote_branch> #也可以使用该命令进行检出
对于该命令如果本地有该分支,执行切换操作,如果本地没有该分支,会查找remote上有无该分支,如果有,并将HEAD指向远程分支,并建立追踪关系,如果本地和远程都没有,则报错。
有时候,会发现明明远端有这个分支却依然报错,可以执行git pull,然后再checkout

4.远程分支合并

通常最终代码发布是使用master分支,所以发布前需要进行远程分支合并操作,实际是在本地分支进行合并后然后推送到远程master上,如果本地没有检出远程分支则需要先进行远程分支的检出
1.git checkout master #切换到master分支
2.git merge <branch_name> #将分支合并到master分支
3.git push origin master #将master分支推送至远程
注:origin为默认远程仓库名称

5.远程分支删除

如果远程分支合并完成后不再需要了,可以进行删除操作
git push origin --delete <branch_name> #直接删除远程分支
git push origin :<branch_name> #推送一个空分支(也代表删除)

远程分支跟踪

1.分支跟踪意义

从远程分支检出的本地分支,称为跟踪分支(tracking branch)。跟踪分支是一种和远程分支有直接联系的本地分支。务必让跟踪分支和远程分支保持同名。
在跟踪分支里输入git push,Git会自行推断应该向哪个服务器的哪个分支推送数据。反过来,在这些分支里运行git pull会获取所有远程索引,并把它们的数据都合并到本地分支中来。

2.查看跟踪关系

git branch -vv #查看本地分支与远程分支追踪关系

3.自动建立跟踪关系

1.git clone #建立本地master分支与远程master分支的跟踪关系
2.git push -u origin <branch_name> #使用-u参数会自动建立本地指定分支与远程同名分支的追踪关系
3.git checkout -b <branch_name> origin/<remote_branch> #会将远程指定分支与本地指定分支建立跟踪关系

4.手动建立跟踪关系

git branch --set-upstream-to origin/<branch> <branch_name> #如果省略branch,则默认与远程的master分支建立联系

5.切断跟踪关系

如果本地分支关联的远程分支不存在了,本地分支想保留,需要切换与远程分支的联系
git branch --unset-upstream <branch_name> #此处的分支名称为本地分支,切断本地分支的远程追踪关系

6.错误说明

在使用git pushgit pull时,要特别注意当前分支是否建立了跟踪关系,跟踪分支名称是否相同。
比如当前在本地rxy分支,此时没有跟踪到任何远程分支,输入git push报错,建议我们建立跟踪关系

比如当前在本地rxy分支,但是跟踪的是master分支,输入git push报错,因为名称不匹配,建议我们指定参数推送

相关文章

  • git使用指南

    创建新的仓库并 push 到远程仓库 push 一个已经存在的仓库到远程仓库 操作远程仓库 显示当前绑定的远程仓库...

  • 用git命令将代码发布到远程仓库+SSH公钥配置

    远程仓库平台操作的2种情况 先有本地仓库,远程仓库为空 先有远程仓库,本地仓库为空 情况一:先有本地仓库,远程仓库...

  • git常用命令介绍

    常用操作上图 常用操作说明 从远程仓库克隆代码到本地仓库 本地仓库推送到远程仓库 从远程仓库拉取代码到工作区(当远...

  • Git基本操作和错误

    创建SSH Key 本地创建仓库操作 创建本地仓库 将文件添加进Git 提交 Git远程仓库操作 查看远程仓库 添...

  • git remote

    1. 克隆远程版本仓库到本地 2.操作远程仓库 查看所关联的远程仓库(仓库名) 查看具体信息(仓库名、地址) 添加...

  • Git命令操作

    本地仓库映射到远程仓库 分支操作 代码提交操作 标签 查看信息操作 远程同步操作 撤销操作 查看和设置配置信息

  • pycharm与远程仓库进行连接

    个人操作远程仓库的步骤 一 .github创建远程仓库------->克隆到本地仓库--------->维护本地代...

  • Git常用命令

    一、仓库命令操作 初始化一个本地仓库 查看本地仓库是否连接远程仓库 本地连接远程仓库 删除远程连接仓库 二、项目文...

  • git常规操作

    git操作原理简介远程仓库 Amaster 分支developqatest3远程仓库 Bmaster 分支deve...

  • Git的操作流程

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

网友评论

      本文标题:远程仓库操作

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