"git rm" 和 "rm" 的区别

"git rm" 和 "rm" 的区别

FEB 3RD, 2013 | COMMENTS

这是一个比较肤浅的问题,但对于 git 初学者来说,还是有必要提一下的。

用 git rm 来删除文件,同时还会将这个删除操作记录下来;
用 rm 来删除文件,仅仅是删除了物理文件,没有将其从 git 的记录中剔除。

直观的来讲,git rm 删除过的文件,执行 git commit -m "abc" 提交时,
会自动将删除该文件的操作提交上去。

而对于用 rm 命令直接删除的文件,执行 git commit -m "abc" 提交时,
则不会将删除该文件的操作提交上去。
不过不要紧,即使你已经通过 rm 将某个文件删除掉了,
也可以再通过 git rm 命令重新将该文件从 git 的记录中删除掉,
这样的话,在执行 git commit -m "abc" 以后,也能将这个删除操作提交上去。

如果之前不小心用 rm 命令删除了一大批文件呢?
是的,此时用 git rm 逐个地再删除一次就显得相当蛋疼了。
所幸还有更方便的处理方案,用如下的方式做提交就没有问题了: git commit -am "abc"

总结一下:

在被 git 管理的目录中删除文件时,可以选择如下两种方式来记录删除动作:
一、rm + git commit -am "abc"
二、git rm + git commit -m "abc"
另外,git add . 仅能记录添加、改动的动作,删除的动作需靠 git rm 来完成。
最后,rm 删除的文件是处于 not staged 状态的,
也就是一种介于 “未改动” 和 “已提交过” 之间的状态。

时间: 2024-10-25 22:29:44

"git rm" 和 "rm" 的区别的相关文章

"git rm" 和 "rm" 的区别(转载)

转自:http://yang3wei.github.io/blog/2013/02/03/git-rm-he-rm-de-qu-bie/ 这是一个比较肤浅的问题,但对于 git 初学者来说,还是有必要提一下的. 用 git rm 来删除文件,同时还会将这个删除操作记录下来:    用 rm 来删除文件,仅仅是删除了物理文件,没有将其从 git 的记录中剔除. 直观的来讲,git rm 删除过的文件,执行 git commit -m "abc" 提交时,会自动将删除该文件的操作提交上去.

对比git rm和rm的使用区别

在这里说一下git rm和rm的区别,虽然觉得这个问题有点肤浅,但对于刚接触git不久的朋友来说还是有必要的. 用 git rm 来删除文件,同时还会将这个删除操作记录下来:用 rm 来删除文件,仅仅是删除了物理文件,没有将其从 git 的记录中剔除. 直观的来讲,git rm 删除过的文件,执行 git commit -m "abc" 提交时,会自动将删除该文件的操作提交上去. 而用 rm 命令直接删除的文件,单纯执行 git commit -m "abc" 提交

git 仓库、分支的区别

首先,要明白仓库的概念 仓库可以理解为repository, 就是存放代码的地方,—— 其实是一个比较笼统的概念,不管里面的内容,总之存放各种资源(代码.图片等等) 对于git应用开发者而已,本地一般需要至少一个仓库, 远程,自然,必须的,至少一个仓库 仓库里面可以有多个分支 —— 每个分支,当然,都是对应一个独享的目录. 各个分支并列在仓库下,共同组成了仓库(个人的理解,这样对吗?) 版本又是什么概念呢? —— 其实我们应该准确理解这个概念—— 版本指一个分支的某一个时刻的整体代码—— 这样理

git rm 和rm 的区别

为了理解这两个命令的区别,首先复习一下git的相关概念. Git 仓库目录:是 Git 用来保存项目的元数据和对象数据库的地方,可以理解为保存着项目各个版本快照的大仓库. 工作目录:是对项目的某个版本独立提取出来的内容. 暂存区域是一个文件,保存了下次将提交的文件列表信息, 假如在当前版本中有一个文件A, 当我们使用git rm A时, 先把文件A从工作目录删除,再把这个操作记录到暂存区,当下次使用commit命令时,从暂存区找不到A的文件信息,于是在新的版本中就不再有A这个文件了 当我们使用r

git 命令 git status add rm commit mv

1.查看 git 仓库文件改动状态 Git 仓库内文件改动有 4 种状态,除了 Unmodified 状态的文件因为并未改动默认没有状态不做显示之外,其他文件改动状态都可以通过 git status 来查看 查看 Git 记录的状态 常用命令, 查看git仓库状态 git status 拿到一个git仓库,进入仓库,第一执行这个命令查看 [[email protected] ~]# cd /data/git_test/ [[email protected]-node1 git_test]# [[

GIT和SVN之间的区别及基本操作对比

1)GIT是分布式的,SVN不是: 这是GIT和其它非分布式的版本控制系统,例如 SVN,CVS等,最核心的区别.如果你能理解这个概念,那么你就已经上手一半了.需要做一点声明,GIT并不是目前第一个或唯一的分布式版本控制系统. 还有一些系统,例如Bitkeeper, Mercurial等,也是运行在分布式模式上的.但GIT在这方面做的更好,而且有更多强大的功能特征. GIT 跟SVN一样有自己的集中式版本库或服务器.但,GIT更倾向于被使用于分布式模式,也就是每个开发人员从中心版本库/服务器上c

Git merge 和 rebase的区别

原文地址:http://blog.csdn.net/hudashi/article/details/7664631 git rebase用于把一个分支的修改合并到当前分支. 假设你现在基于远程分支"origin",创建一个叫"mywork"的分支. $ git checkout -b mywork origin 假设远程分支"origin"已经有了2个提交,如图 现在我们在这个分支做一些修改,然后生成两个提交(commit). $ vi file

Git和SVN之间的区别

如果你在读这篇文章,说明你跟大多数开发者一样对GIT感兴趣,如果你还没有机会来试一试GIT,我想现在你就要了解它了. GIT不仅仅是个版本控制系统,它也是个内容管理系统(CMS),工作管理系统等.如果你是一个具有使用SVN背景的人,你需要做一定的思想转换,来适应GIT提供的一些概念和特征.所以,这篇文章的主要目的就是通过介绍GIT能做什么.它和SVN在深层次上究竟有什么不同来帮助你认识它. 那好,这就开始吧… 1.GIT是分布式的,SVN不是: 这是GIT和其它非分布式的版本控制系统,例如SVN

Git简史及对比SVN区别

Git 简史 Git是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目. Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件. Git 与常用的版本控制工具 CVS, Subversion 等不同,它采用了分布式版本库的方式,不必服务器端软件支持. Git 与 SVN 区别 GIT不仅仅是个版本控制系统,它也是个内容管理系统(CMS),工作管理系统等. 如果你是一个具有使用SVN背景的人,你需要做一定的思想转换,来适应