Git仓库-基本操作

管理修改

Git跟踪并管理的是修改,而非文件。
每次修改,如果不add到暂存区,那就不会加入到commit中。
(可以多次add, 一次commit)第一次修改 -> git add -> 第二次修改 -> git add …… -> git commit

撤消操作

在任何一个阶段,你都有可能想要撤消某些操作。有时候我们提交完了才发现漏掉了几个文件没有添加,或者提交信息写错了。 此时,可以运行带有 –amend 选项的提交命令尝试重新提交:

1
2
3
$ git commit -m 'initial commit'
$ git add status.txt
$ git commit --amend

最终你只会有一个提交 - 第二次提交将代替第一次提交的结果。

撤消对文件的修改

  1. 创建一个新文件“Redo.txt”,并添加到仓库里。

    1
    this Is For Redo.
  2. 修改文档

    1
    2
    this Is For Redo.
    test redo.
  3. 查看状态

    1
    2
    3
    4
    5
    6
    7
    8
    9
    $ git status
    On branch master
    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: Redo.txt

    no changes added to commit (use "git add" and/or "git commit -a")

  4. 撤销修改

    1
    $ git checkout -- "Redo.txt"

查看“Redo.txt”,那些修改已经被撤消了。

取消暂存的文件

  1. 再次修改“Redo.txt”, 并add到暂存区。

    1
    2
    this Is For Redo.
    test redo.
  2. 查看状态

    1
    2
    3
    4
    5
    6
    $ git status
    On branch master
    Changes to be committed:
    (use "git reset HEAD <file>..." to unstage)

    modified: Redo.txt
  3. 撤销修改
    用命令git reset HEAD file可以把暂存区的修改撤销掉(unstage),重新放回工作区

    1
    2
    3
    $ git reset HEAD Redo.txt
    Unstaged changes after reset:
    M Redo.txt

    Note: HEAD - 表示最新的版本。

  4. 再次查看状态
    1
    2
    3
    4
    5
    6
    7
    8
    9
    $ git status
    On branch master
    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: Redo.txt

    no changes added to commit (use "git add" and/or "git commit -a")

删除文件

  1. 创建一个新文件“delete.txt”,并添加到仓库里。
  2. 把工作目录中的文件删除。
  3. 查看状态

    1
    2
    3
    4
    5
    6
    7
    8
    9
    $ git status
    On branch master
    Changes not staged for commit:
    (use "git add/rm <file>..." to update what will be committed)
    (use "git checkout -- <file>..." to discard changes in working directory)

    deleted: delete.txt

    no changes added to commit (use "git add" and/or "git commit -a")

  4. 删除

  • 从版本库中删除该文件

    1
    2
    3
    4
    5
    6
    7
    8
    huyongfei@huyongfei-pc MINGW32 /g/study (master)
    $ git rm delete.txt
    rm 'delete.txt'

    $ git commit -m "remove delete.txt"
    [master a783942] remove delete.txt
    1 file changed, 0 insertions(+), 0 deletions(-)
    delete mode 100644 delete.txt

  • 删错了
    就得从库里把误删的文件恢复到最新版本。

    $ git checkout --delete.txt
    

    Note:
    git checkout – [file] 是一个危险的命令。 你对那个文件做的任何修改都会消失 - 你只是拷贝了另一个文件来覆盖它。 除非你确实清楚不想要那个文件了,否则不要使用这个命令。

唐胡璐 wechat
欢迎您扫一扫上面的微信公众号,订阅我的博客!
分享创造价值,您的支持将鼓励我继续前行!