在之前的两篇文章中简单介绍了与git相关的基础知识,如果想要熟练和快速运用git,还需要熟悉git的其他相关的命令。这一篇文章就是关于git的一些常用的“其它命令”


忽略文件

如果有不想要某些文件被纳入git的管理,可以在git中忽略掉这些文件。这时,我们需要创建一个名为.gitignore的文件,在这个文件中写入想要忽略的文件或文件类型。下面列出文件.gitignore的格式规范:

  • 所有空行或者以#开头的行都会被Git忽略,相当于注释
  • 可以使用shell所使用的简化了的正则表达式
  • 匹配模式可以以(/)开头防止递归。
  • 匹配模式可以以(/)结尾指定目录。
  • 要忽略指定模式以外的文件或目录,可以在模式前加上惊叹号(!)取反。

我们可以进行一个例子进行具体的展示,首先在之前的目录的基础上添加Text4.txt和Text5.txt以及Pictures和Videos文件夹,同时添加一个.gitignore文件

同时在Pictures文件夹中添加test文件夹和Test6.docx和Text7.txt。test文件夹中含有Test7.docx

这时可以查看状态,状态如下:

所有新添加的文件都处于untracked的状态,这时在.gitignore文件中添加如下:

# ignore all files in the Videos/ directory
# 忽视所有Videos文件夹中的文件
Videos/# ignore .txt files(Regular Express)
# 忽视当前目录下txt文件(正则表达式)
*.txt #ignore all txt files in Pictures directory,but not in Pictures/test directory
#忽视所有在Pictures目录下的以txt为后缀的文件,但是不忽略Pictures/test下的
Pictures/*.txt# ignore all docx files in Pictures directory,including Pictures/test
#忽视包含Pictures/test和Pictures/目录下的所有以docx为后缀的文件
Pictures/**/*.docx

这时再查看当前文件的状态,会发现所有被配置的文件都已经被忽略了。

注意:这里的文件都是处于未跟踪状态的文件,如果某个文件已经在暂存区或者仓库区则在.gitignore文件中配置忽略无效
如果要忽略指定模式以外的文件或目录,需要使用"!",在gitignore文件中添加以下内容:

#track Test4.txt,even though you're ignoring .txt files above
#这里忽视了除Test4.txt文件以外txt文件,即使在上面定义了忽视.txt文件
!Test4.txt

还有一个需要注意的是如果当前目录的子目录中有同名的文件(包含后缀名)在此文件夹中写文件名,这时会递归地将子目录中的同名文件给忽视,如果不想忽视子目录中的文件则需要加上"/"。在当前目录中和Files目录下分别添加Test6.md后,在.gitignore文件中添加如下内容:

#Only ignore Test6.md in the current directory,not subdir/Test6.md
#只是忽略当前目录下的Test6.md而不是子目录中Test6.md
/Test6.md

GitHub 有一个十分详细的针对数十种项目及语言的 .gitignore 文件列表,你可以在 https://github.com/github/gitignore 找到它.

状态简览

通常git status命令的输出很详细,如果想要得到更加简单的形式的输出,则需要使用命令git status -s
在当前文件夹中将Test4.txt和.gitignore文件使用git add添加到暂存区中,然后再在Test4.txt中添加内容,同时再向已经处于仓库区中的Test1.md添加新内容,使用git status -s可以看到:

这时如果再使用git add将Test1.md和Test4.txt添加到暂存区,则显示:

可以看出M的位置出现在了两处,总结一下,出现在右边的 M 表示该文件被修改了但是还没放入暂存区,出现在靠左 边的 M 表示该文件被修改了并放入了暂存区,新添加的未跟踪文件前面有 ?? 标记,新添加到暂存区中的文件前面有 A 标记。

详细查看修改的内容

使用git status可以查看到文件变化的地方,但是过于模糊,如果想要知道具体修改了什么地方,可以使用git diff的命令

  1. 查看已暂存和未暂存的修改,首先将所有文件添加到暂存区。

    这个时候运行git diff命令可以看见没有任何输出,因为所有文件已暂存。
    当在Test1.md文件新添加一行后,再使用git diff的命令:

因此要明白git diff比较的是已暂存和未暂存文件之间的区别。

  1. 查看已暂存的将要添加到下次提交里的内容,依然是将所有文件添加到暂存区

    这时运行git diff --cached或者git diff --staged命令,会出现所有你已暂存起来的修改

    因此git diff --cached或者git diff --staged命令便是查看已暂存的将要添加到下次提交里的内容

提交更新—将提交信息与命令放在同一行

可以在git commit命令之后添加 -m选项,这样就可以将提交信息与命令放在同一行了.

可以所有更新的信息都会输出

跳过使用暂存区域

每次提交之前都要使用git add将文件提交到暂存区,这样略显繁琐,如果提交已经被git跟踪过的文件,可以跳过将此文件添加到暂存区的步骤,如下提修改已经在仓库区的Test4.txt,使用git commit -a命令可以直接提交Test4.txt到仓库区。

移除文件

如果当要简单删除目录中的文件时,可以手工在文件夹中删除,也可以运行rm命令,比如:

rm Files/Test6.md

其状态为:

此时可以看出这次的删除操作并没有记录到git中,因此可以运行git rm命令

下次提交时候这个文件便不会再纳入git的版本管理之中了。

如果一个文件已经存在于仓库中,这时运行git rm会在文件中直接删除该文件并不会被纳入git的管理中

但是如果一个文件在暂存区中,想要删除则需要用强制删除选项-f。不适用会报错(这也是一种安全特性)比如下面的例子,Test4.txt已经在暂存区中

如果使用git rm -f则会强制删除文件,如果使用git rm --cached则会在目录中保留此文件,但是并不会让git继续跟踪。

移动文件和重命名文件

如果要移动文件则直接使用rm命令,但是如果使用了git mv则结果会很不一样,运行git mv readme.md readme相当于运行了三条命令:

mv readme.md readme
git rm readme.md
git add readme

比如下面的例子:运行git mv Test4.txt Test7.md结果状态为:

因此,git rm命令将文件或文件夹重命名的文件,上面的例子就是将Test4.txt改名成了Test7.md

Git忽略文件(.ignore)以及git status,git diff,git rm命令相关推荐

  1. Git忽略文件方法【转】

    转自:http://www.cnblogs.com/shangdawei/archive/2012/09/08/2676669.html http://cwind.iteye.com/blog/166 ...

  2. git忽略文件【转】

    转自: http://cwind.iteye.com/blog/1666646 有很多文件不必使用git管理.例如Eclipse或其他IDE生成的项目文件,编译生成的各种目标或临时文件等.使用git ...

  3. git 忽略文件提交的几种姿势

    大家都知道 git 忽略文件提交可以通过 .gitignore 中进行配置.但是有时这个配置并不能满足自己的需求. 比如 package.json 中我修改了一些配置,但是这些配置只是适合我自己使用, ...

  4. idea设置git忽略文件

    idea设置git忽略文件 根据项目忽略 一.老版IDEA配置忽略文件: 二. 新版IDEA配置忽略文件: 特别提醒 根据分支忽略 根据项目忽略 一.老版IDEA配置忽略文件: 该方法是针对当前电脑的 ...

  5. JavaIDE 添加git忽略文件

    JavaIDE 添加git忽略文件 1.点击file 2.点击setting 3.点击Editor 4.点击File Types 5.点击Ignore Files and Folders 6.添加对应 ...

  6. IDEA中使用git,并且配置git忽略文件

    当在IDEA中编写好一个项目,想要用git上传到远程仓库时.有一些文件是不用上传的比如.gradle..idea和build目录下的. 此时可以配置git忽略文件,从而忽略不需要上传的文件. 1)第一 ...

  7. Git学习总结(4)——我的Git忽略文件与忽略文件提交规则和配置总结

    在使用Git的过程中,有的文件比如日志,临时文件等不要提交到代码仓库,这时就要设置相应的忽略规则,来忽略这些文件的提交.该怎么办呢?很简单,git为我们提供了一个.gitignore文件只要在这个文件 ...

  8. 添加git 忽略文件

    在使用Git的过程中,我们喜欢有的文件比如日志,临时文件,编译的中间文件等不要提交到代码仓库,这时就要设置相应的忽略规则,来忽略这些文件的提交. Git 忽略文件提交的方法 有三种方法可以实现忽略Gi ...

  9. 【git】git忽略文件 取消忽略文件

    [git]git忽略文件 取消忽略文件 一.git忽略文件 (一)通常操作 忽略成功后会出现灰色图标 git根目录下有一个.gitignore文件,被忽略的文件全部会添加到里面 相关过滤规则举例说明: ...

最新文章

  1. 网页开发--html js
  2. mac 安装 RabbitMQ
  3. Gotchas 44-引用和临时对象
  4. 【Homework】银行存取款业务
  5. Supplier 点participate时候用USB KEY的身份验证
  6. [Swift]LeetCode556. 下一个更大元素 III | Next Greater Element III
  7. 【线程】——volatile关键字
  8. uni app项目资讯列表展开与收起
  9. 分享吴恩达机器学习视频和300页word学习笔记,以及深度学习五门课视频及700页word笔记
  10. Linux客户/服务器程序设计范式——阿帕奇服务器(多进程)
  11. java设计模式之解释器模式
  12. OpenShift 4 - 在 GitOps 中使用 SealedSecret 保护敏感数据
  13. 膝关节前交叉韧带重建术后取钉记
  14. 自动提取全部EXCEL sheet 名称
  15. json学习笔记(圣思园视频学习笔记)
  16. 深度学习DeepLearning
  17. 新闻主题分类任务——torchtext 库进行文本分类
  18. 网上的普通话测试软件可信吗,普通话测试软件哪个好_普通话测试软件靠谱吗_不要钱的普通话测试软件...
  19. springboot集成knif4j,swagger
  20. Mansory makeConstraints 、remakeConstraints 、updateConstraints 注意事项

热门文章

  1. 用python程序画出一些简单的动漫人物
  2. Cannot convert string ‘\xAC\xED\x00\x05sr...‘ from binary to utf8mb4
  3. 怎样在苹果Mac上删除APFS卷?
  4. html中常用的标签小结
  5. Oracle数据库访问性能优化
  6. 纯perl语言计算文件的crc32值
  7. 自学一周python做的一个小游戏《大球吃小球》
  8. 微型 Python Web 框架 Bottle - Heroin blog
  9. oracle常用知识,oracle的基本知识
  10. JavaWeb-05 jQuery