zoukankan      html  css  js  c++  java
  • git命令——git add

    如何理解git add

    git add命令本身并不复杂,字面意义上理解是“将一个文件添加到项目中“。但是这种理解有缺陷,有时候可能会出现某个文件同时存在暂存区域 和 非暂存区域(staged and unstaged area)。如果是将文件加到项目中,那只应该存在于暂存区,不能暂存区域 和 非暂存区域同时存在。更好的理解方式为:添加内容到下一次提交中。

    git add 使用示例

    跟踪新文件

    本地git仓库新增一个README文件时,git status查看

    $ git status
    On branch master
    Untracked files:
    (use "git add <file>..." to include in what will be committed)
    README
    nothing added to commit but untracked files present (use "git add" to track)
    View Code

    README 文件出现在 Untracked files 下面。 未跟踪的文件意味着 Git 在之前的快照(提交)中没有这些文件;Git 不会自动将之纳入跟踪范围,除非你明明白白地告诉它“我需要跟踪该文件”, 这样的处理让你不必担心将生成的二进制文件或其它不想被跟踪的文件包含进来。

    使用git add跟踪新文件,所谓跟踪就是将新文件加到Staging Area(暂存区)。

    $ git add README

    暂存已修改文件

    再修改一个已被跟踪(tracked)的文件。 假如是 CONTRIBUTING.md ,然后运行 git status 命令,会看到下面内容:

    $ git status
    On branch master
    Changes to be committed:
    (use "git reset HEAD <file>..." to unstage)
    new file: README
    Changes not staged for commit:
    (use "git add <file>..." to update what will be committed)
    (use "git checkout -- <file>..." to discard changes in working directory)
    modified: CONTRIBUTING.md
    View Code

    文件 CONTRIBUTING.md 出现在 Changes not staged for commit 这行下面,说明已跟踪文件的内容发生了变化,但还没有放到暂存区。 要暂存这次更新,需要运行 git add 命令。

    将CONTRIBUTING.md放到暂存区,再git status查看状态

    $ git add CONTRIBUTING.md
    $ git status
    On branch master
    Changes to be committed:
    (use "git reset HEAD <file>..." to unstage)
    new file: README
    modified: CONTRIBUTING.md
    View Code

    现在两个文件都已暂存,下次git commit时就会一并记录到仓库。

    再次修改CONTRIBUTING.md,然后git status查看状态

    $ vim CONTRIBUTING.md
    $ git status
    On branch master
    Changes to be committed:
    (use "git reset HEAD <file>..." to unstage)
    new file: README
    modified: CONTRIBUTING.md
    Changes not staged for commit:
    (use "git add <file>..." to update what will be committed)
    (use "git checkout -- <file>..." to discard changes in working
    directory)
    modified: CONTRIBUTING.md
    View Code

    CONTRIBUTING.md 文件同时出现在暂存区和非暂存区。 这怎么可能呢? 好吧,实际上 Git 只不过暂存了你运行 git add 命令时的版本, 如果你现在提交,CONTRIBUTING.md 的版本是你最后一次运行git add 命令时的那个版本,当前工作目录中的CONTRIBUTING.md 的版本。 所以,运行了 git add 之后又作了修修改的文件,需要重新运行 git add 把最新版本重新暂存起来

     

     

  • 相关阅读:
    常见的消息队列中间件介绍
    关系型数据库和非关系型数据库区别、oracle与mysql的区别
    SQL Server 和 Oracle 以及 MySQL 数据库
    Redis,Memcache,MongoDb的特点与区别
    详解布隆过滤器的原理,使用场景和注意事项
    Redis缓存穿透、缓存击穿以及缓存雪崩
    RPC、HTTP、RESTful
    集群,分布式,微服务概念和区别理解
    电脑双屏变单屏后,界面显示问题
    JDK 15已发布,你所要知道的都在这里!
  • 原文地址:https://www.cnblogs.com/kelamoyujuzhen/p/9948287.html
Copyright © 2011-2022 走看看