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

  1. https://git-scm.com/downloads上下载git for windows

  2. 安装过程非常简单,一路next即可,所有的设置都使用用默认设置。

  3. 安装完毕后在桌面点击右键,在弹出的对话框当中出现“Git GUI Here”和“Git Bash Here”表示安装成功。
  4. 在桌面创建一个新的文件夹,取名为test。进入该文件夹鼠标右键在弹出的菜单当中点击Git Bash Here,此时会打开git编辑窗口如下图:
  5. 在弹出的窗口当中输入git init命令,会提示已经初始化完毕一个空的git仓库,如下图:

    此时再文件夹当中会多出一个.git的隐藏文件夹,如下图:
  6. 在该文件夹下创建一个HelloWorld.java的文件,内容如下:
    public class HelloWorld {
    	public static void main(String[] args) {
    		System.out.println("hello world");
    	}
    }

  7. 在git编辑窗口当中输入git status 会检测到刚刚创建的文件,提示检测到有一个没有被追踪的文件,如下图:
  8. 输入 git add命令添加HelloWorld.java,如果没有出现任何提示信息则表示添加成功,如下图:
  9. 此时再次使用git status命令检查git状态,发现提示已经刚刚添加了一个文件,可以提交了。如下图:
  10. 输入git commit -m "新增了HelloWorld.java 文件"后回车将刚刚创建的HelloWorld.java文件提交,如下图:
  11. 输入git log命令查看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则获得如下提示信息,如下图:
  14. 在git窗口输入 git commit -m "修改了HelloWorld.java文件,增加了一行输出",此时会将刚刚修改的文件提交,如下图:
  15. 如上图所示,结果提示"no changes added to commit"(提交时没任何改变),表明提交失败。 切记,修改后还需要再add才能commit。
  16. 此时输入git add HelloWorld.java,然后git status看到提示modified: HelloWorld.java。表示文件被更改,然后再次输入git commit命令提交将刚刚修改的文件提交。如下图:
  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 log查看日志时最新的日志信息在第一条,如上图。
  19. 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 checkout --<file>,表示通过git checkout --文件名的形式可以撤销对文件的改变,如下图:

    提示出错了,原来在--后面需要增加一个空格才能再写文件名。重新输入 git checkout -- HelloWorld.java后撤销成功,如下图:

    此时再次打开HelloWorld.java,发现刚刚添加的那行错误代码没有了,如下图:

  21. 另一种情况,当你改完了文件后并且已经执行了git add,那么git会提示你执行git reset HEAD 文件名的形式撤销对暂存区的修改。我们来做实验。
  22. 再次在HelloWorld.java文件当中添加那一行错误代码,这次执行git add。
  23. 使用git status查看git的状态,如下图:
  24. 接着我们执行git reset HEAD HelloWorld.java,然后再次执行git status查看文件又回到了git的工作区,我们看到文件的提示信息又回到了红色,如下图:
  25. 我们再次执行git checkout -- HelloWorld.java将之前修改的文件撤销。然后再看文件被修改的信息没有了,如下图:

    git log 有个选项,加上 --pretty=oneline可以使日志以简化的形式显示,如下图:
  26. 如果我们已经提交了文件,想退回到上一个版本可以使用git reset --hard HEAD^命令,如下图:

    这样将退回到上一个版本之前,再次打开HelloWorld.java文件查看 ,内容如下图:

    HEAD表示当前版本、HEAD^表示上一个版本,HEAD^^表示前两个 版本,如果要是退回到50个版本之前呢?难道说要写50个^^吗?当然不用,我们可以使用HEAD~50即可。
  27. 我们已经回退到了上一个版本之前,那么版本库是否把握之前写的内容给删除了呢?答案当然不是,我们可以使用git reflog命令查看所有已经提交的版本信息。如下图所示:

    因此可以看出git可以保留你对文件的任何一个修改。
    git是分布式的版本控制工具,因此它使用一大串字符串唯一标识每次提交的版本。如下图所示:

    git版本回退速度非常快,因为git在内部有个指向当前版本的HEAD指针,当你版本回退的时候git仅仅是将指针移动而已。
  28. 知道了前面标识符含义以后我们可以使用git reset --hard 标识符的形式恢复任意版本的内容,例如将刚刚退回的版本再恢复,如下图所示:

    此时查看HelloWorld.java文件,内容如下:

    可以看见内容已经被恢复。
  29. 新增一个test.txt文件,内容如下:
  30. 此时使用git status命令查看发现检测到了添加了一个新的文本文件。如下图:
  31. 执行git add test.txt将test.txt添加到暂存区,然后通过git commit -m "新增了test.txt"将其提交
  32. 此时删除test.txt文件,然后通过git status查看状态,如下图:

    此时git已经侦测到了有一个名叫test.txt的文件被删除了,它提示我们可以使用git checkout -- <file>的形式恢复工作区的删除动作。注意--和file之间有个空格。
  33. 执行git checkout -- test.txt恢复删除的操作。此时刚刚被删除的文件又被找回来了。如下图:
  34. 如果想把仓库里的文件删除可以使用rm命令,使用git rm test.txt命令删除仓库当中的文件,同时使用git status查看状态,如下图:

    发现你已经将仓库当中的test.txt给删除了,同时目录当中的test.txt也一并被删除,不过我们现在还没有提交。我们可以使用git reset HEAD <file>来废弃刚才的操作。
  35. 输入git rest HEAD test.txt,然后查看git的状态如下图:

    我们看到test.txt的提示信息已经变成了红色。此时我们可以使用git checkout -- <file>的语句来放弃对工作区的改变,此时文件也就恢复了。
  36. 执行git checkout -- test.txt命令,我们发现刚刚被删除的文件又恢复了。如下图:
  37. 当你最终要确定删除test.txt文件时可以执行git rm test.txt将其删掉,然后执行git commit 提交,此时test.txt就会真正的被删除掉。如下图:

    此时我们再打开文件目录发现test.txt已经不存在了。如下图:
  38. 这时候再次执行git status发现提示没做任何事情和提示信息,表示test.txt文件确实不存在了,如下图:

    执行git log发现日志上提示test.txt文件已经被删除,如下图:


    下一篇:一步一步教你学会使用git 第二集
  • 6
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值