管理修改
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
最终你只会有一个提交 - 第二次提交将代替第一次提交的结果。
撤消对文件的修改
创建一个新文件“Redo.txt”,并添加到仓库里。
1
this Is For Redo.
修改文档
1
2this Is For Redo.
test redo.查看状态
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
$ git checkout -- "Redo.txt"
查看“Redo.txt”,那些修改已经被撤消了。
取消暂存的文件
再次修改“Redo.txt”, 并add到暂存区。
1
2this Is For Redo.
test redo.查看状态
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撤销修改
用命令git reset HEAD file可以把暂存区的修改撤销掉(unstage),重新放回工作区1
2
3$ git reset HEAD Redo.txt
Unstaged changes after reset:
M Redo.txtNote: HEAD - 表示最新的版本。
- 再次查看状态
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")
删除文件
- 创建一个新文件“delete.txt”,并添加到仓库里。
- 把工作目录中的文件删除。
查看状态
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")删除
从版本库中删除该文件
1
2
3
4
5
6
7
8huyongfei@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] 是一个危险的命令。 你对那个文件做的任何修改都会消失 - 你只是拷贝了另一个文件来覆盖它。 除非你确实清楚不想要那个文件了,否则不要使用这个命令。