一步一步教你学会使用git 第一集(超详细,图文)

  1. https://git-scm.com/downloads上下载git for windows
    一步一步教你学会使用git 第一集(超详细,图文)
    一步一步教你学会使用git 第一集(超详细,图文)
  2. 安装过程非常简单,一路next即可,所有的设置都使用用默认设置。
    一步一步教你学会使用git 第一集(超详细,图文)
    一步一步教你学会使用git 第一集(超详细,图文)
  3. 安装完毕后在桌面点击右键,在弹出的对话框当中出现“Git GUI Here”和“Git Bash Here”表示安装成功。
    一步一步教你学会使用git 第一集(超详细,图文)
  4. 在桌面创建一个新的文件夹,取名为test。进入该文件夹鼠标右键在弹出的菜单当中点击Git Bash Here,此时会打开git编辑窗口如下图:
    一步一步教你学会使用git 第一集(超详细,图文)
  5. 在弹出的窗口当中输入git init命令,会提示已经初始化完毕一个空的git仓库,如下图:
    一步一步教你学会使用git 第一集(超详细,图文)
    此时再文件夹当中会多出一个.git的隐藏文件夹,如下图:
    一步一步教你学会使用git 第一集(超详细,图文)
  6. 在该文件夹下创建一个HelloWorld.java的文件,内容如下:
    public class HelloWorld {
    	public static void main(String[] args) {
    		System.out.println("hello world");
    	}
    }

    一步一步教你学会使用git 第一集(超详细,图文)

  7. 在git编辑窗口当中输入git status 会检测到刚刚创建的文件,提示检测到有一个没有被追踪的文件,如下图:
    一步一步教你学会使用git 第一集(超详细,图文)
  8. 输入 git add命令添加HelloWorld.java,如果没有出现任何提示信息则表示添加成功,如下图:
    一步一步教你学会使用git 第一集(超详细,图文)
  9. 此时再次使用git status命令检查git状态,发现提示已经刚刚添加了一个文件,可以提交了。如下图:
    一步一步教你学会使用git 第一集(超详细,图文)
  10. 输入git commit -m "新增了HelloWorld.java 文件"后回车将刚刚创建的HelloWorld.java文件提交,如下图:
    一步一步教你学会使用git 第一集(超详细,图文)
  11. 输入git log命令查看git日志信息,如下图:
    一步一步教你学会使用git 第一集(超详细,图文)
    此处生成了唯一标识符的字符串,以及作者和生成日期。
  12. 修改HelloWorld.java类,修改后的代码如下:
    public class HelloWorld {
    	public static void main(String[] args) {
    		System.out.println("hello world");
    		System.out.println("修改了HelloWorld类");
    	}
    }

     

  13. 此时再git窗口当中再次输入git status则获得如下提示信息,如下图:
    一步一步教你学会使用git 第一集(超详细,图文)
  14. 在git窗口输入 git commit -m "修改了HelloWorld.java文件,增加了一行输出",此时会将刚刚修改的文件提交,如下图:
    一步一步教你学会使用git 第一集(超详细,图文)
  15. 如上图所示,结果提示"no changes added to commit"(提交时没任何改变),表明提交失败。 切记,修改后还需要再add才能commit。
  16. 此时输入git add HelloWorld.java,然后git status看到提示modified: HelloWorld.java。表示文件被更改,然后再次输入git commit命令提交将刚刚修改的文件提交。如下图:
    一步一步教你学会使用git 第一集(超详细,图文)
  17. 如果再次修改文件则依然是git add,然后再git commit。否则不会提交。
  18. 我们再次在HelloWorld.java文件当中添加一行代码。然后git add、git commit,如下图:
    public class HelloWorld {
    	public static void main(String[] args) {
    		System.out.println("hello world");
    		System.out.println("修改了HelloWorld类");
    		System.out.println("第二次修改");
    	}
    }

    一步一步教你学会使用git 第一集(超详细,图文)
    使用git log查看日志时最新的日志信息在第一条,如上图。
  19. git有三个区域,如下图:
    一步一步教你学会使用git 第一集(超详细,图文)
    工作区就是你干活的区域,此时你修改了文件后会将修改的内容保存到git的工作区。我们使用git status命令查看状态时可以检测到工作区的文件已经发生了改变,同时由于没有将文件存入暂存区,所以无法使用git commit命令提交。因此我们改变了文件后需要使用git add命令将文件保存到暂存区后再使用git commit命令提交即可。
  20. 在工作区当中内容发生了改变,还可以通过checkout命令撤销对文件的修改。现在我们继续编辑HelloWorld.java文件,再次添加一行输出,代码如下:
    public class HelloWorld {
    	public static void main(String[] args) {
    		System.out.println("hello world");
    		System.out.println("修改了HelloWorld类");
    		System.out.println("第二次修改");
    		out(“错误的代码“);
    	}
    }

    很明显最后一行代码写错了,此时我们可以在git命令窗口输入git status命令查看git的状态,如下图:
    一步一步教你学会使用git 第一集(超详细,图文)
    发现提示文件又被改变了,下面还有一行文字显示git checkout --<file>,表示通过git checkout --文件名的形式可以撤销对文件的改变,如下图:
    一步一步教你学会使用git 第一集(超详细,图文)
    提示出错了,原来在--后面需要增加一个空格才能再写文件名。重新输入 git checkout -- HelloWorld.java后撤销成功,如下图:
    一步一步教你学会使用git 第一集(超详细,图文)
    此时再次打开HelloWorld.java,发现刚刚添加的那行错误代码没有了,如下图:
    一步一步教你学会使用git 第一集(超详细,图文)

  21. 另一种情况,当你改完了文件后并且已经执行了git add,那么git会提示你执行git reset HEAD 文件名的形式撤销对暂存区的修改。我们来做实验。
  22. 再次在HelloWorld.java文件当中添加那一行错误代码,这次执行git add。
  23. 使用git status查看git的状态,如下图:
    一步一步教你学会使用git 第一集(超详细,图文)
  24. 接着我们执行git reset HEAD HelloWorld.java,然后再次执行git status查看文件又回到了git的工作区,我们看到文件的提示信息又回到了红色,如下图:
    一步一步教你学会使用git 第一集(超详细,图文)
  25. 我们再次执行git checkout -- HelloWorld.java将之前修改的文件撤销。然后再看文件被修改的信息没有了,如下图:
    一步一步教你学会使用git 第一集(超详细,图文)
    git log 有个选项,加上 --pretty=oneline可以使日志以简化的形式显示,如下图:
    一步一步教你学会使用git 第一集(超详细,图文)
  26. 如果我们已经提交了文件,想退回到上一个版本可以使用git reset --hard HEAD^命令,如下图:
    一步一步教你学会使用git 第一集(超详细,图文)
    这样将退回到上一个版本之前,再次打开HelloWorld.java文件查看 ,内容如下图:
    一步一步教你学会使用git 第一集(超详细,图文)
    HEAD表示当前版本、HEAD^表示上一个版本,HEAD^^表示前两个 版本,如果要是退回到50个版本之前呢?难道说要写50个^^吗?当然不用,我们可以使用HEAD~50即可。
  27. 我们已经回退到了上一个版本之前,那么版本库是否把握之前写的内容给删除了呢?答案当然不是,我们可以使用git reflog命令查看所有已经提交的版本信息。如下图所示:
    一步一步教你学会使用git 第一集(超详细,图文)
    因此可以看出git可以保留你对文件的任何一个修改。
    git是分布式的版本控制工具,因此它使用一大串字符串唯一标识每次提交的版本。如下图所示:
    一步一步教你学会使用git 第一集(超详细,图文)
    git版本回退速度非常快,因为git在内部有个指向当前版本的HEAD指针,当你版本回退的时候git仅仅是将指针移动而已。
    一步一步教你学会使用git 第一集(超详细,图文)
  28. 知道了前面标识符含义以后我们可以使用git reset --hard 标识符的形式恢复任意版本的内容,例如将刚刚退回的版本再恢复,如下图所示:
    一步一步教你学会使用git 第一集(超详细,图文)
    此时查看HelloWorld.java文件,内容如下:
    一步一步教你学会使用git 第一集(超详细,图文)
    可以看见内容已经被恢复。
  29. 新增一个test.txt文件,内容如下:
    一步一步教你学会使用git 第一集(超详细,图文)
  30. 此时使用git status命令查看发现检测到了添加了一个新的文本文件。如下图:
    一步一步教你学会使用git 第一集(超详细,图文)
  31. 执行git add test.txt将test.txt添加到暂存区,然后通过git commit -m "新增了test.txt"将其提交
  32. 此时删除test.txt文件,然后通过git status查看状态,如下图:
    一步一步教你学会使用git 第一集(超详细,图文)
    此时git已经侦测到了有一个名叫test.txt的文件被删除了,它提示我们可以使用git checkout -- <file>的形式恢复工作区的删除动作。注意--和file之间有个空格。
  33. 执行git checkout -- test.txt恢复删除的操作。此时刚刚被删除的文件又被找回来了。如下图:
    一步一步教你学会使用git 第一集(超详细,图文)
  34. 如果想把仓库里的文件删除可以使用rm命令,使用git rm test.txt命令删除仓库当中的文件,同时使用git status查看状态,如下图:
    一步一步教你学会使用git 第一集(超详细,图文)
    发现你已经将仓库当中的test.txt给删除了,同时目录当中的test.txt也一并被删除,不过我们现在还没有提交。我们可以使用git reset HEAD <file>来废弃刚才的操作。
  35. 输入git rest HEAD test.txt,然后查看git的状态如下图:
    一步一步教你学会使用git 第一集(超详细,图文)
    我们看到test.txt的提示信息已经变成了红色。此时我们可以使用git checkout -- <file>的语句来放弃对工作区的改变,此时文件也就恢复了。
  36. 执行git checkout -- test.txt命令,我们发现刚刚被删除的文件又恢复了。如下图:
    一步一步教你学会使用git 第一集(超详细,图文)
  37. 当你最终要确定删除test.txt文件时可以执行git rm test.txt将其删掉,然后执行git commit 提交,此时test.txt就会真正的被删除掉。如下图:
    一步一步教你学会使用git 第一集(超详细,图文)
    此时我们再打开文件目录发现test.txt已经不存在了。如下图:
    一步一步教你学会使用git 第一集(超详细,图文)
  38. 这时候再次执行git status发现提示没做任何事情和提示信息,表示test.txt文件确实不存在了,如下图:
    一步一步教你学会使用git 第一集(超详细,图文)
    执行git log发现日志上提示test.txt文件已经被删除,如下图:
    一步一步教你学会使用git 第一集(超详细,图文)

    下一篇:一步一步教你学会使用git 第二集