一、Git提供了文件忽略功能。当对工作区某个目录或者某些文件设置了忽略后,git将不会对它们进行追踪

HELP:如何在IntelliJ IDEA中使用.ignore插件忽略不必要提交的文件

  问题:最近在github做一个项目,每次成生成的log日志文件和本地IDE的.idea/workspace.xml,每次提交说没有跟踪文件,更郁闷的的我的项目有在本地虚拟机,有时候会出现没有权限跟踪文件。

今天特意解决下问题:

这里有详细的学习:https://git-scm.com/book/zh/v2/Git-%E5%9F%BA%E7%A1%80-%E8%AE%B0%E5%BD%95%E6%AF%8F%E6%AC%A1%E6%9B%B4%E6%96%B0%E5%88%B0%E4%BB%93%E5%BA%93

(1) 检查当前文件状态 要查看哪些文件处于什么状态,可以用 git status 命令,可以看出intellij idea 的文件.idea/workspace.xml 也提示没有被跟踪的信息

  

(2)如果已经不幸之前commit workspace.xml 的话,必须执行以下命令:git rm --cached .idea/workspace.xml

  

(3)现在我们通过git .gitignore文件,建立.gitignore文件,在项目根目录下创建一个名为.gitignore的文件(注意文件的前面有个点),用于记录忽略规则

  注:windows下不可以按常规方法新建.gitignore文件,需要在命令行中进行创建:echo >.gitignore,另外git base下的命令如下:touch .gitignore

(4)编写忽略规则(由于IDE比较麻烦,我就直接使用git 客户端进行编辑了),添加的规则如下所示,针对.log为文件和.xml文件进行了忽略规则

  

  更多规则可以连接这里:http://blog.csdn.net/yonnangel/article/details/50115059

(5)再次查看状态,已经不在跟踪的局域了,这说明你现在的工作目录相当干净。换句话说,所有已跟踪文件在上次提交后都未被更改过。

  

(6)总结:这样子就可以避免每次切换不同的分支而导致的都要跟踪一次日志文件和IDE的.idea/workspace.xml 文件(我都是git stash 的)

二、删除远程或者本地的一个文件

  问题:还是上面的原因,因为我以前已经把日志文件提交到了github之上,现在要删除这个文件,以后不要在提交这些无用的文件了

(1)查看远程文件是结果如何删除这个远程文件来

(2)使用 Git rm 命令即可,有两种选择:

  【1】一种是 git rm --cached "文件路径",不删除物理文件,仅将该文件从缓存中删除;

  【2】一种是 git rm --f "文件路径",不仅将该文件从缓存中删除,还会将物理文件删除(不会回收到垃圾桶)

(3)在这里我们使用第一种,

  先执行命令:git rm --cached .idea/workspace.xml 删除缓存文件

  再查看当前工作区装填。操作后的结果如图所示

  

(4)最后直接,提交更新,同时push推送到github远端仓库

  

(5)再次查看git项目log文件,已经被删除掉了

  

错误问题,切换分支

error: Your local changes to the following files would be overwritten by checkout:
.idea/workspace.xml

Git与GitHub学习笔记(三).gitignore文件忽略和删除本地以及远程文件的更多相关文章

  1. git and github学习笔记

    1.git的状态分为working status,stage status和commit status.git diff查看的是working status和 stage status之间的不同,gi ...

  2. eclipse使用git及github学习笔记

    项目托管 1.首先需要在github上建立一个远端仓库  点击Create repository后,会在github上建立相应的git仓库,并会出现如下界面: 复制https或者ssh的仓库地址,远端 ...

  3. Git与GitHub 学习笔记

    以下信息来源于网络资料,并进行整理与精简 Git是目前世界上最先进的分布式版本控制系统,和svn,vss等一样都是进行版本控制的. GitHub是一个软件项目的托管平台,相当于自己建立的 svn服务器 ...

  4. git和github学习笔记

    1. 了解Git和Github 2. 使用Github 3. Git安装和使用 4. Git基本工作流程 5. Git初始化及仓库创建和操作 6. Git管理远程仓库 7. Github Pages ...

  5. Git与GitHub学习笔记(二)提交的一些笔记

    1.合并分支的使用一定要切换到master分支上去合并:git merge company2.切换分支的时候一定要提交干净本地分支的代码,才可以切换分支,否则提示错误信息: 3.这时候我们做的就是提交 ...

  6. Git与GitHub学习笔记(一)如何删除github里面的文件夹?

    按照以下步骤即可(本地删除) 1. git pull you git url2. git checkout 3. rm -r dirName4. git add --all5. git commit  ...

  7. Git与GitHub学习笔记(七)Windows 配置Github ssh key

    前言 SSH是建立在应用层和传输层基础上的安全协议,其目的是专为远程登录会话和其他网络服务提供安全性的保障,用过SSH远程登录的人都比较熟悉,可以认为SSH是一种安全的Shell.SSH登录是需要用户 ...

  8. Git与GitHub学习笔记(八)git如何同时同步提交到码云和GitHub上

    前言: 今天github push代码一直push不上去,打算就备份一份代码带国内开源码云上. Github容易出现的情况是: 国内访问速度比较慢, 如果被墙掉的话,就直接没发使用了 如果开源个PHP ...

  9. Git与GitHub学习笔记(六)使用 Github Pages 管理项目文档

    前言 你可能比较熟悉如何用 Github Pages 来分享你的工作,又或许你看过一堂教你建立你的第一个 Github Pages 网站的教程.近期 Github Pages 的改进使得从不同的数据源 ...

随机推荐

  1. Kosaraju算法、Tarjan算法分析及证明--强连通分量的线性算法

    一.背景介绍 强连通分量是有向图中的一个子图,在该子图中,所有的节点都可以沿着某条路径访问其他节点.强连通性是一种非常重要的等价抽象,因为它满足 自反性:顶点V和它本身是强连通的 对称性:如果顶点V和 ...

  2. C# List left join

    public class Test1 { public int ID { get; set; } public string Name { get; set; } } public class Tes ...

  3. 在WebGL场景中建立游戏规则

    在前三篇文章的基础上,为基于Babylon.js的WebGL场景添加了类似战棋游戏的基本操作流程,包括从手中选择单位放入棋盘.显示单位具有的技能.选择技能.不同单位通过技能进行交互.处理交互结果以及进 ...

  4. DICOM 协议学习笔记之 How Does DICOM Work ?

    How Does DICOM Work ? DICOM有一套自己自己的模型体系,在进行具体介绍之前,首先讲解下DICOM模型: 在DICOM世界当中,所有的包括患者.检查.医学设备等都可以被视为具有不 ...

  5. Teaching Machines to Understand Us 让机器理解我们 之二 深度学习的历史

    Deep history 深度学习的历史 The roots of deep learning reach back further than LeCun’s time at Bell Labs. H ...

  6. mui框架(一)

    1.界面初始化 初始化就是把一切程序设为默认状态,把没准备的准备好. mui框架将很多功能配置都集中在mui.init方法中,要使用某项功能,只需要在mui.init方法中完成对应参数配置即可,目前支 ...

  7. UI Recorder 功能详解

    前言: UI Recorder安装教程见:UI Recorder 安装教程(一).UI Recorder 安装教程(二) 本次着重介绍UI Recorder录制过程中的功能按钮:添加悬停,添加断言,使 ...

  8. 使用ejs模板引擎

    let express = require('express'); let fs = require('fs'); let ejs = require('ejs'); let app = expres ...

  9. Docker(十八)-Docker配置DNS

    Linux系统配置DNS的时候有一个问题,就是你在/ect/resolv.conf文件中添加上nameserver XXX.XXX.XXX.XXX的时候,当时是生效的,但是机器重启之后就失效了,所以我 ...

  10. golang 实现线程池

    package main import ( "fmt" "time" ) type Pool struct { Queue chan func() error; ...