文件操作续
忽略一些文件
只需在主目录下建立".gitignore"文件,注意新建的是文件而非文件夹,在win窗口中不能建立以.开头的文件,只能在dos下:
E:\knowcars\knowcar>copy con .gitignore
^Z
已复制 1 个文件。
但纠结的是明明没有给它后缀名,却每次建立的都是文本文档,不知道git的文件是怎么建立的,求解?
关于git如何忽略的规则,见Git 忽略一些文件不加入版本控制
移除文件
如果我新建一个a.txt的文件还没有加入暂存区,此时我删除a.txt,在git status后,不会显示该操作信息,这样就挺好的。
但是如何我已经加入暂存区了,然后再git status 则会显示如下:
那么怎么移除一个文件让GIT不再将其纳入版本控制呢?解决办法就是:
git rm <file>...
移除所有未跟踪文件:
git clean [options] 一般会加上参数-df,-d表示包含目录,-f表示强制清除。
如下图:
移动文件
移动文件也同上,不能直接移动或重命名,如:
如果要重命名文件可以使用:
git mv old_name new_name
这个命令等效于:
mv old_name new_name(DOS下:ren old_name new_name)
git rm old_name
git add new_name
交互式暂存
交互:interaction,使用
git add -i
可以开启交互式暂存,如图所示,系统会列出一个功能菜单让选择将要执行的操作。
在win下如下图所示,太丑了:
储藏-Stashing
也就是:存储分支--切换分支--应用分支
场景:
可能会遇到这样的情况,你正在一个分支上进行一个特性的开发,或者一个Bug的修正,但是这时突然有其他的事情急需处理,这时该怎么办?不可能就在这个工作进行到一半的分支上一起处理,先把修改的Copy出去?太麻烦了。这种情况下就要用到Stashing了。
这里见储藏-Stashing有详解。
在Git Community Book 中文版之储蓄也有详细的说明。
git stash #git stash 来保存当前的工作状态
git stash apply #重新回来原来的工作时,只需把Stash区域的内容取出来应用到当前工作目录就行
git stash apply stash@{1} #应用某一个队列
git stash list #查看所有stash列表
git stash show #显示stash的内容具体是什么,同git stash apply一样,可以选择指定stash的名字。
git stash apply之后再git stash list会发现,apply后的stash还在stash列表中,如果要将其从stash列表中删除可以用:
git stash drop
#丢弃这个stash,stash的命令参数都可选择指定stash名字,否则就是最新的stash。
git stash pop #是应用与删除的快捷,一个命令即可
git stash apply --index #维持原来的样子,原来暂存的文件仍然是暂存状态,可以加上--index参数,否则都将变成未暂存状态
更多的还是参考上面的链接吧!