• 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 把最新版本重新暂存起来

     

     

  • 相关阅读:
    Angular9 cdk-virtual-scroll-viewport' is not a known element 报错解决方案
    angular8打包时提示ERROR in Child compilation failed:解决方案
    angular8配置proxy本地跨域代理
    Vue-cli 本地跨域配置方法
    axios中url参数变量配置
    在vue-cli中使用axios时报错TypeError: Cannot set property 'lists' of undefined at eval
    nuxt.js element-ui踩坑记录(已解决)
    nuxt 关闭ESlint 语法检测
    javaScript学习之正则表达式初探
    直接在低版本IE6/7/8浏览器中使用HTML5的audio和video标签播放视频音频的办法
  • 原文地址:https://www.cnblogs.com/kelamoyujuzhen/p/9948287.html
Copyright © 2020-2023  润新知