参考源

https://www.bilibili.com/video/BV1FE411P7B3?spm_id_from=333.999.0.0

版本

本文章基于 Git 2.35.1.2


文件的四种状态

版本控制就是对文件的版本控制

要对文件进行修改、提交等操作,首先要知道文件当前在什么状态。

不然可能会提交了现在还不想提交的文件,或者要提交的文件没提交上。

Git 管理的文件有四种状态:

Untracked:未跟踪

此文件没有加入到 Git 库,不参与版本控制。

通过 git add 变为 Staged 状态。

Unmodify:未修改

文件加入了 Git 库,未修改。

版本库中的文件快照内容与文件夹中完全一致。

这种类型的文件有两种去处:

  • 如果它被修改,而变为Modified。
  • 如果使用 git rm 移出版本库,则变为 Untracked 状态。

Modified:已修改

仅仅是修改,并没有进行其他的操作。

这个文件也有两个去处:

  • 通过 git add 可进入 **Staged **状态。
  • 使用 git checkout 放弃修改,返回到 Unmodify 状态。

git checkout 是从库中取出文件,覆盖当前修改。

Staged:暂存

执行 git commit 将修改同步到库中。

这时库中的文件和本地文件又变为一致,文件为 Unmodify 状态。

执行 git reset HEAD filename 取消暂存,文件为 Modified 状态。

查看文件状态

查看指定文件状态

git status [filename]

查看所有文件状态

git status

忽略文件

有时候我们不想把某些文件纳入版本控制中,比如数据库文件、临时文件、设计文件等。

在主目录下建立 .gitignore 文件,此文件有如下规则

  • 忽略文件中的空行或以 # 开始的行将会被忽略。
  • 可以使用 Linux 通配符。例如:***** 代表任意多个字符,? 代表一个字符,[ ] 代表可选字符范围,{ } 代表可选的字符串。
  • 如果名称的最前面有一个 !,表示例外规则,将不被忽略。
  • 如果名称的最前面是一个 /,表示要忽略的文件在此目录下,而子目录中的文件不忽略。
  • 如果名称的最后面是一个 /,表示要忽略的是此目录下的所有文件。
*.txt        # 忽略所有 .txt 结尾的文件,这样的话上传就不会被选中。
!lib.txt # lib.txt 除外
/temp # 仅忽略项目根目录下的 temp 文件,不包括其它 temp 目录。
build/ # 忽略 build/ 目录下的所有文件。
doc/*.txt # 忽略 doc/notes.txt 但不包括 doc/server/arch.txt。

最新文章

  1. tableView:cellForRowAtIndexPath:方法中indexPath.row不是从0开始的,从4开始
  2. js中对象 类 实例的区别 数据类型 创建对象
  3. IntelliJ IDEA 在网页修改数据,但是在浏览器刷新的时候,不能读取到修改之后的数据
  4. PHP入门part2
  5. [Effective JavaScript 笔记]第35条:使用闭包存储私有数据
  6. iOS 静态库和动态库的区别&静态库的生成
  7. TFS如何设置在客户端独占签出
  8. Servlet的应用
  9. php-fpm 启动不了 libiconv.so.2找不到
  10. (java)从零开始之--异常处理(以文件拷贝为例)
  11. sed和awk的使用
  12. 初学git,初始化库|添加文件ignore|提交方法
  13. What are some good books/papers for learning deep learning?
  14. JeeWx捷微3.1小程序版本发布,支持微信公众号,微信企业号,支付窗——JAVA版开源微信管家
  15. JS实现简单的运行代码 & 侧边广告
  16. Spring中bean作用域属性scope
  17. 命令行生成war包
  18. eventbus3-intellij-plugin插件搜不到
  19. [BZOJ3098]Hash Killer II解题报告
  20. CentOS RabbitMQ安装

热门文章

  1. C#获取PLC信息 (KepServer)
  2. JAVA - 线程从创建到死亡的几种状态都有哪些?
  3. Prometheus 四种metric类型
  4. MySQL数据库5
  5. split(),strip,split("/")[-1] 和 split("/",-1)的区别
  6. 判断语句、if嵌套
  7. node.js的express模块实现GET和POST请求
  8. ebook下载 | 灵雀云发布《 企业高管IT战略指南——为何选择容器与Kubernetes》
  9. JVM 输出 GC 日志导致 JVM 卡住,我 TM 人傻了
  10. 一文get到SOLID原则的重点