1.8 Remove
有时候有一些冗余数据在你的工程里积累,你必须清理它们。让我们看看Git怎么做到这个。
一种是使用git rm命令,另外一种是使用add命令。这样可以让文件消失。如果你只有一个文件想要删除,那么git rm命令就是你想要的。
$ git rm file1.txt
它真正的从文件系统中删除了文件,并且它会暂存这个文件已经被删除的事实
$ git status
如果你提交了,这个文件不会从之前的历史中消失
$ git commit -m"Remove file1.txt"
但或从未来的提交中消失
如果你像我一样,是一个命令行爱好者,你可能会忘了git这个环节,只是简单的输入rm文件名,然后你会注意到git发现文件已经消失
$ rm file2.txt
$ git status
告诉你改变还没有被暂存
你可以同样使用git rm命令来暂存它,就像之前一样
$ git rm file2.txt
$ git status
它并不在意文件已经不存在了,但是它暂存了删除已经发生的事实
在一个实际的清除场景中,你可能会有许多文件要删除,你不太可能从命令行中来做这些事,你可能会用一些其它的工具,比如Finder或者Windows Explorer或者一些其它工具。状态告诉你,这些被删除的文件已经消失了。
$ git status
但是你不想单独删除它们
如果你在做这样的清除工作,你可以使用add命令,
$ git add -u .
$ git status
他会遍历你的工作树,寻找git之前已经识别到的文件,现在要消失的文件,它会把它们作为新的删除来暂存。你会注意到我这里输入了一个点,作为文件名字。那只是一个意味着当前工作目录的简写。
当add命令看到它的时候,他会从你当前所在的目录,递归到最深处,寻找它能够添加的所有文件,或者说,在这个场景下,所有能够被删除的文件。
最后,你可能想删除一个文件,不想从文件系统中真正删除它,换个说法,你想告诉git不再跟踪这个文件,但是把它保留在工作树中,这可能是一种情况,你意外地提交了一个文件,你并不想让它成为历史的一部分,你可以使用git rm --cached去实现它,
$ git rm --cached
$ git status
它暂存了删除,但是,如你所看,它在那里保存了文件。
现在,在你的工作树中,作为一个不被追踪的文件
现在这个技巧带来了其它的问题,比如,如果你不想这个文件成为历史的一部分,你需要返回到之前的提交中去清除它?这是另外一个视频的主题。
或者,如果你想文件不被追踪,但你想要确定在你将来某个时候你不会偶然的添加它,也有方法,比如使用git ignore file去保证,这将是另外一堂课的主题。
现在。桌面的客户端去处理这些怎么样?答案是真的很简单。
如果你在Finder中删除一个文件,然后切换到mac到Github客户端,你可以看到,它会马上识别到哪些被删除的文件,准备好为你暂存那些删除,你知道,这些表示后面,有很多东西在运行,Git让删除文件的操作变得非常简单,祝你在清理之旅中好运。
转载于:https://blog.51cto.com/12585676/1940923
1.8 Remove相关推荐
- LeetCode19. Remove Nth Node From End of List 删除链表中的倒数第n个位置的元素
前言 本文是LeetCode19. Remove Nth Node From End of List解法,这个题目需要删除链表中的倒数第n个位置的元素 代码 # -*- coding: utf-8 - ...
- Ubuntu apt-get install、apt-get -f install、apt-get --purge remove、apt-get update、apt-get upgrade、
1. 常用命令列表 命令 描述 apt-cache search package 搜索软件包 apt-cache show package 获取包的相关信息,如说明.大小.版本等 sudo apt-g ...
- ArrayList Iterator remove java.lang.UnsupportedOperationException
在使用Arrays.asList()后调用add,remove这些method时出现 java.lang.UnsupportedOperationException异常.这是由于Arrays.asLi ...
- Spring源码分析【9】-SpringSecurity密码Remove原理
很明显代码已经说了认证完成移除credentials和其他某些安全数据 // Authentication is complete. Remove credentials and other secr ...
- Remove Duplicates from Sorted Array II -- LeetCode
原题链接: http://oj.leetcode.com/problems/remove-duplicates-from-sorted-array-ii/ 这道题跟Remove Duplicates ...
- 编译安装apr 1.5.2 时报 rm: cannot remove `libtoolT': No such file or directory
今天在编译安装apr-1.5.2 的时候执行./configure --prefix=/usr/local/apr 的时候报了一个这么样的信息 " rm: cannot remove `li ...
- ListT中,Remove和RemoveAt区别
Remove删除的是匹配的第一项.比如你的list里面有2个相同的项.那么就删除第一个.后面的不删除,找不到元素和删除失败都返回false RemoveAt是删除索引下的项 转载于:https://w ...
- leetcode 203 Remove Linked List Elements
Remove all elements from a linked list of integers that have valueval. Example Given: 1 --> 2 ...
- List中remove()方法的陷阱,被坑惨了!
欢迎关注方志朋的博客,回复"666"获面试宝典 来源:blog.csdn.net/pelifymeng2/ article/details/78085836 Java的List在删 ...
- 为何每次用完 ThreadLocal 都要调用 remove()
点击上方蓝色"方志朋",选择"设为星标"回复"666"获取独家整理的学习资料! 什么是内存泄漏 Key 的泄漏 Value 的泄漏 如何避免 ...
最新文章
- 获取子iframe的属性
- 不做“浮冰”,深挖AI技术和场景
- 传感器融合:自动驾驶领域的另一个突围方向
- easypoi实现Excel导入
- 全国计算机等级考试题库二级C操作题100套(第48套)
- 每日站立会议 12.06
- numpy 删除所有为_用Numpy和Pandas工具分析销售数据
- js中的继承1--类继承
- 【优化预测】基于matlab粒子群算法优化SVM预测【含Matlab源码 1424期】
- 批量网刻操作系统(使用GHOST工具)
- pwm占空比的c语言编程详解,灵动微MM32F003硬件最小系统 --- PWM占空比从0%到100%例程解析【18】...
- [转帖]组织机构、职务职称英文译法
- 计算机表格填充,Excel表格中数据填充功能的使用方法
- 高德地图之逆地理编码
- 任意四面体的外接球/三维空间不共面四点确定唯一球面(附完整代码)
- js写小游戏(打字母)
- eclipse调试项目,debugger没反应 解决办法
- CISP——密码学的应用
- 双群晖nas数据备份同步
- python统计分析方法
热门文章
- websocket中发生数据丢失_为什么事实上却发生了数据丢失,只有少部 分数据可以加载进来...
- java 继承先后顺序_Java中的继承关系的加载顺序
- mysql字节对齐_结构体字节对齐-位域及其对齐
- mysql jdbc 表结构_JavaEE_day09_MySQL多表JDBC
- java中table是什么标签_[Java教程]javascript格式化table标签内容
- java打印文档_从Java应用程序打印文档?
- 【 MATLAB 】使用 MATLAB 比较占空比不同的周期方波的 DFS 图
- 【 MATLAB 】MATLAB 实现模拟信号采样后的重建(二)零阶保持(ZOH)
- 【 MATLAB 】两个序列的卷积和运算的MATLAB实现(1)
- Spartan-6的SelectIO资源