Git 的基本语法

版权声明:未经容许,不得转载,原博客地址: https://blog.csdn.net/jingblog/article/details/81750908

git 创建版本库

        版本库又名仓库,英文名repository,你可以简单理解成一个目录,这个目录里面的所有文件都可以被Git管理起来,每个文件的修改、删除,Git都能跟踪,以便任何时刻都可以追踪历史,或者在将来某个时刻可以“还原”。

创建一个版本库    先建一个dome空目录

$ mkdir dome
$ cd dome
$ pwd

pwd命令用于显示当前目录。在电脑上,这个仓库位于      /c/Users/user/Desktop/gits/dome。

如果你使用Windows系统,为了避免遇到各种莫名其妙的问题,请确保目录名(包括父目录)不包含中文。

git init    把dome这个目录变成Git可以管理的创库

       Git会瞬间把仓库建好,而且告诉你是一个空的仓库(empty Git repository),在目录下会有一个 .git 的目录,不要手动修改这个目录里面的文件,不然改乱了,就把Git仓库给破坏了。

没有看到.git目录,是因为这个目录默认是隐藏的,用ls -ah命令就可以看见  .git  目录

        不是必须在空目录下进行创建版本库,目录有东西也可以把东西放入到版本库里,然后在添加到版本库里就好了,只是怕你在有重要文件的目录下学习git,会造成文件的丢失,造成不必要的麻烦。

把文件添加到版本库里

        首先要明确下,所有的版本控制系统,只能跟踪文本文件的改动,比如txt文件,网页,所有程序的代码等,Git也不列外,版本控制系统可以告诉你每次的改动,但是图片,视频这些二进制文件,虽能也能由版本控制系统管理,但没法跟踪文件的变化,只能把二进制文件每次改动串起来,也就是知道图片从1kb变成2kb,但是到底改了啥,版本控制也不知道。

现在在dome文件夹里建一个dome.txt文件里面写上“111”

第一步,用命令git add告诉Git,把文件添加到仓库:

$ git add dome.txt

第二步,用命令git commit告诉Git,把文件提交到仓库:

-m  后面 输入的是本次提交的说明,可以输任何内容,最好是有意义的,这样你就能从历史记录里方便地找到改动记录。

git commit命令执行成功后会告诉你,1 file changed:1个文件被改动(我们新添加的dome.txt文件);2 insertions:插入了1行内容(dome.txt有1行内容)。

Git添加文件需要 addcommit 两步是因为commit可以一次提交很多文件,所以可以多次add不同的文件

$ git add dome1.txt
$ git add dome2.txt dome3.txt
$ git commit -m "add 3 dome123."

git 文件修改

现在我们已经提交了一个dome.txt文件了,我们下面可以通过命令git status来查看是否还有文件未提交,如下:

说明没有文件被提交

现在在dome.txt文件里加上一行“222”,保存

现在执行 git status 命令  可以查看文件  dome.txt 的状态

git status命令可以让我们时刻掌握仓库当前的状态

上面的命令输出告诉我们,dome.txt被修改过了,但  是未被提交到仓库的修改。

想看dome.txt 文件到底修改了什么内容,需要用到   git diff  

git diff顾名思义就是查看difference,显示的格式正是Unix通用的diff格式,可以从上面的命令输出看到,我们在第一行添加了一个222。

执行  git diff  后我们知道dome.txt文件被修改过了,这样就可以放心的把文件放到仓库里了。

第一步  git add

第二部  git commit -m “dome.txt 第一次修改”

现在文件修改了也提交到版本库了。

版本退回

修改文件dome.txt加一行333和一行444,提交到版本库里,备注是xxxxxxxx。

查看历史提交记录用   git log  命令

git log命令显示从最近到最远的提交日志

如果记录太多可以加上   --pretty=oneline   参数

需要友情提示的是,你看到的一大串类似7321b2a...的是commit id(版本号),和SVN不一样,Git的commit id不是1,2,3……递增的数字,而是一个SHA1计算出来的一个非常大的数字,用十六进制表示,而且你看到的commit id和我的肯定不一样,以你自己的为准。为什么commit id需要用这么一大串数字表示呢?因为Git是分布式的版本控制系统,后面我们还要研究多人在同一个版本库里工作,如果大家都用1,2,3……作为版本号,那肯定就冲突了。

版本退回,Git必须知道当前版本是哪个版本,在Git中,用HEAD表示当前版本,也就是最新的提交7321b2a...(注意我的提交ID和你的肯定不一样),上一个版本就是HEAD^,上上一个版本就是HEAD^^,当然往上100个版本写100个^比较容易数不过来,所以写成HEAD~100

现在,我们要把当前版本append GPL回退到上一个版本add distributed,就可以使用git reset命令:

现在版本退回去了,是上一个版本

如果想回到“xxxxxxxx”版本,首先要知道“xxxxxxxx”的版本号,如果软件没有关,可以很快的找到版本号如果软件关了,版本号可以通过  git reflog  命令来获取“xxxxxxxx”的版本号

git reflog 用来记录你的每一次命令

想退回那个版本用 git reset --hard 版本号,现在退回到 "xxxxxxxx"版本 git reset --hard 7321d2a 

退回的版本号不用全写,写开头几位就好。

这样版本就退回去了。

Git的版本回退速度非常快,因为Git在内部有个指向当前版本的HEAD指针,当你回退版本的时候,Git仅仅是把HEAD从指向append GPL,改为指向add distributed

然后顺便把工作区的文件更新了。所以你让HEAD指向哪个版本号,你就把当前版本定位在哪。

未完。。。

猜你喜欢

转载自blog.csdn.net/jingblog/article/details/81750908