结合本人近期的学习,总结一下Git的简单使用。
github是一个基于git的代码托管平台,付费用户可以建私人仓库,我们一般的免费用户只能使用公共仓库,也就是代码要公开,注册的时候会有选择。
本人的操作系统:Win7
1、安装Git。
地址:https://git-scm.com/downloads,根据需要下载即可。
安装完成后,首次使用需要进行name和email的设置:
$ git config --global user.name "Your Name"
$ git config --global user.email "email@example.com"
注意git config命令的--global参数,用了这个参数,表示你这台机器上所有的Git仓库都会使用这个配置。
2、创建仓库,也就是版本库,也有叫repository的。
在我理解看来,也就是一个由git管理跟踪的文件夹,这个文件夹中的所有修改都被git监控。
选择一个合适的地方,新建一个空目录(也就是一个仓库)(在空白处右键,点击Git Bash Here,可直接在当前地址打开git,我这里是直接在D盘创建了一个叫“repository”的文件夹来验证,windows中最好不要用中文,避免出现意想不到的错误),新建一个“example”空目录,并切换到这个空目录(空仓库):
3、通过git init命令将这个目录变成git可识别管理的仓库:
Git把仓库建好了,而且告诉你是一个空的仓库(empty Git repository),返回文件夹可以发现当前目录下多了一个.git的目录,这个目录是Git来跟踪管理版本库的,千万不要手动修改这个目录里面的文件,不然就把Git仓库给破坏了。
如果你没有看到.git目录,那是因为这个目录默认是隐藏的,用ls -ah命令就可以看见。
4、把文件添加到仓库
在example文件夹中新建一个文件readme.txt(内容如下):
Hello,world!
Git is a free software.
4.1 将文件添加到仓库
命令:git add filename(这里的filename表示具体文件名,可根据实际情况修改,下同)
4.2 将文件提交到仓库
命令:git commit -m "first commit"
说明:-m 表示后面的是本次提交的说明,其实就是给这次提交的备注
git commit命令执行成功后会告诉你,1 file changed:1个文件被改动(我们新添加的readme.txt文件);
2 insertions:插入了两行内容(readme.txt有两行内容)。
这里记住,每次提交都要经过这两步。
5、修改文件,并再次提交到仓库
5.1 readme.txt的内容修改如下:
Hello,world!
Git is a free software.
Hello,user!
然后运行命令:git status
说明:git status 可以查看当前仓库的状态,例如哪里被修改了
如果想知道哪里被修改了,可以用命令:git diff filename
5.2 将修改后的文件提交到仓库
根据4.1/4.2的内容提交到仓库,同时在提交过程中,可以用命令:git status
查看准备提交的文件以及是否正确提交了,正确提交后,会显示 nothing to commit, working tree clean。
6、文件版本回退
6.1 查看历史提交的版本
命令:git log
说明:查看历史提交的版本以及每次提交时的备注
如果嫌输出信息太多,看得眼花缭乱的,加上--pretty=oneline参数
图中黄色的commit ********是git给每个版本的版本号(commit id),而且这个版本号好像是独一无二的。
在git中,用HEAD表示当前的版本,上一个版本是HEAD^,上上个版本是HEAD^^,上100个版本是HEAD~100。
6.2 回退版本
回退到上一个版本,命令:git reset --hard HEAD^
检查一下,你会发现后面添加的“Hello,user!”不见了。版本已被还原。
那么还原后是否可以回到刚修改的版本呢?
首先来看一下当前的版本信息,用命令:git log
好吧,这里已经看不到刚才的第二个版本了,别急,要回去还是有办法的。回忆一下,每个版本git是不是都提供了一个版本号,这个版本号是仍然存在的,返回去看一下刚才二版的版本号是db4ce...............................,
命令:git reset --hard db4ce
说明:这里git会回到特定的版本号,而版本号没必要写全,只要git能识别到唯一就可以使用。
可以看到,版本又回来了。使用命令:cat filename 查看一下文件,果然又回到最新版本了。
注意:这里必须有回退未来某个版本的版本号commit id,如果当前窗口不行关了,那么请用命令:git reflog,可以查看历史命令,可以在里面找到版本号。
每行最前面的7位就是部分版本号,足够识别了。
7、撤销修改
这里和版本回退有点类似,但又不完全一样。
7.1 当修改了文件,但又不想保存,取消修改的时候,可以回退到修改前的版本,用命令:git checkout -- filename
7.2 当修改了文件,同时git add filename,但想取消修改的时候,用命令:git reset HEAD filename,就可以回到7.1,接着按7.1的命令操作。
7.3 已经提交了不合适的修改到版本库时(commit了),想要撤销,用第6点的版本回退即可。
8、删除文件
8.1 如果文件没有commit到版本库,那么参照7.2,然后把文件删除即可,本地删除命令:rm filename
8.2 如果文件已经commit到版本库了,
那么本地命令:rm filename,
然后 git rm filename ,
接着git commit -m “remove filename”,
这样就可以删除需要删除的文件了,同时版本库里也删除了。
8.3 如果文件已经commit到版本库了,但是本地文件误删了,也可以从版本库中恢复。
命令:git checkout -- filename
说明:checkout其实是用版本库里的版本替换工作区的版本,无论工作区是修改还是删除,都可以“一键还原”。