一、删除远程仓库上被忽略的文件

由于种种原因,一些本应该被忽略的文件被我们误操作提交到了远程仓库了。那么我们该怎么删除这些文件呢?

以误提交了.idea目录为例,我们可以通过下面的步骤处理:

1)我们首先应该清除暂存区的.idea文件,执行命令

# -r代表删除的是文件或者文件夹   --cached 只清除暂存区不清除工作区的
git rm -r --cached .idea

2)在 .gitignore 文件,添加需要忽略的文件。

.idea

之后在提交,就会删除.idea相关文件

git commit -m '提交信息'
git push

git rm 与 git rm --cached 的区别

git rm : 同时从工作区暂存区删除文件。即本地的文件也被删除了。

git rm --cached : 从暂存区删除文件。但是本地文件还存在,只是不希望这个文件被版本控制。

上面的 .idea文件 显然我自己工作区是不能删除的,只能删除暂存区,所以需要加上 --cached

如图

二、代码开发一半,有新任务了

当你正在巴拉巴拉开发某个需求的时候,你只完成了一半。这时,你又接到了另外一个需求,急需进行开发,之前那个需求可以先放一放。你又不想把它 git commit 提交到版本库,也就是说工作区或者暂存区中有一些你并不想提交到版本库的代码。

这个时候又该怎么办呢?

你就可以使用 git stash 命令来解决这个问题。

  1. 首先,将工作区暂存区中的修改,存储到堆栈
# -u 表示还要存储工作区中新增的文件,如果不加u只会存储工作区中已经存在的文件的修改
git stash save -u "需求 a 只完成了一半"

这样,工作区和暂存区就都干净了。

我们也可以查看堆栈中的 stash 列表。(由于我们只 git stash 存储了一次,故堆栈中只有一个 stash)

$ git stash list
stash@{0}: On main: 需求 a 只完成了一半

也可以查看,stash中存了哪些内容

git stash show

2) 然后,就可以在当前的 dev 分支中,优先完成需求 b

如果需求 b 已开发完成,就将其提交到版本库。

git add .
git commit -m "需求 b 已完成"
# 推送到远程的 dev 分支
git push origin dev

3) 最后,我们将堆栈中的 stash 弹出,应用到当前的工作区

git stash pop

继续完成需求 a 中未完成的工作。如果需求 a 也完成了,也将其提交到版本库。

git add .
git commit -m "需求 a 也完成"
# 推送到远程的 dev 分支
git push origin dev

这就大功告成。

三、git pull代码冲突

当你提交代码的时候,想先 pull一下代码时你发现

$ git pull
error: Your local changes to the following files would be overwritten by merge:
src/main/java/com/open/demo/beans/AppReqParmVO.java
Please commit your changes or stash them before you merge.
Aborting

很明显你本地修改的代码与他人修改提交的有冲突了。文件都告诉你了 AppReqParmVO.java

如何解决?

1)先把本地代码存储起来

git stash

2)然后再去pull远程代码

$ git pull
Updating 5b82c67..3d844c3
Fast-forward
src/main/java/com/open/demo/beans/AppReqParmVO.java | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

发现已经不报错了,能够正常 pull下来。

3)最后再把本地存储的代码释放出来

$ git stash pop
Auto-merging src/main/java/com/open/demo/beans/AppReqParmVO.java
CONFLICT (content): Merge conflict in src/main/java/com/open/demo/beans/AppReqParmVO.java

释放出来,这里也告诉你有冲突,然后手动解决下冲突,就可以正常提交了。

四、合并分支发生的冲突

上面的问题是同一分支,拉取代码引起的冲突,而这里是在两个分支进行合并的时候,出现了冲突。

比如现在有两个分支,你在dev修改了一个文件后提交成功,而master分支也改了同一个文件也提交成功了,这个时候当你将dev合并到master的时候,你发现合并不了,出现冲突了,这种问题实际开发中也挺常见的。

这里在dev合并到master发生冲突

1)、从dev切到master分支

git checkout master

2)、合并dev

git merge dev

如果有冲突那么就会告诉你哪些文件冲突

$ git merge dev
Auto-merging src/main/java/com/open/demo/beans/AppReqParmVO.java
CONFLICT (content): Merge conflict in src/main/java/com/open/demo/beans/AppReqParmVO.java
Automatic merge failed; fix conflicts and then commit the result.

那你只需找到当前冲突文件,解决冲突即可。

<<<<<<< HEAD
private final long serialVersionUID = -1206184202179044275L;
=======
private long serialVersionUID = -1206184202179044275L;
>>>>>>> dev

修改完重新提交就可以了。

五、master修改代码,推送到dev

你在master修改代码,却需要把修改后代码推送到dev远程分支上

1)、在master上

   git add .
git commit -m "本次提交说明"

2)、切换到dev分支

git checkout dev

3)、合并master

git merge master

4)、推送到主仓库

git push

如果dev分支提交代码 需要重新 add 和 commit。

声明: 公众号如需转载该篇文章,那麻烦在文章的头部 声明是转至公众号: 后端元宇宙。尊重作者辛苦劳动果实嘛。同时也可以问本人要该文章markdown原稿和原图片。其它情况一律禁止转载哦!

Git五个常见问题及解决方法的更多相关文章

  1. NHibernate常见问题及解决方法

    NHibernate常见问题及解决方法 曾经学过NHibernate的,但是自从工作到现在快一年了却从未用到过,近来要巩固一下却发现忘记了许多,一个"in expected: <end ...

  2. C#用ado.net访问EXCEL的常见问题及解决方法

    C#用ado.net访问EXCEL的常见问题及解决方法,除了像sql server,access常见的数据库,其实Excel文件也可以做为数据库访问. ado.net访问excel的实例: OleDb ...

  3. [git push] rejecteded 问题的解决方法

    错误信息: hint: Updates were rejected because a pushed branch tip is behind its remote hint: counterpart ...

  4. Nacos 常见问题及解决方法

    Nacos 开源至今已有一年,在这一年里,得到了很多用户的支持和反馈.在与社区的交流中,我们发现有一些问题出现的频率比较高,为了能够让用户更快的解决问题,我们总结了这篇常见问题及解决方法,这篇文章后续 ...

  5. git常见问题及解决方法

    简介 由于在git使用过程中会出现各种各样的问题,因此本文将常见的问题记录下来并提供相应的解决方案,方便后续查找. git pull问题: There is no tracking informati ...

  6. 安装scrapy框架的常见问题及其解决方法

    下面小编讲一下自己在windows10安装及配置Scrapy中遇到的一些坑及其解决的方法,现在总结如下,希望对大家有所帮助. 常见问题一:pip版本需要升级 如果你的pip版本比较老,可能在安装的过程 ...

  7. python网络爬虫(1)——安装scrapy框架的常见问题及其解决方法

    Scrapy是为了爬取网站数据而编写的一款应用框架,出名,强大.所谓的框架其实就是一个集成了相应的功能且具有很强通用性的项目模板. 其实在Linux和 Mac安装,就简单的pip命令即可: pip i ...

  8. 浅谈Excel开发:九 Excel 开发中遇到的常见问题及解决方法

    Excel开发过程中有时候会遇到各种奇怪的问题,下面就列出一些本人在开发中遇到的一些比较典型的问题,并给出了解决方法,希望对大家有所帮助. 一 插件调试不了以及错误导致崩溃的问题 在开发机器上,有时可 ...

  9. windows python flask上传文件出现IOError: [Errno 13] Permission denied: 'E:\\git\\test\\static\\uploads'的解决方法

    在浏览器中输入时,出现IOError: [Errno 13] Permission denied: 'E:\\git\\test\\static\\uploads' http://127.0.0.1: ...

随机推荐

  1. zuul过滤器filter 的编写

    通过上一节(zuul的各种配置)的学习,我们学会了zuul路由的各种配置,这一节我们来实现一下zuul的过滤器功能.那么为什么需要用到zuul的过滤器呢?我们知道zuul是我们实现外部系统统一访问的入 ...

  2. CSP/S 2020 退役记

    上一次的AFO记 上上次的AFO记 Day -INF 一条咸鱼的垂死挣扎. RP+=INF Day 0 出发辣. 早上来到机房,带上了准备的面包和泡面....然而后来嫌太占地方就没拿...草了. 而且 ...

  3. ClickHouse实战

    1.概述 最近有被留言关于ClickHouse的使用问题,今天笔者将为大家分享一下ClickHouse的安装细节和使用方法. 2.内容 首先安装环境如下所示: Linux:CentOS7 ClickH ...

  4. switch中case...用法-c语言

    ... 表示范围 case 0...4;   // error case 5 ... 9; // ok eg 1: char ch = 4; switch(ch) { case 1: printf(& ...

  5. hdu 4771 Stealing Harry Potter's Precious (BFS+状压)

    题意: n*m的迷宫,有一些格能走("."),有一些格不能走("#").起始点为"@". 有K个物体.(K<=4),每个物体都是放在& ...

  6. Java 中 List 分片的 5 种方法!

    前些天在实现 MyBatis 批量插入时遇到了一个问题,当批量插入的数据量比较大时,会导致程序执行报错,如下图所示: 原因是 MySQL 只能执行一定长度的 SQL 语句,但当插入的数据量较多时,会生 ...

  7. 跟着老猫来搞GO,基础进阶

    回顾一下上一篇博客,主要是和大家分享了GO语言的基础语法,其中包含变量定义,基本类型,条件语句,循环语句.那本篇呢就开始和大家同步一下GO语言基础的进阶. 函数的定义 上次其实在很多的DEMO中已经写 ...

  8. linux堡垒机下定位日志文件内容

    查找关键词grep 命令: grep '关键字' 文件 --color 功能:搜素文件内容 语法: grep [-iv] 关键字 文件 -i 不区分大小写 -v 忽略指定字符串 -n 显示行号 -C ...

  9. SpringCloud升级之路2020.0.x版-31. FeignClient 实现断路器以及线程隔离限流的思路

    本系列代码地址:https://github.com/JoJoTec/spring-cloud-parent 在前面一节,我们实现了 FeignClient 粘合 resilience4j 的 Ret ...

  10. 【GIS】GeoServer服务Authkey配置记录

    特别感谢:https://www.cnblogs.com/HandyLi/p/8624507.html 1.服务受控配置 2.授权方式 3.Url模式配置 4.Authkey密钥配置 5.使用 在wm ...