- 安装git
- 空白处右单击,如果有两个git图标,说明安装成功
- 新建一个空的文件夹,右单击,选择Git Bash Here,点击打开
- 输入git init,
这个
命令把这个目录初始化为Git可以管理的仓库,会发现当前目录下多了一个.git的目录,这个目录是Git用来跟踪管理版本库的,没事不要修改,否则后果自负,如果没看到,输入命令ls -ah即可看到
- 新建一个readme.txt文件,内容如下
Git is a version control system. Git is free software.
- 输入 git add 将文件添加到仓库,没有显示是正常的,不要惊慌
$ git add readme.txt
- 输入 git commit 将文件提交到仓库
$ git commit -m "wrote a readme file" [master (root-commit) eaadf4e] wrote a readme file 1 file changed, 2 insertions(+) create mode 100644 readme.txt
简单解释一下
git commit
命令,-m
后面输入的是本次提交的说明,可以输入任意内容,当然最好是有意义的,这样你就能从历史记录里方便地找到改动记录。git commit
命令执行成功后会告诉你,1 file changed
:1个文件被改动(我们新添加的readme.txt文件);2 insertions
:插入了两行内容(readme.txt有两行内容)。 -
继续修改readme.txt文件,改成如下内容:
Git is a distributed version control system. Git is free software.
输入git status ,这个命令可以查看仓库当前状态
$ 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: readme.txt no changes added to commit (use "git add" and/or "git commit -a")
输入git diff,这个命令可以查看修改内容
$ git diff readme.txt diff --git a/readme.txt b/readme.txt index d8036c1..013b5bc 100644 --- a/readme.txt +++ b/readme.txt @@ -1,2 +1,2 @@ -Git is a version control system. +Git is a distributed version control system. Git is free software. \ No newline at end of file
好了,现在可以放心的使用 add 和 commit 提交文件了
-
接下来继续练习,输入git log
$ git log commit 0dd2671771f340cfc2a2e073c0eb496cc8783dd1 (HEAD -> master) Author: unknown <yuxiaoni@tuhu.ad> Date: Thu Mar 7 16:35:52 2019 +0800 add distributed commit fceafb94394a1bf23487688410a60bb74bb1460d Author: unknown <yuxiaoni@tuhu.ad> Date: Thu Mar 7 16:32:01 2019 +0800 wrote a readme file
这个命令可以查看提交的历史记录
-
我们可以使用git reset命令进行历史回滚,将版本回退到之前的版本
$ git reset --hard HEAD HEAD is now at 0dd2671 add distributed
现在可以看一下文件,已经回到了之前的样子,HEAD是一个指针,会一直跟着最新的版本,当进行回退时,可以换成版本号,例如 $ git reset --hard 0dd2,如果你进行了三次修改,像回退到第二次,结果不小心回退到了第一次,也没有关系,只要当前命令行没有关闭,你往上找到git log ,commit后面的就是版本id,然后再次回退就可以了,版本号写几位就可以了,git自己会找
Git的版本回退速度非常快,因为Git在内部有个指向当前版本的HEAD
指针,当你回退版本的时候,Git仅仅是把HEAD从指向你回滚的版本了
如果你关掉了命令行,然后又后悔了,也没有关系,git relog可以帮你,这个命令记录了你的每一次命令,重新进行回滚就好了 -
Git跟踪并管理的是修改,而非文件。你的文件夹中能看见的文件叫工作区,add 命令后到暂存区,commit 命令会到版本库,再推送到远程仓库,每次修改,如果不用
git add
到暂存区,那就不会加入到commit
中。
场景1:当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改时,用命令git checkout -- file
场景2:当你不但改乱了工作区某个文件的内容,还添加到了暂存区时,想丢弃修改,分两步,第一步用命令git reset HEAD <file>
,就回到了场景1,第二步按场景1操作。
场景3:已经提交了不合适的修改到版本库时,想要撤销本次提交,可以进行版本回退,不过前提是没有推送到远程仓库 -
一般情况下,你通常直接在文件管理器中把没用的文件删了,或者用
rm
命令删了:$ git readme.txt
这个时候,Git知道你删除了文件,因此,工作区和版本库就不一致了,git status
命令会立刻告诉你哪些文件被删除了:
现在你有两个选择,一是确实要从版本库中删除该文件,那就用命令git rm
删掉,并且git commit
:$ git rm readme.txt rm 'readme.txt' $ git commit -m "remove readme.txt" [master d46f35e] remove readme.txt 1 file changed, 1 deletion(-) delete mode 100644 readme.txt
删除文件
阅读: 558482
在Git中,删除也是一个修改操作,我们实战一下,先添加一个新文件
test.txt
到Git并且提交:$ git add test.txt $ git commit -m "add test.txt" [master b84166e] add test.txt 1 file changed, 1 insertion(+) create mode 100644 test.txt
一般情况下,你通常直接在文件管理器中把没用的文件删了,或者用
rm
命令删了:$ rm test.txt
这个时候,Git知道你删除了文件,因此,工作区和版本库就不一致了,
git status
命令会立刻告诉你哪些文件被删除了:$ 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: test.txt no changes added to commit (use "git add" and/or "git commit -a")
现在你有两个选择,一是确实要从版本库中删除该文件,那就用命令
git rm
删掉,并且git commit
:$ git rm test.txt rm 'test.txt' $ git commit -m "remove test.txt" [master d46f35e] remove test.txt 1 file changed, 1 deletion(-) delete mode 100644 test.txt
现在,文件就从版本库中被删除了。
小提示:先手动删除文件,然后使用git rm <file>和git add<file>效果是一样的。
删除文件
阅读: 558482
在Git中,删除也是一个修改操作,我们实战一下,先添加一个新文件
test.txt
到Git并且提交:$ git add test.txt $ git commit -m "add test.txt" [master b84166e] add test.txt 1 file changed, 1 insertion(+) create mode 100644 test.txt
一般情况下,你通常直接在文件管理器中把没用的文件删了,或者用
rm
命令删了:$ rm test.txt
这个时候,Git知道你删除了文件,因此,工作区和版本库就不一致了,
git status
命令会立刻告诉你哪些文件被删除了:$ 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: test.txt no changes added to commit (use "git add" and/or "git commit -a")
现在你有两个选择,一是确实要从版本库中删除该文件,那就用命令
git rm
删掉,并且git commit
:$ git rm test.txt rm 'test.txt' $ git commit -m "remove test.txt" [master d46f35e] remove test.txt 1 file changed, 1 deletion(-) delete mode 100644 test.txt
现在,文件就从版本库中被删除了。
小提示:先手动删除文件,然后使用git rm <file>和git add<file>效果是一样的。
另一种情况是删错了,因为版本库里还有呢,所以可以很轻松地把误删的文件恢复到最新版本:
$ git checkout --readme.txtgit checkout
其实是用版本库里的版本替换工作区的版本,无论工作区是修改还是删除,都可以“一键还原”。
小结:命令git rm
用于删除一个文件。如果一个文件已经被提交到版本库,那么你永远不用担心误删,但是要小心,你只能恢复文件到最新版本,你会丢失最近一次提交后你修改的内容
练习Gi第一天t
最新推荐文章于 2024-05-24 20:20:47 发布