zoukankan      html  css  js  c++  java
  • Git关于文件的状态

    一、自述

      在粗略学习完Git教程,特别是对分支管理这一章节的学习,有点力不从心,感觉学习知识优点杂,所有特地在写下这篇文章,弄清楚这其中涉及的知识点。

    二、git status的使用

    1、将learngit文件夹变为仓库后,第一次使用git status查看仓库状态

    1 $ git status
    2 On branch master  一个主分支master
    3 
    4 No commits yet  还没有提交过
    5 
    6 nothing to commit (create/copy files and use "git add" to track)  没有提交的内容(创建/复制文件并使用“git add”进行跟踪)

    2、创建文件readme.txt,写入内容Hello world!,第二次使用git status查看仓库状态

     1 $ git status
     2 On branch master
     3 
     4 No commits yet
     5 
     6 Untracked files:  没有追踪的文件
     7   (use "git add <file>..." to include in what will be committed)  使用git add <file>去添加它,并提交
     8 
     9         readme.txt  文件名
    10 
    11 nothing added to commit but untracked files present (use "git add" to track)  
    没有添加的内容供提交,但是目前没有添加的文件可以使用git add来追踪

     此时此刻,Git没有对readme.txt文件进行管理的权限(没有进行add,也就是追踪,记录到暂存区)

    3、添加文件到暂存区,第三次使用git status来查看仓库状态

    1 $ git status
    2 On branch master
    3 
    4 No commits yet
    5 
    6 Changes to be committed:  已暂存、已提交(暂存区)
    7   (use "git rm --cached <file>..." to unstage)  使用“git rm--cached<file>…”来取消存储
    8 
    9         new file:   readme.txt

    4、修改readme.txt,增加一行Hello Git!,第四次使用git status查看仓库状态

     1 $ git status
     2 On branch master
     3 
     4 No commits yet
     5 
     6 Changes to be committed:     保存的内容为Hello world!
     7   (use "git rm --cached <file>..." to unstage)
     8 
     9         new file:   readme.txt
    10 
    11 Changes not staged for commit:
    12   (use "git add <file>..." to update what will be committed)    更新提交
    13   (use "git checkout -- <file>..." to discard changes in working directory)  可以丢弃工作区的修改
    14 
    15         modified:   readme.txt  修改过的文件

    5、添加文件到暂存区,第五次使用git status来查看仓库状态

    1 $ git status
    2 On branch master
    3 
    4 No commits yet
    5 
    6 Changes to be committed:
    7   (use "git rm --cached <file>..." to unstage)
    8 
    9         new file:   readme.txt

    6、提交文件到本地库,第六次使用git status来查看仓库状态

    1 $ git status
    2 On branch master
    3 nothing to commit, working tree clean  工作区为空(工作区文件内容与版本库一致)

    三、撤销修改

    为了方便学习,重新配置仓库,对仓库进行初始化(readme.txt文件内容只有一句,Hello world!,没有add,也没有commit)

    1、对文件进行add,然后增加内容Hello Git!,查看状态

     1 $ git status
     2 On branch master
     3 
     4 No commits yet
     5 
     6 Changes to be committed:
     7   (use "git rm --cached <file>..." to unstage)
     8 
     9         new file:   readme.txt
    10 
    11 Changes not staged for commit:
    12   (use "git add <file>..." to update what will be committed)
    13   (use "git checkout -- <file>..." to discard changes in working directory)  可以看见这句话

    使用命令git checkout -- <file>退回到暂存区的状态

    1 $ git checkout -- readme.txt
    2 $ cat readme.txt
    3 Hello world!

    2、对文件进行add,查看状态

    1 $ git status
    2 On branch master
    3 
    4 No commits yet
    5 
    6 Changes to be committed:
    7   (use "git rm --cached <file>..." to unstage)
    8 
    9         new file:   readme.txt

    要想撤销暂存区的内容使用以下命令:

    1 $ git reset HEAD readme.txt
    2 fatal: ambiguous argument 'HEAD': unknown revision or path not in the working tree.
    3 Use '--' to separate paths from revisions, like this:
    4 'git <command> [<revision>...] -- [<file>...]'

    竟然会出错,不科学啊!原来是这个文件没有提交过,也就是没有进行commit,再次尝试。

    先将有Hello world!文件进行提价,再次进行操作。

    1 $ git reset HEAD readme.txt
    2 Unstaged changes after reset:
    3 M       readme.txt
    4 
    5 $ git checkout -- readme.txt  这一步必须要有
    6 
    7 $ cat readme.txt
    8 Hello world!

    四、删除文件

    1、手动删除了readme.txt文件,可以恢复

    $ rm readme.txt
    
    $ ll
    total 0
    
    
    $ git checkout -- readme.txt  将暂存区的文件恢复到工作区
    
    $ ll
    total 1
    -rw-r--r-- 1 86173 197609 13 8月   7 12:00 readme.txt

    2、手动删除了readme.txt文件,并且删除了暂存区的文件

     1 $ rm readme.txt
     2 
     3 $ ll
     4 total 0
     5 
     6 $ git rm readme.txt
     7 rm 'readme.txt'
     8 
     9 
    10 $ git reset HEAD readme.txt    将版本库里的文件恢复到暂存区
    11 Unstaged changes after reset:
    12 D       readme.txt
    13 
    14 $ ll
    15 total 0
    16 
    17 $ git checkout -- readme.txt  将暂存区的文件恢复到工作区
    18 
    19 $ ll
    20 total 1
    21 -rw-r--r-- 1 86173 197609 13 8月   7 12:06 readme.txt
  • 相关阅读:
    html 6 border border-width border-style border-color CSS三角形
    html 5 marign top right bottom left
    html 布局
    python学习——生成列表并修改其元素
    python学习——读取染色体长度(七:for循环对染色体序列进行反向互补)
    python学习——读取染色体长度(七:读取fasta文件)
    python学习——读取染色体长度(六:读取含有染色体长度的文件)
    python学习——读取染色体长度(五:从命令行输入染色体长度)
    python学习——读取染色体长度(四:获取最长染色体的编号)
    python学习——读取染色体长度(三、用循环或者函数求总长并获取最长染色体长度)
  • 原文地址:https://www.cnblogs.com/lilong74/p/11313394.html
Copyright © 2011-2022 走看看