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

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

以误提交了.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. Vulnstack内网靶场3

    Vulnstack内网靶场3 (qiyuanxuetang.net) 环境配置 打开虚拟机镜像为挂起状态,第一时间进行快照,部分服务未做自启,重启后无法自动运行. 挂起状态,账号已默认登陆,cento ...

  2. 最短路计数(SPFA× Dijkstra√)

    题目描述 给出一个n个顶点m条边的无向无权图,顶点编号为1−n.问从顶点1开始,到其他每个点的最短路有几条. 输入格式 第一行包含2个正整数n,m,为图的顶点数与边数. 接下来M行,每行2个正整数x, ...

  3. Codeforces Round #735 (Div. 2)

    这次的cf依旧掉分..... A题和B题在不懈死磕下瞎搞出来了,不过还是被C题卡住了... C. Mikasa 简述题意就是给定n和m,让n^0,n^1,n^2...,n^m,求着m+1个数中没有出现 ...

  4. P4430 小猴打架

    P4430 小猴打架 题目意思就是让你求,在网格图中(任意两点都有边)的生成树的个数(边的顺序不同也算不同的方案). 首先我们考虑一个生成树,由于一定有n-1条边,单单考虑添加边的顺序,根据乘法原理, ...

  5. 折腾systemd-nspawn运行centos7

    Archlinux创建Debian/Ubuntu的systemd-nspawn容器是很简单的,因为有debootstrap软件.某天我突然想装个centos7玩玩,搜了半天没发现有什么类似于deboo ...

  6. pip 常用命令小结

    pip 常用命令小结 pip这个工具我们经常会用到,毕竟python 是一门以第三方库庞大而著名的编程语言,所以我们总会用pip 安装一些依赖库,当然这只是pip 最常用的一个命令,下面就来介绍一下 ...

  7. IDEA Dao层快速跳转Mapper.xml 文件的插件

    1.Idea 窗口→File→Setting→Plugins, 2.搜索 Free MyBatis plugin, install,等待安装完成后,Restart IDEA .

  8. mybatis中<![CDATA[]]>和转义字符

    在使用mybatis 时我们sql是写在xml 映射文件中,如果写的sql中有一些特殊的字符的话,在解析xml文件的时候会被转义,但我们不希望他被转义,所以我们要使用<![CDATA[ ]]&g ...

  9. 9组-Ahlpa-6/3

    一.基本情况 队名:不行就摆了吧 组长博客:https://www.cnblogs.com/Microsoft-hc/p/15546622.html 小组人数: 8 二.冲刺概况汇报 卢浩玮 过去两天 ...

  10. ES6--ES12笔记整理(1)

    一.let const 五个共同特点 不允许重复声明 块级作用域 不存在变量提升 不影响作用域链 暂时性死区---在代码块内,使用let/const命令声明变量之前,该变量都是不可用的.这在语法上,称 ...