首页
Python
Java
IOS
Andorid
NodeJS
JavaScript
HTML5
【
理解git的分支原理,更好地使用git
】的更多相关文章
理解git的分支原理,更好地使用git
文章内容转载于git-scm. 部分内容涉嫌枯燥 一.git分支概念 几乎每一种版本控制系统都以某种形式支持分支.使用分支意味着你可以从开发主线上分离开来,然后在不影响主线的同时继续工作.在很多版本控制系统中,这是个昂贵的过程,常常需要创建一个源代码目录的完整副本,对大型项目来说会花费很长时间. 有人把 Git 的分支模型称为"必杀技特性",而正是因为它,将 Git 从版本控制系统家族里区分出来.Git 有何特别之处呢?Git 的分支可谓是难以置信的轻量级,它的新建操作几乎可以在瞬间完…
Git合并分支命令参数详解:git merge --ff
今天研究了一下git merge命令常用参数,并分别用简单的例子实验了一下,整理如下: 输入命令git merge -h可以查看相关参数: --ff 快速合并,这个是默认的参数.如果合并过程出现冲突,Git会显示出冲突并等待手动解决 --ff-only 只有能快速合并的情况才合并.如果合并过程出现冲突,Git会自动abort此次merge --no-ff 不使用快速合并.会生成一次新的提交记录,这个记录只是标识在这里进行了一次merge操作(目前还没想到应用场景) --squash 压缩…
git切换分支导致代码丢失找回(git reflog找回错误的重置)
1.使用git reflog查看日志 2.切换到丢失的分支 3. 创建一个临时分支 如(diff),并切换到dev(原分支),然后合并diff到dev分支 4.查看状态 5.强制合并,然后提交到dev…
深入理解Git的实现原理
0.导读 本文适合对git有过接触,但知其然不知其所以然的小伙伴,也适合想要学习git的初学者,通过这篇文章,能让大家对git有豁然开朗的感觉.在写作过程中,我力求通俗易懂,深入浅出,不堆砌概念.你能够从本文中了解以下知识: Git是什么 Git能够解决哪些问题 Git的实现原理 请注意,本文的阐述逻辑是:Git是什么——>Git要解决的根本问题是什么——>git是如何解决这些问题的. 1.Git是什么? Git是一种分布式版本控制系统. 有人要问了,什么是“版本控制”?Git…
Git的分支管理
0.引言 本文参考最后的几篇文章,将git的分支管理整理如下.学习git的分支管理将可以版本进行灵活有效的控制. 1.如何建立与合并分支 1.1分支的新建与合并指令 新建分支 newBranch,并进入新分支: $ git checkout -b newBranch 相当于: $ git branch newBranch $ git checkout newBranch 合并分支 mergeBranch,例如要把mergeBranch,合并入master: $ git checkout mast…
第二篇:版本控制git之分支
有人把 Git 的分支模型称为它的`‘必杀技特性’',也正因为这一特性,使得 Git 从众多版本控制系统中脱颖而出. 为何 Git 的分支模型如此出众呢? Git 处理分支的方式可谓是难以置信的轻量,创建新分支这一操作几乎能在瞬间完成,并且在不同分支之间的切换操作也是一样便捷. 与许多其它版本控制系统不同,Git 鼓励在工作流程中频繁地使用分支与合并,哪怕一天之内进行许多次. 理解和精通这一特性,你便会意识到 Git 是如此的强大而又独特,并且从此真正改变你的开发方式. 分支操作 1.git b…
Git提交分支
Git提交分支操作 1.git add 命令告诉 Git 开始对这些文件进行跟踪 git add . 2.然后提交 git commit -m'这是注释信息' 3.git pull命令用于从另一个存储库或本地分支获取并集成(整合).作用是:取回远程主机某个分支的更新,再与本地的指定分支合并 git pull 4.git push在使用git commit命令将修改从暂存区提交到本地版本库后,只剩下最后一步将本地版本库的分支推送到远程服务器上对应的分支了 git push 5.打开自己github…
图解git,用手绘图带你理解git中分支的原理和应用
大家好,今天我们来聊git当中一个非常非常重要的特性,就是branch. git branch可以说是git当中最重要的概念了,甚至没有之一.因为git最重要的使用场景就是协同开发,大家一起在一个项目当中开发不同的功能.正是由于有了分支的概念,可以让大家在开发的时候互不影响.如果没有这个功能,git的其他功能做的再好,可能都没有用. 所以某种程度上可以理解为,学git最重要的就是学习分支的相关内容.当然分支的相关内容和命令非常多,我们想要瞬间全部都学会显然不太现实.但对这个概念有一些理解,懂得一…
git合并分支理解和常用命令的总结
原文参考:https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000 工作区和暂存区 工作区有一个隐藏目录 .git是git版本库.git版本库里有stage暂存区. git命令 git版本库的添加 git add 将工作区内容添加到暂存区. git commit 将暂存区内容添加到分支(如master). git 查看状态:git status git撤销修改:git checko…
Git(四):理解和使用分支
分支是Git的核心内容之中的一个,本章将介绍分支的一些知识,这里将继续使用前面创建的版本号库. 假设你跳过了前面章节直接进入本章.能够从Github上克隆这个版本号库: $ git clone git://github.com/tswicegood/mysite-chp4.git 什么叫分支 我们为什么要使用分支? 1. 在项目功能任务较多的情况下,能够利用分支进行功能点的切分.2. 在团队协作的情况下,假设Git仅仅使用一条版本号演进的轨迹.那么这条轨迹中代码将可能很混乱,很多成员会…
Git 基础和原理
Git 究竟是怎样的一个系统呢? 请注意接下来的内容非常重要,若你理解了 Git 的思想和基本工作原理,用起来就会知其所以然,游刃有余. 在开始学习 Git 的时候,请努力分清你对其它版本管理系统的已有认识,如 Subversion 和 Perforce 等:这么做能帮助你使用工具时避免发生混淆. Git 在保存和对待各种信息的时候与其它版本控制系统有很大差异,尽管操作起来的命令形式非常相近,理解这些差异将有助于防止你使用中的困惑. 直接记录快照,而非差异比较 Git 和其它版本控制系统(包括…
git传输协议原理
git精神:distributed-is-the-new-centralized 转自:http://git-scm.com/book/zh/v1/Git-%E5%86%85%E9%83%A8%E5%8E%9F%E7%90%86-%E4%BC%A0%E8%BE%93%E5%8D%8F%E8%AE%AE Git 内部原理 - 传输协议 传输协议 Git 可以以两种主要的方式跨越两个仓库传输数据:基于HTTP协议之上,和 file://, ssh://, 和git:// 等智能传输协议.这一节带你快…
git branch 分支
几乎所有的版本控制系统都以某种形式支持分支. 使用分支意味着你可以把你的工作从开发主线上分离开来,以免影响开发主线. 在很多版本控制系统中,这是一个略微低效的过程——常常需要完全创建一个源代码目录的副本.对于大项目来说,这样的过程会耗费很多时间. 有人把 Git 的分支模型称为它的`‘必杀技特性’’,也正因为这一特性,使得 Git 从众多版本控制系统中脱颖而出. Git 处理分支的方式可谓是难以置信的轻量,创建新分支这一操作几乎能在瞬间完成,并且在不同分支之间的切换操作也是一样便捷. 与许多其它…
在git多分支repo仓库中彻底清除大文件
坑的由来 repo中不小心上传了许多测试生成的data.结果可想而知,原本只有代码的仓库突然间变得无比臃肿(或者是慢慢臃肿),从早期的几十MB,迅速飙升至1G. 到底发生了什么 早些时候我对git的原理并不是很了解,只是随着日常使用,终于开始理解git其实是一个指针指向一次提交的对象,当你在各个分支间切换的时候,指针就随之切换,版本也随之更改. 那么,git 是如何做到的能在各个版本间无缝切换的呢.即使long long ago的代码,只要来一句git reset --hard sesd54f5…
Git Flow 分支管理简述
概述 Git 是什么 Git 是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目. Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件. Git 与常用的版本控制工具 CVS, Subversion 等不同,它采用了分布式版本库的方式,不必服务器端软件支持. Git 有哪些特性 直接记录快照,而非差异比较 多数操作仅添加操作 近乎所有操作都是本地执行 时刻保持数据完整性 有关以上特性的详细解释,请查看Pro Git的G…
Git合并分支或者冲突
假设冲突文件是 test/TestCase.php 下面分5种情况讨论. 1.本地不变. 然后远程别人有更新. git pull 这种最简单,没有冲突,本地工作区直接更新 2.我本地修改,但是不add. 然后远程别人有更新,此时 : git pull, git会告诉你: error: Your local changes to the following files would be overwritten by merge: tests/TestCa…
Git应用详解第七讲:Git refspec与远程分支的重要操作
前言 前情提要:Git应用详解第六讲:Git协作与Git pull常见问题 这一节来介绍本地仓库与远程仓库的分支映射关系:git refspec.彻底弄清楚本地仓库到底是如何与远程仓库进行联系的. 一.Git refspec refspec是Reference Specification的缩写,字面意思就是具体的引用.它其实是一种格式,git通过这种格式来表示本地分支与远程分支的映射关系: 在本地仓库创建master分支外的其他两个分支develop和test: 在develop分支上执行git…
代码管理工具 --- git的学习笔记二《git的工作原理》
通过几个问题来学习代码管理工具之git 一.git是什么?为什么要用它?使用它的好处?它与svn的区别,在Mac上,比较好用的git图形界面客户端有 git 是分布式的代码管理工具,使用它是因为,它便于管理,而且可以不借助服务器(不联网)在本地仓库来管理它,svn是集中式的,而且必须联网通过服务器来完成代码的管理,git只会在根目录下放.git文件,svn会在每个目录下放.svn文件(当你添加.svn文件到svn时会报错). 1> SourceTree 下载地址:http://www.so…
引入git flow分支管理
git flow是Vincent Driessen提出了一个分支管理的策略,非常值得借鉴.它可以使得版本库的演进保持简洁,主干清晰,各个分支各司其职.井井有条. 先看下Vincent Driessen提出的分支管理模型图,以便对git flow有个大概的了解. 两种核心分支 主分支(Master):代码库应该有一个.且仅有一个主分支.所有提供给用户使用的正式版本,都在这个主分支上发布.这个分支只能从其它分支合并,不能在这个分支上直接修改.需要注意的是,所有在master上的提交应该标记tag.…
Git branch (分支学习)
以前总结的一些git操作,分享在这里. Git 保存的不是文件差异或者变化量,而只是一系列文件快照. - 列出当前所有分支 git branch <--merge> | <--no-merged> - 创建分支 git branch <branch_name> {[SHA-1]/Tag} - 切换分支 git checkout <branch_name> - 新建并切换到该分支 git checkout -b <new branch-name>…
Git的分支与合并
在Git里面我们可以创建不同的分支,来进行调试.发布.维护等不同工作,而互不干扰.下面我们还是来创建一个试验仓库,看一下Git分支运作的台前幕后: $rm -rf test_branch_proj $mkdir test_branch_proj $cd test_branch_proj $git init Initialized empty Git repository in /home/test/test_branch_proj/.git/ 我们如以往一样,创建一个“readme.txt”文件…
git branch分支管理用法总结
查看分支(远程和本地) 1 查看本地分支: $ git branch 2 查看远程分支: $ git branch -r 3.查看本地和远程分支 $ git branch -a 创建分支 1.创建本地分支 $git branch branchname 2.创建远程分支 $git checkout -b new_branch origin/master 切换分支 $git checkout branchname 合并写法 $git checkout -b branchname 删除分支 本地 $g…
git 远程分支创建与推送
git 远程分支创建与推送 原文地址:http://hi.baidu.com/lingzhixu/blog/item/4a9b830bb08a329fe850cd5b.html 本地分支的创建 本地分支的来源为执行git checkout -b <branch name> 的那个分支 例如现在有两个分支,master和b1 master 分支下有一个commit: commit1: add test1.c b1分支下有两个commit: commit2: add test2.c commi…
git clone分支
有时git clone下来会出现很多branch,更麻烦的是如果主分支没代码那你就只能看到.git目录了.如下面的这个: $ git clonegit://gitorious.org/android-eeepc/mesa.git 发现本地就只有一个.git目录,那么这个时候就需要checkout了. 进入你的本地目录,如这个是mesa,利用 $ git branch –r 查看branch信息(当然你也可以用git show-branch查看,不过有时并不好用),获得如下branch信息: or…
Java进阶(七)正确理解Thread Local的原理与适用场景
原创文章,始自发作者个人博客,转载请务必将下面这段话置于文章开头处(保留超链接). 本文转发自技术世界,原文链接 http://www.jasongj.com/java/threadlocal/ ThreadLocal解决什么问题 由于 ThreadLocal 支持范型,如 ThreadLocal< StringBuilder >,为表述方便,后文用 变量 代表 ThreadLocal 本身,而用 实例 代表具体类型(如 StringBuidler )的实例. 不恰当的理解 写这篇文章的一个原…
通俗化理解Spring3 IoC的原理和主要组件(spring系列知识二总结)
♣什么是IoC? ♣通俗化理解IoC原理 ♣IoC好处 ♣工厂模式 ♣IoC的主要组件 ♣IoC的应用实例 ♣附:实例代码 1.什么是IoC(控制反转)? Spring3框架的核心是实现控制反转(IoC)模式,IoC又叫做依赖注入(DI). 什么是控制反转呢?答案就是"获得依赖对象的过程被反转了",获得依赖对象的过程由自身管理对象变为由IoC容器主动注入,于是控制反转又叫做依赖注入.那么"控制反转"完全就是"依赖注入"咯?其实,我们可以将&quo…
好代码是管出来的——Git的分支工作流与Pull Request
上一篇文章介绍了常用的版本控制工具以及git的基本用法,从基本用法来看git与其它的版本控制工具好像区别不大,都是对代码新增.提交进行管理,可以查看提交历史.代码差异等功能.但实际上git有一个重量级的功能“分支”,git的分支与其它工具的分支不同,git分支的操作完全在本地进行,所以可以快速的创建和切换. 版本控制工具除了对代码进行管理外,实际上它还影响了整个软件编码的工作流程,git因为其分支特性使得开发流程发生了变化,本文将从以下几点来介绍分支和git的工作流程: 版本控制管理分支简介 G…
git知识总结-2.git基本操作之原理说明
0.前言 本文主要对git常用命令的工作原理做一个详细的说明,常用命令主要包括: 1.git add git add相关命令很简单,主要实现将工作区修改的内容提交到暂存区,交由git管理. 2. git commit git commit主要实现将暂存区的内容提交到本地仓库,并使得当前分支的HEAD向后移动一个提交点. 3. git branch 关于分支,大概有展示分支,切换分支,创建分支,删除分支这四种操作. 4. git merge merge命令把不同的分支合并起来.如下图,在实际开发中…
git 远程分支回滚
git代码库回滚: 指的是将代码库某分支退回到以前的某个commit id [本地代码库回滚]: git reset --hard commit-id :回滚到commit-id,讲commit-id之后提交的commit都去除 git reset --hard HEAD~3:将最近3次的提交回滚 [远程代码库回滚]: 这个是重点要说的内容,过程比本地回滚要复杂 应用场景:自动部署系统发布后发现问题,需要回滚到某一个commit,再重新发布 原理:先将本地分支退回到某个commit,删除远程分支…
git branch 分支管理
在多人协作的情况下,master通常是稳定的分支.可以再建一些"develop","testing"等名称的分支.主管master的人做开发的话最好也建立自己的分支. 命令操作 git branch 列出当前已经checkout出来的分支,当前分支前边用星号表示. git branch -a 列出所有本地和远程的分支 开始一项功能的开发工作时,基于某一分支创建分支. 如基于master创建新分支my $ git checkout -b my master Switc…