Git 使用教程之本地仓库的基本操作
Git是什么?
一个分布式版本控制系统,和SVN类似,但远比SVN强大的一个版本控制系统 ①Git可以方便的在本地进行版本管理,如同你本地有一个版本管理服务器一样 我们可以选择在合适的时间将本地版本推送到统一的版本管理服务器 ②Git每次会提取整个代码仓库的完整镜像,相当于对整个代码仓库都进行了一次备份,这样计时版本服务器除了问题,我们可以直接采用本地仓库恢复!结合本地版本管理功能,远程版本管理服务器出问题了,我们依然能继续写自己的代码,当他恢复的时候我们再提交我们的本地版本! Git研发初期是为了更好的管理Linux内核,不过现在已经广泛应用于各种项目中!
安装Git
如果你的系统是Linux的话,直接打开shell输入:
sudo apt-get install git
当然,大部分的系统估计都是Windows,这就需要我们到网上下载一个Git For Window了,可到下述网站下载:http://msysgit.github.io/ 点击版本号,不是Download,不知道为什么打不开!
点击后进入页面,下载如下文件即可
或者到笔者的云盘直接下载也可以: Git-1.9.5-preview20150319.exe 接着傻瓜式的下一步就可以了~ 接下来你可以找到Git Gui然后开始玩Git,不过如果以后换到其他平台上,没有图形化界面你就寸步难行了! So,如果你有兴趣的话,我们来玩命令行,以后换了系统也能正常的玩Git!
玩转Git命令行
当然Git肯定是搭配着GitHub玩才够味的,不过先来学习一些本地的指令先把! 当你安装完Git后我们可以在任意位置右键,点击Git bash打开我们的Git命令行! 你可以可以点击Git Init Here直接在当前目录下创建一个代码仓库,又或者点击Git Gui打开Gui的图形操作页面!
1.创建代码仓库
Step 1:先配置下我们的身份吧,这样在提交代码的时候Git就可以知道是谁提交的,命令如下:
git config --global user.name "coder-pig"
git congif --global user.email "779878443@qq.com"
配置完成后,我们可以再次输入,不包括名称,可以看到我们已经配置成功了
Step 2:找个地方创建我们的代码仓库,然后我创建了一个新的项目:TestForGit,来到工程的目录下,右键,打开我们的Git Bash,键入下述指令完成代码仓库的建立!另外这个代码仓库其实是用来保存版本管理所需的一些信息,我们本地提交的代码都会提交到代码仓库中,于是乎我们可以选择还原到某个版本,当然,如果需要的话,我们还可以将保存在代码仓库中的代码推送那个到远程仓库中!比如GitHub!
git init
一个简单的代码,代码仓库就创建完毕了!继续输入:ls - al可以看到下目录下有个.git的文件夹就是他了!
也可以打开工程目录,同样看也看到.git文件夹;如果我们想删除代码仓库只需把这个文件夹
删掉即可!
2.提交本地代码
创建完代码仓库,接下来说下如何提交代码,我们是先用add命令把要提交的内容都加进来,然后commit才是真的去执行提交操作!命令例子如下,你可以一次次慢慢添加,当然也可以
全部提交,直接git add .即可完成!
我们现在工程目录下创建一个readme.txt的文件试试,随便写点东西,然后依次输入下述指
令:
git add readme.txt
git commit -m "Wrote a readme file"
输入命令试试:
当然如果你可以add多个文件后再一次性commit,不过如果我们改动的文件很多的话,我们
可以git add .一次添加全部,但有一些是几百年都不变一次的又或者自动生成的,比如
lib,gen,bin文件夹等等,我们可以在代码仓库的根目录下创建一个名为.gitignore的文件,
然后编辑里面的内容,把不需提交的文件忽略掉!
接着输入要提交时忽略的文件内容即可!
我们回到前一个提交的版本吧,依次键入下述指令:
git reset --hard HEAD
git reset --hard HEAD^
git log
这时看下我们的控制台:
可以看到我们已经回退到了前一个版本了,当然你可以直接这样写:
git reset --hard ad2080c
就是这么简单!回退后,你突然后悔了,想回退回新的那个版本, 可是遗憾的是,你键入git log却发现没有了最新的那个版本号,这怎么办呢... 没事,Git中给你提供了这颗"后悔药",Git记录着你输入的每一条指令呢!键入:
git reflog
你会发现,版本号就在这里:
然后键入:
git reset --hard ad2080c
可以看到我们又回到了最新的那个版本了,就是这么溜!
更多建议: