zoukankan      html  css  js  c++  java
  • git学习之本地分支与远程分支

    Git是目前最先进的分布式版本控制系统,常被用于代码版本管理。在实际使用中,分支是Git一个十分常用的特性,相较于其他版本控制系统(Version Control System, VCS ),git的分支管理十分轻量且快速。这主要得益于其底层的设计,很多旧的VCS的分支是对某个版本的整个拷贝,因此新增、删除、更改分支的速度十分缓慢;而Git的分支实际上是一个指向某个版本的指针,对分支的增删改操作就相当于对指针的增删改,因此十分快速轻量。

    git是分布式的,每一份clone都是一个完整的版本库,因此可以把当前设备上的clone称为本地,而其他设备上的clone称为远程。但在实际协作时,并不会直接与同伴的电脑互为远程来同步代码,而是有一台“中央服务器”作为大家共同的远程,方便存储并交换大家的修改,像github、gitlab、gitee等网站就是提供了这种基于Git的远程托管服务。

    本地分支就是本地Git仓库里的一个指针,指向某个提交

    远程分支是远程仓库里的一个指针,指向远程仓库中的某个提交

    远程引用是本地对远程的引用,包括分支、标签等等。

    远程跟踪分支就是本地对远程分支的引用,是本地的一个指针,一旦进行了网络通信,git就会移动它们以精确地反应远程分支的状态。远程跟踪分支的命名形式为/

    跟踪分支是让本地的一个分支branchA与远程跟踪分支origin/branchB关联起来,这样在本地的branchA上执行git push/pull时,git就知道了该推送/拉取远程的哪个分支了。

    常用操作

    1. 新建一个本地分支feature1。即在当前版本上新建一个分支,也就是新增一个指向当前版本的指针
    git branch feature1
    
    1. 切换到feature1分支。改变HEAD的指向至对应的分支;HEAD是git中一个特殊的指针,它永远指向本地的当前活跃分支,因此在本地切换分支就相当于改变HEAD的指向。
    git checkout feature1
    
    1. 新建并切换到分支feature1,操作1和2可以合并成一个步骤
    git checkout -b feature1
    
    1. 还可以将feature1推送到远程
    git push origin feature1
    

    这样远程就会新增一个名为feature1的分支,并且本地的feature1会自动跟踪远程的feature1

    5.如果不想让远程的分支也命名为feature1

    git push origin feature1:feature1_o
    

    这个命令意为将本地的feature1分支,推送到远程,在远程的分支名为feature1_o,并跟踪之

    可以发现上个命令其实是git push origin feature1:feature1的简化

    1. 合并分支。在feature1上做了一些修改提交后,还可以将提交merge到主分支
    git checkout master  // 先将当前分支切换为master
    git merge feature1 // 再将feature1合并进当前分支
    

    合并feature1上的提交后,如果想将这些提交同步到远程的master,则可以执行 git push origin master将本地合并的提交推送到远程

    1. 在feature1分支合并后,还可以再删除分支feature1
    git branch -d feature1
    
    1. 如果未执行合并便删除分支,git会提示错误error:分支'feature1' 没有完全合并,如确定要删除,可使用-D强制删除
    git branch -D feature1
    
    1. 同样也可以删除远程分支
    git push origin :feature1_o
    

    这里其实运用了个小技巧,将本地的“空”推送到远程的feature1_o分支,也就是删除了远程feature1_o分支

  • 相关阅读:
    java基础1
    display:inline
    运用<ul><li>做导航栏
    ul和li 基本用法分析(这里主要想学习怎么用在导航栏中)
    转换(旋转)transform
    典型相关分析
    相关性模型-相关系数
    拟合算法
    插值算法
    评估类模型之优劣解距离法Topsis模型
  • 原文地址:https://www.cnblogs.com/nuannuan7362/p/13512753.html
Copyright © 2011-2022 走看看