练习Gi第一天t

  1. 安装git
  2. 空白处右单击,如果有两个git图标,说明安装成功
  3. 新建一个空的文件夹,右单击,选择Git Bash Here,点击打开
  4. 输入git init,这个命令把这个目录初始化为Git可以管理的仓库,会发现当前目录下多了一个.git的目录,这个目录是Git用来跟踪管理版本库的,没事不要修改,否则后果自负,如果没看到,输入命令ls -ah即可看到
  5. 新建一个readme.txt文件,内容如下
    Git is a version control system.
    Git is free software.
  6. 输入 git  add 将文件添加到仓库,没有显示是正常的,不要惊慌
    $ git add readme.txt
  7. 输入 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有两行内容)。

  8. 继续修改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  提交文件了

  9. 接下来继续练习,输入git log

    $ git log
    commit 0dd2671771f340cfc2a2e073c0eb496cc8783dd1 (HEAD -> master)
    Author: unknown <[email protected]>
    Date:   Thu Mar 7 16:35:52 2019 +0800
    
        add distributed
    
    commit fceafb94394a1bf23487688410a60bb74bb1460d
    Author: unknown <[email protected]>
    Date:   Thu Mar 7 16:32:01 2019 +0800
    
        wrote a readme file
    

    这个命令可以查看提交的历史记录

  10. 我们可以使用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可以帮你,这个命令记录了你的每一次命令,重新进行回滚就好了

  11. Git跟踪并管理的是修改,而非文件。你的文件夹中能看见的文件叫工作区,add 命令后到暂存区,commit  命令会到版本库,再推送到远程仓库,每次修改,如果不用git add到暂存区,那就不会加入到commit中。
    场景1:当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改时,用命令git checkout -- file
    场景2:当你不但改乱了工作区某个文件的内容,还添加到了暂存区时,想丢弃修改,分两步,第一步用命令git reset HEAD <file>,就回到了场景1,第二步按场景1操作。
    场景3:已经提交了不合适的修改到版本库时,想要撤销本次提交,可以进行版本回退,不过前提是没有推送到远程仓库

  12. 一般情况下,你通常直接在文件管理器中把没用的文件删了,或者用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.txt
    git checkout其实是用版本库里的版本替换工作区的版本,无论工作区是修改还是删除,都可以“一键还原”。
    小结:命令git rm用于删除一个文件。如果一个文件已经被提交到版本库,那么你永远不用担心误删,但是要小心,你只能恢复文件到最新版本,你会丢失最近一次提交后你修改的内容

猜你喜欢

转载自blog.csdn.net/Y17868877685/article/details/88312819