文件操作续

忽略一些文件

只需在主目录下建立".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参数,否则都将变成未暂存状态

更多的还是参考上面的链接吧!

git初体验(二)基础git文件操作的更多相关文章

  1. git初体验(三)git分支

    分支的理念就是分身,就像孙悟空拔出猴毛变出很多跟自己一模一样的猴子,然后每个猴子做自己的事情互不干涉,等到所有猴子做完之后,猴子集合来合并劳动成果,然后悟空就把那些猴子猴孙门统统收回了. 你创建了一个 ...

  2. python基础篇(文件操作)

    Python基础篇(文件操作) 一.初始文件操作 使用python来读写文件是非常简单的操作. 我们使用open()函数来打开一个文件, 获取到文件句柄. 然后通过文件句柄就可以进行各种各样的操作了. ...

  3. 第十二章 Python文件操作【转】

    12.1 open() open()函数作用是打开文件,返回一个文件对象. 用法格式:open(name[, mode[, buffering[,encoding]]]) -> file obj ...

  4. git初体验(一)基础

    一.window下的git安装 1.安装教程 网上教程一堆,我参考的是这个:Git_Windows 系统下Git安装图解 还有这个也不错 2.环境搭建: 在配置完成后,自动加载到系统环境变量中,如我的 ...

  5. Git 学习(二)Git 基础

    Git 基础 Git 在保存和对待各种信息的时候与其它版本控制系统如 SVN 等等有很大差异,尽管操作起来的命令形式非常相近,理解这些差异将有助于防止你使用中的困惑. Git 记录的是什么? 如果有使 ...

  6. Git:Git初体验——Git安装配置

    作为即将成为一个程序员的男人,一直在听别人说Git多好多好,之前也随便了解了一些,但是始终没有决心去学会.现在大四了,只有毕设和一门开学六七周只去过一次课的全员必修课外,也没有什么事情做,何不去做这些 ...

  7. git使用记录二: 给文件重命名的简单方法

    git使用记录三: 给文件重命名的简单方法 git mv file_name_old file_name_new mv: 文件命名 file_name_old : 文件当前的名字 file_name_ ...

  8. git初体验(七)多账户的使用

    多github帐号的SSH key切换 我有两个github帐号,一个是个人所用,一个是为公司项目所用.如果是单用户(single-user),很方便,默认拿id_rsa与你的github服务器的公钥 ...

  9. git初体验(五)SSH的理解

    一.SSH SSH是Secure shell的缩写,即"安全外壳协议",专为远程登录会话和其他网络服务提供安全性的协议,是一项计算机上的安全协议. 传统的网络服务程序,如rsh.F ...

随机推荐

  1. Maven学习(七)仓库

    * Maven仓库 在项目开发中,  项目目录下往往会有一个lib目录,用来存放第三方依赖jar文件, 如spring log4j jar等文件, Maven仓库就是放置JAR文件(WAR,ZIP,P ...

  2. Linux字符设备驱动解析

    1.驱动即是一个内核模块,需要模块初始化函数 module_init() module_exit() 2.分配cdev struct cdev dev; 3.初始化cdev并定义file_operat ...

  3. NOIP2003 神经网络

    题目背景 人工神经网络(Artificial Neural Network)是一种新兴的具有自我学习能力的计算系统,在模式识别.函数逼近及贷款风险评估等诸多领域有广泛的应用.对神经网络的研究一直是当今 ...

  4. 使用Access-Control-Allow-Origin解决跨域

    什么是跨域 当两个域具有相同的协议(如http), 相同的端口(如80),相同的host(如www.google.com),那么我们就可以认为它们是相同的域(协议,域名,端口都必须相同). 跨域就指着 ...

  5. LCT裸题泛做

    ①洞穴勘测 bzoj2049 题意:由若干个操作,每次加入/删除两点间的一条边,询问某两点是否连通.保证任意时刻图都是一个森林.(两点之间至多只有一条路径) 这就是个link+cut+find roo ...

  6. 独立成分分析(ICA)在fMRI数据处理时timecourse的理解

    来源: http://blog.sciencenet.cn/blog-479412-434990.html   在处理fMRI数据时,使用空间ICA的方法.将一个四维的fMRI数据分解为空间patte ...

  7. [转]考虑 PHP 5.0~5.6 各版本兼容性的 cURL 文件上传

    FROM : https://segmentfault.com/a/1190000000725185 最近做的一个需求,要通过PHP调用cURL,以multipart/form-data格式上传文件. ...

  8. nginx图片处理相关

    nginx本身有支持图片处理的模块,通过外部插件也可以实现此功能. libgd的安装 前提是要有libgd的库文件, (1)去官网访问主页没问题,下载文件还是FQ下的,为了方便大家提供一个链接:htt ...

  9. weblogic.nodemanager.common.ConfigException: Native version is enabled but nodemanager native library could not be loaded 解决办法

    近日在一个原本工作正常的weblogic web server(操作系统为redhat 64位系统)上折腾安装redis/hadoop等东东,yum install了一堆第3方类库后,重启weblog ...

  10. javascript: 带分组数据的Table表头排序

    如下图: 要求:点击表头排序时,"分组"及"分组明细"的数据层次关系不变 从网上找了一段常规的table排序,改了改,以满足“分组支持”,贴在这里备份 < ...