Git实践笔记(一)

Git是什么

Git是目前世界上最先进的分布式版本控制系统。
工作原理 / 流程:
图片描述
Workspace:工作区
Index / Stage:暂存区
Repository:仓库区(或本地仓库)
Remote:远程仓库

SVN与Git的区别

1、Git 是分布式的,SVN 不是:这是 Git 和其它非分布式的版本控制系统,例如 SVN,CVS 等,最核心的区别。

2、Git 把内容按元数据方式存储,而 SVN 是按文件:所有的资源控制系统都是把文件的元信息隐藏在一个类似 .svn、.cvs 等的文件夹里。

3、Git 分支和 SVN 的分支不同:分支在 SVN 中一点都不特别,其实它就是版本库中的另外一个目录。

4、Git 没有一个全局的版本号,而 SVN 有:目前为止这是跟 SVN 相比 Git 缺少的最大的一个特征。

5、Git 的内容完整性要优于 SVN:Git 的内容存储使用的是 SHA-1 哈希算法。这能确保代码内容的完整性,确保在遇到磁盘故障和网络问题时降低对版本库的破坏。

初始化版本库

  1. 通过命令 git init 把这个目录变成git可以管理的仓库。

文件的创建、提交、修改

  1. 使用命令 git add test.txt添加到暂存区里面去。

  2. 用命令 git commit告诉Git,把文件提交到仓库。

  3. 通过命令git status来查看是否还有文件未提交。

  4. 继续来改下test.txt内容,继续使用git status来查看下结果。

    上面的命令告诉我们 test.txt文件已被修改,但是修改未被提交。

  5. 查看test.txt文件到底改了什么内容 ,使用git diff test.txt

    上面的命令告诉我们 test.txt文件的修改是从1111 修改为了1111 2222

  6. 知道了test.txt文件的具体修改后,我们可以选择的提交到仓库。

    提交修改和提交文件是一样的2步(第一步是git add 第二步是:git commit)

版本回退

  1. 继续对test.txt文件进行修改并提交,修改为333333

  2. 到目前为止已经对test.txt文件做了三次修改了,查看历史记录可以使用git log。

  3. 版本回退操作,要使用什么命令呢?

    第一种是:git reset --hard HEAD^

    可以看到文件已经由版本3的“333333”变回了“1111 2222”版本2的状态

  4. 继续使用git log 来查看下历史记录信息

    可以看到最后一次提交的版本3的记录没有了

  5. 想回退到最新的版本,“333333“的内容要如何恢复呢?我们可以通过版本号回退。

    先通过git reflog 命令,获取到版本号。

    可以看到版本3的版本号是f608216(看到我这个commit 典型的脑残案例昂,每次都是一样的commit然后就分不出版本了,喵唔唔...)

    然后使用git reset --hard f608216来恢复。

    使用 cat test.txt 惊喜的发现版本3 回来了hhhhh

    内容参考

    https://www.runoob.com/git/git-tutorial.html

    http://www.imooc.com/article/20411

原文地址:https://www.cnblogs.com/zhangzizi/p/14265783.html