Git教程学习(四)
12. 分支管理场景
多人协同工作时,你在优化代码X,需要较长时间才能完成,未完成之前会影响整体代码的使用.于是写完的代码不能提交到版本库,提交就会影响别人使用整体的代码.不提交你就失去了git的版本管理功能.
于是需要分支,为你正在修改的代码建立分支,别人看不到.而你在自己的分支上工作,最后完成再合并到原来的分支
13. 创建与合并分支
13.1. 场景
在Git中,版本控制是靠指针.每个分支都有一个专用的指针.同时有一个HEAD指针指向主版本.实现的时候HEAD指针实际上是指向分支指针的,再由分支指针指向分支.每次有commit就相当于有了新的分支版本.但是一个分支的不同版本只有一个分支指针.
建立新分支其实就是新建了一个分支指针X并把HEAD指向这个分支指针,这样你的修改就都在这个分支上而不会影响主版本A的修改.
在完成修改之后再把分支X和原主版本A合并
13.2. 创建新分支
$ git checkout -b dev
Switched to a new branch 'dev' 相当于
$ git branch dev
$ git checkout dev
Switched to branch 'dev'
13.3. 查看所有分支(其中*对应的就是HEAD指向的当前版本
$ git branch
* dev
master
这时修改文件,add commit之后修改的就是生成了dev分支的新版本.不会影响master
13.4. 切换分支
$ git checkout master
Switched to branch 'master'
将当前分支变成master,dev依然存在
13.5 合并dev与master
$ git merge dev
Updating d17efd8..fec145a
Fast-forward
readme.txt | +
file changed, insertion(+)
将dev与当前HEAD指向的版本库合并.目测这种合并是选择了两个分支中最新的内容.
13.6. 删除分支
$ git branch -d dev
Deleted branch dev (was fec145a).
Git教程学习(四)的更多相关文章
- Git教程学习(一)
教程来自: Git教程(廖雪峰的官方网站) 学习Git的基本内容,对教程内容进行理解并脱水 1. Git简介 2. 安装Git 1. ubuntu上安装Git $ sudo apt-get insta ...
- Git教程学习(二)
教程来自: Git教程(廖雪峰的官方网站) 主要命令: $ git log #查看已提交内容 $ git log --pretty=oneline #查看已提交内容(紧凑版) $ git reset ...
- Git-第四篇廖雪峰Git教程学习笔记(3)远程仓库,克隆远端库
1.本次连接的是gitHub仓库. 1>创建SSH Key. ssh-keygen -t rsa -C "youremail@example.com" lfy@lfy-PC ...
- 廖雪峰 Git教程学习笔记 原文 http://www.liaoxuefeng.com/
一 .集中式与分布式 先说集中式版本控制系统,版本库是集中存放在中央服务器的,而干活的时候,用的都是自己的电脑,所以要先从中央服务器取得最新的版本,然后开始干活,干完活了,再把自己的活推 ...
- Git 教程(四):标签和其他
标签管理 发布一个版本时,我们通常先在版本库中打一个标签(tag),这样,就唯一确定了打标签时刻的版本.将来无论什么时候,取某个标签的版本,就是把那个打标签的时刻的历史版本取出来.所以,标签也是版本库 ...
- Git教程学习(五)
14. 解决冲突 14.1. 场景 当分支A和分支B在同一个文件上都有修改时会出现冲突.常见的情况是从master分支的基础上生成了新分支dev,然后在dev上进行了修改并add&commit ...
- Git教程学习(三)
主要命令: $ git checkout -- readme.txt #使用暂存区或版本库中最新的版本替换工作区版本 $ git reset HEAD readme.txt # 撤消指定文件的add操 ...
- 廖雪峰git教程学习笔记3
commit是一串不便记忆的数字,为了方便记忆,引入tag,tag就跟HEAD一样,就像一个指针,指向commit,且指向是不能变得,一个commit就有一个tag 给当前分支下的当前commit打上 ...
- 廖雪峰git教程学习笔记2
本地git仓库和github仓库之间的传输是通过SSH加密的,所以: 注册GitHub账号 创建SSH key.在用户主目录下,看看有没有.ssh目录,如果有,再看看这个目录下有没有id_rsa和id ...
随机推荐
- java07接口与继承动手动脑
1.源代码: package Work; class A{ public A(){ System.out.println("Class A."); } public A(Strin ...
- Pyinstaller打包附带DLL、图标和压缩EXE方法
Pyinstaller打包附带DLL.图标和压缩EXE方法 转载: https://blog.csdn.net/xinyingzai/article/details/80282856 目的 ...
- 最全Python爬虫总结(转载)
[html] view plain copy 最近总是要爬取一些东西,索性就把Python爬虫的相关内容都总结起来了,自己多动手还是好. (1)普通的内容爬取(2)保存爬取的图片/视频和文件和网页(3 ...
- php手撸轻量级开发(一)
聊聊本文内容 之前讲过php简单的内容,但是原生永远是不够看的,这次用框架做一些功能性的事情. 但是公司用自己的框架不能拿出来,用了用一些流行的框架比如tp,larveral之类的感觉太重,CI也不顺 ...
- .net Core2.2 WebApi通过OAuth2.0实现微信登录
前言 微信相关配置请参考 微信公众平台 的这篇文章.注意授权回调域名一定要修改正确. 微信网页授权是通过OAuth2.0机制实现的,所以我们可以使用 https://github.com/china- ...
- 4712: 洪水 基于链分治的动态DP
国际惯例的题面:看起来很神的样子......如果我说这是动态DP的板子题你敢信?基于链分治的动态DP?说人话,就是树链剖分线段树维护DP.既然是DP,那就先得有转移方程.我们令f[i]表示让i子树中的 ...
- BZOJ.2229.[ZJOI2011]最小割(最小割树)
题目链接 题意:给定一张无向图,求任意两点之间的最小割. 在所有点中任选两个点作为源点\(S\).汇点\(T\),求它们之间的最小割\(ans\),并把原图分成两个点集\(S',T'\),用\(ans ...
- 用单片机控制LED灯(项目)
#include <reg52.h> #define uchar unsigned char sbit LED_RED = P2^; sbit LED_GREEN = P2^; sbit ...
- bootStrap中的ul导航4
<div class="container"> <br/> <ul class="nav nav-pills nav-justified&q ...
- Need help with git commit - Error : "error: cannot run gpg: No such file or directory error: could not run gpg. fatal: failed to write commit object"support (self.git)
参考:https://www.reddit.com/r/git/comments/4jflp1/need_help_with_git_commit_error_error_cannot_run/ It ...