热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

git分支指的是_git分支基本介绍

前言git是开发的必备工具,在团队协作中,总会遇到对本地和远程分支的管理,我们就几个概念进行一个简单的梳理和延伸.什么是originmaster,master,origin,他们有

前言

git是开发的必备工具,在团队协作中,总会遇到对本地和远程分支的管理,我们就几个概念进行一个简单的梳理和延伸.

什么是origin/master,master,origin,他们有什么区别

origin 远程服务器

origin/master 远程分支

master 本地分支

origin

在了解origin/master和master之前,我们需要先了解一下git clone做了什么.

假设有一个服务器git.mycompany.com,执行git clone指令后

1.自动将远程服务器命名为origin

2.下载该服务下的所有数据

3.创建一个指向master分支的指针,并将该分支命名为origin/master

4.创建名为master的本地分支,并且和远程分支在同一个提交节点

tips:origin并不特别,就像分支名master在git中没有任何特殊意义一样.当执行git init时,master会作为初始分支的默认名字,因此使得master分支名被广泛使用.而origin是执行git clone时的默认服务器名称,当然可以通过指令git clone -o cat,使得默认服务器名称为cat,而默认远程分支为cat/master.

master & origin/master

master是默认的本地分支,是远程分支origin/master在本地的拷贝

远程分支和本地分支

追踪分支

从远程分支check out一个本地分支,该本地分支被称为追踪分支(tracking branch),被追踪的分支被称为上游分支(upstream branch),追踪分支可以理解为是和远程分支有直接关联的本地分支.如果我们在追踪分支时执行git pull,git会自动知道需要获取和merge的分支的服务器.

执行git clone创建了本地仓库后,会自动创建一个追踪origin/master分支的本地追踪分支master,当然我们也可以根据需求添加其他的追踪分支.

创建新的追踪分支

可以通过指令git checkout -b [branch] [remotename]/[branch]完成

git还提供了通用的--track简写操作: git checkout --track origin/dev,git checkout --track origin/dev做了什么呢?

分支dev被设定为追踪服务器为origin上的远程分支dev

切换到dev分支上

吸~是不是很简单,还有简写的简写,待我速速道来

如果checkout的分支本地不存在,但是和远程分支名一样,git会自动创建追踪分支,并且切换到该分支 : git checkout [branch]

本地分支必须和远程分支同名吗?当然不是,我们也可以为本地分支设置不同于远程分支的名字 : git checkout -b aaa origin/bbb,这样本地aaa为远程bbb的追踪分支.

已有的本地分支追踪远程分支

如果已经有一个本地分支,现在想要关联远程分支,或者修改追踪的上游分支,可以使用-u或者--set-upstream-to来随时关联,生成新的追踪分支.

示例: git branch -u origin/cccc

tips:上游分支的简写:

当已经设置了追踪分支,可以通过@{upstream}或 @{u}来引用其上游分支,举例,如果在master分支上,可以通过git merge @{u}等指令来代替git merge origin/master

查看上游分支

如果需要查看已经设置的上游分支,可以通过git branch -vv指令查看

查看上游分支

该指令会列出所有的分支信息,包含追踪分支的关联关系.

重要信息: 以上所有信息,都是上次执行git fetch之后的结果,并不是当前服务器的分支信息,未必是最新的状态.git branch -vv并不会去服务器获取数据,之后显示在本地已经缓存的信息.如果想完全获取最新的追踪分支信息,需要更新远程信息,执行:

git fetch --all; git branch -vv

删除远程分支

如果一个分支已经被废弃,可以通过git push origin --delete branchName来删除,还可以简写为: git push origin -d branchName

该指令只是移除了对服务器的指针引用,git服务器仍会保留数据,直到下一次垃圾回收时才会被清理.所以如果是不小心执行的删除,通常还可以被恢复.

删除分支有两种写法:git branch -d和git branch -D,了解区别点击查看



推荐阅读
  • 本文详细介绍了git常用命令及其操作方法,包括查看、添加、提交、删除、找回等操作,以及如何重置修改文件、抛弃工作区修改、将工作文件提交到本地暂存区、从版本库中删除文件等。同时还介绍了如何从暂存区恢复到工作文件、恢复最近一次提交过的状态,以及如何合并多个操作等。 ... [详细]
  • 先记住几个专用名词,如下:Workspace:工作区IndexStage:暂存区Repository:仓库区(或本地仓库)Remote:远程仓库一、新建代码库#在当前目录新建一个G ... [详细]
  • 双十一在家学用 Git
    对于所有的开发者来说,掌握一门代码版本控制系统都是必须的,无论是自己做项目,团队合作,工作中的合作,都离不开版 ... [详细]
  • Day 5 20190120 老男孩python学习第5天 内容整理
    今天继续看MasteringPycharm的视频,一个半小时看git的教学视频:视频1小时44分钟,看了2个半小时以上https:www.youtube ... [详细]
  • 初始化初始化本地空版本库,仓库,英文名repositorymkdirtest&&cdtestgitinit克隆项目到本地gitclone远程同 ... [详细]
  • 修正我的GitHub commit 数据
    早晨上班,滴滴搭车里,我在掘金这个帖子看到大家晒自己的Github活跃记录,我也晒了下自己的记录。不过太少了。有遗漏的commits状况这也让我知道,自己觉得自己很忙的,实际上提交 ... [详细]
  • Git GitHub多人协作
    在学校做一个小项目需要多人协作,就用到了gitHub,百度了一下多数写得乱七八糟或者支离破碎,于是总结了一下自己的步骤如下,第一次使用GitHUb,哪里不对望大神指出一.前期准备: ... [详细]
  • 前言本篇为大家总结社区多人合作常见的场景和对应的git操作命令。本篇非新手教程,阅读本篇前需具备Git基础知识。Git入门教程请参考https://www ... [详细]
  • git向远程仓库提交遇到的各种坑
    **码云***gitinit初始化本地仓库gitinit*gitremoteaddorigingitgithub.com:xueqinngchennLocal-agent.git将 ... [详细]
  • 如何在vscode中使用GitLab我同广大码友们一样,好不容易赶上了个节假日,回到家一顿安排,可屁股还没坐热就接到线上紧急BUG需要修复 ... [详细]
  • github:https:github.comfroghuiyolandaIO模型和多线程模型实现多线程设计的几个考虑在我们的设计中,mainre ... [详细]
  • 1.利用node实现页面实时更新,主要 ... [详细]
  • 电信网为不能访问联通服务器的网站_老板说网站慢,我们总结了三大阶段提升性能...
    作者:李平来源:https:www.cnblogs.comleefreemanp3998757.html前言在前一篇随笔《大型网站系统架构的演化》中&# ... [详细]
  • 1、获取远程供应商的repo镜像repoinit--mirror-ussh:$username$host_name:29418manifests-bxx_branch--repo ... [详细]
  • 记一次git的版本回退
    背景本地有个项目已经修改了很久(是自己的小项目不是公司的),文件挺多的,还有大量的log文件。一些资源文件是中文名,工作区修改后使用了命令gitadd.本来在.gitignore文 ... [详细]
author-avatar
陈哲瑋66832
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有