删除文件
本地的删除不是真的删除,如在Windows系统中右键点击文件删除或者在命令行中使用 rm 文件名
删除文件都只是在工作区删除,删除操作没有同提交到暂存区和版本库中。因此暂存区和版本库的文件还都存在!
初始化仓库,创建demo文件,添加到暂存区,提交到版本库。
这里删除工作区中的demo文件之后,使用git ls-files
命令查看暂存区显示文件在暂存区中还存在!所以需要先添加到暂存区中然后提交到版本库中才能真正的算是删除demo文件。
添加到暂存区然后提交,工作区状态是干净的。使用ls查看文件发现文件已经不存在,在使用git ls-files
命令查看暂存区的文件已经不存在了!此时算是真正的删除demo文件了。
tips:删除的文件可以在版本库中找回!
Git里面有个命令git rm 文件名
,这个命令可以直接删除文件并提交到暂存区,然后就可以提交到版本库中了。这里为了演示git rm
命令需要把demo文件从版本库中找回(正好演示如何从找回被删除的文件)。
git checkout HEAD^ -- 文件名
命令可以从上一个提交的里面恢复被你删除的文件。
为了演示git rm
命令,再次添加demo文件到暂存区然后提交到版本库。
使用git rm
命令删除demo文件后,使用git ls-files
查看暂存区,发现暂存区中的demo文件也已经被删除。然后可以直接提交到版本库。然后使用ls命令查看当前目录下的文件,发现demo文件已经被删除。
修改文件名和移动文件
Git中修改文件的命令都是git rm
命令来完成的。
先找回demo文件,然后使用git mv
修改文件名。使用ls命令查看目录下的文件,发现demo已经被修改成demo1。但是此时还需要添加到暂存区然后提交到版本库才能算是真的修改文件名。提交的时候还能看到改名前后的相似度(百分比表示的)。
接下来演示Git中如何移动文件。
先使用mkdir demoDirectory
创建一个目录,查看目录结构,使用git mv demo1 demoDirectory
命令就可以把demo1文件移动到demoDirectory目录下。然后把工作区的改动添加到暂存区然后提交到版本库中就可以了。
文件忽略
在实际的项目开发中有些文件是不需要加入到Git管理中的,比如日志文件,在开发中日志文件里的内容加入到Git管理中毫无意义,因为在日志文件只是用于项目发布之后用来查看项目的报错信息。
tips:文件忽略只对还没有添加到版本库里面的文件管用
这里重新初始化一个厂库用来演示如何忽略文件,创建 TestIgnoreFile文件然后查看工作区状态显示这个文件的状态为未跟踪状态(还没有加入版本库控制)。下面就演示如何把这个TestIgnoreFile文件忽略掉。
忽略掉一个文件很简单!只需要在项目的根目录下创建一个.gitignore文件然后在里面把想要忽略的文件名写上就可以了。.gitignore文件里面第一行表示忽略本身也就是忽略.gitignore这个文件。第二行就是忽略TestIgnoreFile这个文件。然后查看工作区就可以看到工作区是干净的。
下面讲下忽略文件的语法规则(.ignore):
# 这个符号就相当于注释。
本地独享式忽略文件:上面这个.gitignore文件可以称之为共享式忽略文件,因为这个.gitignore文件被添加到版本库之后,版本库可能被其他人克隆。这时,这个.gitignore文件就会出现在别人的工作区中。如果不想发生这种情况就可以设置独享式忽略文件。
有两中方式可以设置独享式忽略文件
第一种针对具体的版本库设置,在工作区的.git/info/exclude文件里面设置。
第二种是一种全局的忽略,也就对所以的版本库起作用。
git config -e --global
打开的文件里面设置一个 core节点, 节点里面的属性是excludesfile,属性的值是你的.gitignore文件所在的位置。
项目整理
使用压缩工具将工作区文件整理成zip,tar,rar等压缩包会把工作区下面的.git文件也给整理进去。Git提供了一个整理工作区的命令:git archive
git archive -o head.zip HEAD : 把HEAD指向的目录树整理成head.zip。
git archive -o demo.zip HEAD demo :将HEAD指向的目录树中的demo目录整理成demo.zip。
参考
《Git权威指南》