Git 是目前世界上最先进的分布式版本控制系统(没有之一)。
安装GIt
$ git config --global user.name "Your Name"
$ git config --global user.email "email@example.com"//用这两个命令来配置你的名字和email
git config 命令的--global参数,用了这个参数,表示你这台机器上所有的 Git 仓库都会使用这个配置,当然也可以对某个仓库指定不同的用户名和 Email 地址。
创建版本库
什么是版本库呢?版本库又名仓库,英文名 repository,你可以简单理解成一个目录,这个目录里面的所有文件都可以被 Git 管理起来,每个文件的修改、删除,Git 都能跟踪,以便任何时刻都可以追踪历史,或者在将来某个时刻可以“还原”。
1.创建一个文件
$ mkdir learngit //用于创建一个learngit文件 在当地
$ cd learngit //切换到当前目录下
$ pwd //查看该文件的完整目录
$ git init //将这个目录变成Git可以管理的仓库
这时候该目录下会有一个隐藏的.git目录,用ls -ah可以看见
在该目录下创建一个文本readme,(所有的版本控制系统都只能跟踪文本文件的改动,,而图片、视频等二进制文件只能跟踪他的大小)注意windows的记事本可能会有些错误,
$ git add readme.txt //告诉Git,把文件添加到仓库(可反复多次使用,添加多个文件)
$ git commit -m "wrote a readme file" //告诉Git,把文件提交到仓库
git commit命令,-m后面输入的是本次提交的说明,可以输入任意内容,当然最好是有意义的,这样你就能从历史记录里方便地找到改动记录。
时光穿梭机(注重于本地的一些操作)
git status 命令可以让我们时刻掌握仓库当前的状态
git diff 顾名思义就是查看 difference,例如查看修改的内容
git log 命令显示从最近到最远的提交日志 //如果嫌输出信息太多,看得眼花缭乱的,可以试试加上--pretty=oneline参数(告诉你一个小消息,cat readme.txt 可以查看readme.txt文件的内容)
$ git reset --hard HEAD^ //将版本返回到上一个版本,HEAD表示当前的版本,加一个 ^,表示上一个版本,加两个^^,如果返回到上100个版本,就用--hard HEAD~100
$ git reflog 用来记录你的每一次命令,在这可以查看到每次的commit id ,用这个id 就可以返回到任意版本。
工作区:就是你在电脑里能看到的目录。
版本区:工作区有一个隐藏目录.git,这个不算工作区,而是 Git 的版本库。
Git 的版本库里存了很多东西,其中最重要的就是称为 stage(或者叫 index)的暂存区,还有 Git 为我们自动创建的第一个分支 master,以及指向 master 的一个指针叫 HEAD。
需要提交的文件修改通通放到暂存区,然后,一次性提交暂存区的所有修改。
撤销修改:
git checkout -- readme.txt 意思就是,把 readme.txt 文件在工作区的修改全部撤销,这里有两种情况:一种是 readme.txt 自修改后还没有被放到暂存区,现在,撤销修改就回到和版本库一模一样的状态;一种是 readme.txt 已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态。总之,就是让这个文件回到最近一次git commit或git add时的状态。git checkout -- file命令中的--很重要,没有--,就变成了“创建一个新分支”的命令,
git reset HEAD file可以把暂存区的修改撤销掉(unstage),重新放回工作区。
删除文件:
要从版本库中删除该文件,那就用命令git rm删掉,并且 git commit:
另一种情况是删错了,因为版本库里还有呢,所以可以很轻松地把误删的文件恢复到最新版本:
就用 git checkout -- test.txt
网友评论