文档章节

Git使用的一个注意事项--删除文件后的rebase/merge导致文件丢失

zgw06629
 zgw06629
发布于 2015/04/29 19:11
字数 227
阅读 1392
收藏 0
点赞 0
评论 0

代码衍合过程中发现的一个问题:

只要在某个分支A中删除了某个文件(如file1)且另外一个分支B也包含此文件,则分支B rebase或merge 分支A时会丢失该文件。

如下所示:

$ mkdir temp
$ cd temp
$ touch file1
$ git init
$ git add .
$ git commit -m 'first commit in master'
$ ls
file1
$ git checkout -b bran-1
$ git checkout -b bran-2
$ git checkout bran-1
$ ls
file1
$ rm file1
$ touch file2
$ git add --all
$ git commit -m 'first commit in bran-1'
[bran-1 709dc71] first commit in bran-1
 1 file changed, 0 insertions(+), 0 deletions(-)
 rename file1 => file2 (100%)
$ git checkout bran-2
$ touch file3
$ ls
file1  file3
$ git add .
$ git commit -m 'first commit in bran-2'
$ git rebase bran-1
#file1丢失了
$ ls
file2  file3

鉴于以上的结论,建议在开发过程中应该避免删除操作。除非确定所有分支都不会再用到。

© 著作权归作者所有

共有 人打赏支持
zgw06629
粉丝 15
博文 54
码字总数 30471
作品 0
海淀
程序员
Git Rebase 操作的分析与整理

文前说明 作为码农中的一员,需要不断的学习,我工作之余将一些分析总结和学习笔记写成博客与大家一起交流,也希望采用这种方式记录自己的学习之旅。 本文仅供学习交流使用,侵权必删。 不用...

羽杰 ⋅ 2017/04/23 ⋅ 0

git stash与git rebase

git stash 先看命令行 git stash - -help的帮主页面 也就是储藏你在当前工作的一些代码,状态。比如我在工作中常用的。 每次从远程拉代码的时候,拉完代码之后需要在本地将本地的一些配置应用...

avery1 ⋅ 06/11 ⋅ 0

Egit - Cannot checkout now - stuck in rebase state Ask

使用rebase时发生冲突,解决冲突后不知道怎么进行下去,下面链接很好的解决方法 https://stackoverflow.com/questions/34000319/egit-cannot-checkout-now-stuck-in-rebase-state 这是在sta...

wangwei2134 ⋅ 04/13 ⋅ 0

Git自学成才——git merge

概念 git merge 和 git rebase 是使用率非常高的两条指令 本文对git merge的日常使用场景做一个梳理,git rebase请看 Git自学成才——rebase完整版 假设我有一个开发分支dev,有一个主干分支...

wIsper ⋅ 06/19 ⋅ 0

Git - 分支间更新、同步与提交小技巧

1 Fork 仓库更新 Fork 后经过一段时间容易落后原仓库一些提交,这时需要更新Fork仓库进行同步。 原仓库为 Oriremote 主分支为 master 添加原仓库命名为ori,并拉取: $ git remote add ori h...

Rew_ ⋅ 06/18 ⋅ 0

架构师,你需要了解的git知识都在这里了

Git 简介 Git 的诞生: Linus(Linux之父)花了两周时间自己用C写了一个分布式版本控制系统,这就是Git!一个月之内,Linux系统的源码已经由Git管理了! 几个概念: 工作区、版本库、暂存区如下...

lemonwater ⋅ 05/16 ⋅ 0

几张图让你彻底弄懂git工作流(二) ——git分支

上篇文章已经说了Git简史以及Git基础,那么这篇文章简单总结下Git分支 Git分支 为了理解 Git 分支的实现方式,我们需要回顾一下, Git保存的不是文件差异或者变化量,而只是一系列文件快照. G...

Li_小点 ⋅ 05/28 ⋅ 0

Git 处理分支冲突 rebase

rebase 比如你创建了分支开发新功能,另一个人fork了项目做了提交。现在如果那个提交和你相关,那么需要把那个提×××并到本地, 这时就会使用 rebase或者merge rebse黄金法则: 不要在公共...

滕先生 ⋅ 04/26 ⋅ 0

代码检视工具Gerrit的日常使用

1, Gerrit是什么? Gerrit实际上一个Git服务器,它为在其服务器上托管的Git仓库提供一系列权限控制,以及一个用来做Code Review是Web前台页面。当然,其主要功能就是用来做Code Review。 2,...

SuShine ⋅ 05/22 ⋅ 0

package-lock冲突解决方案

有同学提到说package-lock.json文件很容易产生冲突,我们不妨先放下这个问题,先来看看为什么我们需要package-lock.json. package-lock.json简介 package-lock.json is automatically gener...

猫仔粮 ⋅ 05/27 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

个人博客的运营模式能否学习TMALL天猫质量为上?

心情随笔|个人博客的运营模式能否学习TMALL天猫质量为上? 中国的互联网已经发展了很多年了,记得在十年前,个人博客十分流行,大量的人都在写博客,而且质量还不错,很多高质量的文章都是在...

原创小博客 ⋅ 39分钟前 ⋅ 0

JavaScript零基础入门——(十一)JavaScript的DOM操作

JavaScript零基础入门——(十一)JavaScript的DOM操作 大家好,欢迎回到我们的JavaScript零基础入门。最近有些同学问我说,我讲的的比书上的精简不少。其实呢,我主要讲的是我在开发中经常会...

JandenMa ⋅ 今天 ⋅ 0

volatile和synchronized的区别

volatile和synchronized的区别 在讲这个之前需要先了解下JMM(Java memory Model :java内存模型):并发过程中如何处理可见性、原子性、有序性的问题--建立JMM模型 详情请看:https://baike.b...

MarinJ_Shao ⋅ 今天 ⋅ 0

深入分析Kubernetes Critical Pod(一)

Author: xidianwangtao@gmail.com 摘要:大家在部署Kubernetes集群AddOn组件的时候,经常会看到Annotation scheduler.alpha.kubernetes.io/critical-pod"="",以表示这是一个关键服务,那你知...

WaltonWang ⋅ 今天 ⋅ 0

原子性 - synchronized关键词

原子性概念 原子性提供了程序的互斥操作,同一时刻只能有一个线程能对某块代码进行操作。 原子性的实现方式 在jdk中,原子性的实现方式主要分为: synchronized:关键词,它依赖于JVM,保证了同...

dotleo ⋅ 今天 ⋅ 0

【2018.06.22学习笔记】【linux高级知识 14.4-15.3】

14.4 exportfs命令 14.5 NFS客户端问题 15.1 FTP介绍 15.2/15.3 使用vsftpd搭建ftp

lgsxp ⋅ 今天 ⋅ 0

JeeSite 4.0 功能权限管理基础(Shiro)

Shiro是Apache的一个开源框架,是一个权限管理的框架,实现用户认证、用户授权等。 只要有用户参与一般都要有权限管理,权限管理实现对用户访问系统的控制,按照安全规则或者安全策略控制用户...

ThinkGem ⋅ 昨天 ⋅ 0

python f-string 字符串格式化

主要内容 从Python 3.6开始,f-string是格式化字符串的一种很好的新方法。与其他格式化方式相比,它们不仅更易读,更简洁,不易出错,而且速度更快! 在本文的最后,您将了解如何以及为什么今...

阿豪boy ⋅ 昨天 ⋅ 0

Python实现自动登录站点

如果我们想要实现自动登录,那么我们就需要能够驱动浏览器(比如谷歌浏览器)来实现操作,ChromeDriver 刚好能够帮助我们这一点(非谷歌浏览器的驱动有所不同)。 一、确认软件版本 首先我们...

blackfoxya ⋅ 昨天 ⋅ 0

线性回归原理和实现基本认识

一:介绍 定义:线性回归在假设特证满足线性关系,根据给定的训练数据训练一个模型,并用此模型进行预测。为了了解这个定义,我们先举个简单的例子;我们假设一个线性方程 Y=2x+1, x变量为商...

wangxuwei ⋅ 昨天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部