zoukankan      html  css  js  c++  java
  • git追踪文件对文件进行版本控制-git基础(四)

    通常,你会对文件做些修改,每当完成了一个阶段的目标,想要将记录下它时,就将它提交到到仓库。
      工作目录下的每一个文件都只有两种状态:已跟踪 或 未跟踪。 
      已跟踪的文件是指那些被纳入了版本控制的文件,它们的状态可能是未修改,已修改或已放入暂存区。
      初次克隆某个仓库的时候,工作目录中的所有文件都属于已跟踪文件,并处于未修改状态,因为 Git 刚刚检出了它们, 而你尚未编辑过它们。
      现在我们基于第三篇文章的自建 Git 仓库进行操作。

    一、Git版本控制
    1. 检查当前文件状态
    git status 命令查看哪些文件处于什么状态。
    我们在自己建的仓库下执行 git status 输出如下:

    $ git status
    On branch master
    No commits yet
    nothing to commit (create/copy files and use "git add" to track)
    

    分支名是“master”这是默认的分支名。
    现在我们的工作区什么文件都没有,我们新建一个 hello.txt 文件。内容为空。

    再次执行 git status 命令,输出如下:

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


    未追踪文件(Untracked files)下面列出了 hello.txt。表示我们新建的文件,处于未追踪的状态,即Git没有管理。
    因为此时,我们只是进行了如下操作:文件夹下新建了一个文本文件。

    2. 跟踪新文件
    git add <file> 命令,用于开始跟踪一个文件。
    此时我们要追踪 hello.txt,则运行 git add hello.txt 命令。并查看文件状态。

    $ git add hello.txt
    
    $ git status
    On branch master
    No commits yet
    Changes to be committed:
      (use "git rm --cached <file>..." to unstage)
            new file:   hello.txt
    

    此时 hello.txt 已被跟踪,并处于暂存状态,保存到了暂存区。文件的状态此时为已暂存(staged)。git add 是我们最常用的命令了吧。
    git add 命令使用文件或目录的路径作为参数;如果参数是目录的路径,该命令将跟踪该目录下的所有文件

    3. 修改已追踪文件
    hello.txt 已经加入了追踪,此时我们修改hello.txt,增加内容 hello world 并保存。
    运行 git status 查看文件状态。

    $ git status
    On branch master
    No commits yet
    
    Changes to be committed:
      (use "git rm --cached <file>..." to unstage)
            new file:   hello.txt
    
    Changes not staged for commit:
      (use "git add <file>..." to update what will be committed)
      (use "git restore <file>..." to discard changes in working directory)
            modified:   hello.txt
    

    文件 hello.txt 出现在 Changes not staged for commit 这行下面,说明已跟踪文件的内容发生了变化,但还没有放到暂存区。
    此时文件的状态为 已修改(modified)。
    要暂存这次更新,需要运行 git add 命令。
    这是个多功能命令:
    3.1 可以用它开始跟踪新文件
    3.2 把已跟踪的文件放到暂存区
    3.3 还能用于合并时把有冲突的文件标记为已解决状态等。

    再次执行 git add 命令,将本次的修改,放入暂存区。并查看文件状态。

    $ git add hello.txt
    
    $ git status
    On branch master
    No commits yet
    
    Changes to be committed:
      (use "git rm --cached <file>..." to unstage)
            new file:   hello.txt
    

    这一步提醒我们,已追踪的文件,每次修改完毕后,都要进行一次 git add 操作,将文件放入暂存区。

    4. git add的反操作。
    git rm --cached <file> 命令
    对于我们已经追踪的文件,即已经git add过的文件,我们想撤销 git add 操作,应该怎么办。
    此时应该执行git rm --cached <file> 命令。我们将刚才已追踪的hello.txt从暂存区撤销,并查看文件状态。

    $ git rm --cached hello.txt
    rm 'hello.txt'
    
    $ git status
    On branch master
    No commits yet
    
    Untracked files:
      (use "git add <file>..." to include in what will be committed)
            hello.txt
    
    nothing added to commit but untracked files present (use "git add" to track)
    


    此时,又回到了初始状态,等于我们刚刚新建了一个 hello.txt 文件,文件的状态为未追踪(Untracked)。

    下图为文件的状态流转图:





    总结:
    这篇文章,我们练习了三个命令。
    git status 命令查看哪些文件处于什么状态。
    git add <file> 命令,用于开始跟踪一个文件。
    git rm --cached <file> 命令,git add的反操作。

    转载自:知优码  https://www.javaidea.cn/topic/1235.html

  • 相关阅读:
    What Kind of Friends Are You? ZOJ 3960
    博弈随笔(未完待续)
    Mergeable Stack ZOJ
    LIS ZOJ
    差分约束 HDU
    How far away ? HDU
    wya费用流
    不知道说些什么
    ext大法好啊
    bzoj2348
  • 原文地址:https://www.cnblogs.com/beenupper/p/12526815.html
Copyright © 2011-2022 走看看