窦娥被冤,六月飞霜。今天我两次遇到git被冤枉的情况,要是其它人也遇到这种情况导致git使用量缩小,那也要六月飞霜了。

git第一次被冤枉是同事以为git的版本管理有问题。事情是这样的,同事提交新版本后,我也提交了一个版本。然后他不小心拉取了代码,他想回滚的时候,发现回滚不到他那个版本了。因为他发现他今天13点钟提交的版本中,包含我前两天提交的若干版本库。但其实这些版本是我今天14:00提交到git服务器的,之前是存储在我本地版本库中。同事很绝望,他要发布他那个经过测试的版本,他看log的版本,认为回滚到他那个版本,也包含我14:00提交,但在两天或一天前已经提交到本地版本库的版本。但虽然git是这样显示,但我这些版本是在他的版本之后的,我直接帮他回滚,他需要的版本出来了。不过git展示的方式也容易让人误解。

第二次情况也是在今天碰到。今晚技术群里突然有人说十几天的工作成果没了,他快要崩溃了。我了解了情况是他都提交到了本地,但还没提交到服务器,回滚到之前的版本后,再回不到最近一次版本了。连log都没了那些版本。经过一番劝解,他终于打上git reflog命令,再用git reset --HARD HEAD@{版本号},恢复到了他需要的版本。

在此本人也记录一下git的pull操作:

git fetch origin master:tmp //从远程仓库master分支获取最新,在本地建立tmp分支

git diff tmp //將當前分支和tmp進行對比

git merge tmp //合并tmp分支到当前分支

from:https://www.cnblogs.com/qiu-Ann/p/7902855.html

  或者

git stash  //存储本地修改最新版
git pull //从服务器拉取代码
git stash pop stash@{0} //还原暂存的内容

  如果大佬们有什么git的使用技巧,可以在评论区分享下,或者有什么独到的见解,也可以指导下,谢谢!

为git伸冤(使用git中可能会踩的一些坑)的更多相关文章

  1. Fuel9.0安装openstack过程中所踩过的坑2018最新版

    坑一,安装好后,无法访问Web UI画面 访问https//10.20.0.2:8443无法打开UI画面.首先我们不管以后的步骤,打不开是很不爽的. 解决方法:把下面网卡1,网卡2,网卡3的界面名称都 ...

  2. 那些天,shell脚本中曾经踩过的坑

    前些天,需要实现一个需求,用脚本轮流kill服务器上的进程,观察内存变化情况,并写日志.脚本逻辑不难,但shell脚本好久不用,看过书里的语法都忘得差不多了,中间踩了不少的坑,特此记录一下,留作后续参 ...

  3. git工作中常用命令-工作中踩过的坑

    踩坑篇又来啦,这是我在工作中从git小白进化到现在工作中运用自如的过程中,踩过的坑,以及解决办法. 1.基于远程develop分支,建一个本地task分支,并切换到该task分支 git checko ...

  4. Git知识总览(六) Git分支中的远程操作实践

    前几篇博客陆陆续续的讲了好多关于Git操作的内容,本篇博客仍然也不例外,不过本篇博客的主题是关于git的远程操作的.依照之前博客的风格,我们依然依托于LearningGitBranch中的相关内容来探 ...

  5. 在git多分支repo仓库中彻底清除大文件

    坑的由来 repo中不小心上传了许多测试生成的data.结果可想而知,原本只有代码的仓库突然间变得无比臃肿(或者是慢慢臃肿),从早期的几十MB,迅速飙升至1G. 到底发生了什么 早些时候我对git的原 ...

  6. [.net 面向对象程序设计进阶] (27) 团队开发利器(六)分布式版本控制系统Git——在Visual Studio 2015中使用Git

    [.net 面向对象程序设计进阶] (26) 团队开发利器(六)分布式版本控制系统Git——在Visual Studio 2015中使用Git 本篇导读: 接上两篇,继续Git之旅 分布式版本控制系统 ...

  7. Git知识总览(五) Git中的merge、rebase、cherry-pick以及交互式rebase

    上篇博客聊了<git分支管理之rebase 以及 cherry-pick相关操作>本篇博客我们就以Learning Git中的关卡进行展开.下方列举了LearningGit中的 merge ...

  8. git总结一、工作中常用基础命令

    首先来了解两个概念: 工作区:比如你的项目目录 暂存区:git和其他版本控制系统的不同之处就是有这个暂存区的概念. .git不是工作区,而是git 版本库,在版本库中存放着很多东西,比如暂存区(sta ...

  9. Git Extensions 和 Tortoisegit 到底是什么?Git For VS(Git For Visual Studio)(Visual Studio 中使用 Git)

    前言: 我们使用 Git 作为版本控制的朋友们,一定都熟悉 Git Extensions 和 Tortoisegit 两款工具,但是对于初学者,可能就不那么了解了. 当然如果有幸,你接触过 SVN , ...

随机推荐

  1. CentOS 7使用yum快速搭建LAMP环境

    1.安装Apache [root@localhost ~]# yum -y install httpd # 开机自启动 [root@localhost ~]# chkconfig httpd on # ...

  2. mysql5.7.18 初始化和运行

    比如你下载的mysql位于目录:E:\dbms\mysql下 ---该目录下文会用到. 如果你有mysql应用经验,你肯定配置过my.ini文件,比如修改IP或者Port等信息: 如果你从未用过mys ...

  3. Windows 10 UWP 部署

      原文  http://youthlin.com/20151105.html 我们知道VS连接手机可以直接部署到手机里,但平板貌似无法这样干,平板与电脑连接没有丝毫反应……那么想看VS里写的uwp应 ...

  4. Android多线程(二)

    在上一篇中,我简单说了用AsyncTask来完成简单异步任务,但AsyncTask是把所有的异步任务放到一个队列中依次在同一个线程中执行.这样就带来一个问题,它无法处理那些耗时长.需要并行的的任务.如 ...

  5. QT信号槽的六个优点(虽然直接调用函数也可解决问题,但要在具体的函数中传递指针,多对一和解除关系也够麻烦的)

    信号槽是Qt中特有的概念.它使得程序员将不同的object绑定起来,而object对象间并不需要对相互了解. Slots也是普通的c++方法,它们可以是virtual;可以被重载;可以使private ...

  6. Socket2实现tcp端口扫描

    主要的界面如下: 主要代码如下: //对于每一个线程,传过去的参数 typedef struct ThreadParamStruct { CString strIP; //要扫描的IP地址 UINT ...

  7. spring boot单元测试之RestTemplate(一)

    写代码重要,写好的代码准确无误,且符合预期那更是必不可少. spring boot内嵌了专门的单元测试模块——RestTemplate,保证了程序员可以对自己的代码进行及时的测试. 闲言少叙,直接上代 ...

  8. Python|网页转PDF,PDF转图片爬取校园课表~

    import pdfkit import requests from bs4 import BeautifulSoup from PIL import Image from pdf2image imp ...

  9. SpringCloud Sleuth入门介绍

    案例代码:https://github.com/q279583842q/springcloud-e-book 一.Sleuth介绍   为什么要使用微服务跟踪?它解决了什么问题? 1.微服务的现状? ...

  10. 【通过ssh oracle11g安装】centos6静默安装oracle11g

    转载链接:https://blog.csdn.net/u011391839/article/details/76566316 根据实际情况略作调整~ 博主参考了以上链接成功进行安装,列一下自己遇到的坑 ...