Git 使用教程之本地仓库的基本操作
1、Git 是什么?
一个分布式版本控制系统,和 SVN 类似,但远比 SVN 强大的一个版本控制系统。
①Git 可以方便的在本地进行版本管理,如同你本地有一个版本管理服务器一样我们可以选择在合适的时间将本地版本推送到统一的版本管理服务器
②Git 每次会提取整个代码仓库的完整镜像,相当于对整个代码仓库都进行了一次备份,这样计时版本服务器除了问题,我们可以直接采用本地仓库恢复!结合本地版本管理功能,远程版本管理服务器出问题了,我们依然能继续写自己的代码,当他恢复的时候我们再提交我们的本地版本!
Git 研发初期是为了更好的管理 Linux 内核,不过现在已经广泛应用于各种项目中!
2、安装 Git
如果你的系统是 Linux 的话,直接打开 shell 输入:
当然,大部分的系统估计都是 Windows,这就需要我们到网上下载一个 Git For Window 了,可到下述网站下载:https://git-for-windows.github.io/
点击 Download,跳转到 Github ,下载对应安装包即可!
点击后进入页面,下载如下文件即可
或者直接下载目前最新版 2.7.0:v2.7.0.windows.1接着傻瓜式的下一步就可以了~接下来你可以找到 Git Gui 然后开始玩 Git,不过如果以后换到其他平台上,没有图形化界面你就寸步难行了!
So,如果你有兴趣的话,我们来玩命令行,以后换了系统也能正常的玩 Git!
3、玩转 Git 命令行
当然 Git 肯定是搭配着 GitHub 玩才够味的,不过先来学习一些本地的指令先把!当你安装完 Git 后我们可以在任意位置右键,点击 Git bash 打开我们的 Git 命令行!你可以可以点击 Git Init Here 直接在当前目录下创建一个代码仓库,又或者点击 Git Gui 打开 Gui 的图形操作页面!
3.1、创建代码仓库
Step 1:先配置下我们的身份吧,这样在提交代码的时候 Git 就可以知道是谁提交的,命令如下:
配置完成后,我们可以再次输入,不包括名称,可以看到我们已经配置成功了
Step 2:找个地方创建我们的代码仓库,然后我创建了一个新的项目:TestForGit,来到工程的目录下,右键,打开我们的 Git Bash,键入下述指令完成代码仓库的建立!另外这个代码仓库其实是用来保存版本管理所需的一些信息,我们本地提交的代码都会提交到代码仓库中,于是乎我们可以选择还原到某个版本,当然,如果需要的话,我们还可以将保存在代码仓库中的代码推送那个到远程仓库中!比如 GitHub!
一个简单的代码,代码仓库就创建完毕了!继续输入:ls - al 可以看到下目录下有个.git 的文件夹就是他了!
也可以打开工程目录,同样看也看到.git 文件夹;如果我们想删除代码仓库只需把这个文件夹删掉即可!
3.2、提交本地代码
创建完代码仓库,接下来说下如何提交代码,我们是先用 add 命令把要提交的内容都加进来,然后 commit 才是真的去执行提交操作!命令例子如下,你可以一次次慢慢添加,当然也可以全部提交,直接 git add .即可完成!我们现在工程目录下创建一个 readme.txt 的文件试试,随便写点东西,然后依次输入下述指令:
输入命令试试:
当然如果你可以 add 多个文件后再一次性 commit,不过如果我们改动的文件很多的话,我们可以 git add .一次添加全部,但有一些是几百年都不变一次的又或者自动生成的,比如 lib,gen,bin 文件夹等等,我们可以在代码仓库的根目录下创建一个名为.gitignore 的文件,然后编辑里面的内容,把不需提交的文件忽略掉!
接着输入要提交时忽略的文件内容即可!
那么我们 git add .的时候,这里的文件就不会 add,另外可能你会觉的 commit 后面写-m "xxx"很麻烦,想偷懒,但还是写上吧!输入的是本次提交的一些声明,比如自己修改了些什么!就好像写代码的时候,你偷懒不写注释,过几天你连自己写的什么鬼都不知道...
3.3、查看修改内容
好吧,前面我们用 git add 提交了整个项目到本地仓库,接下来我们改点东西,然后使用 git status 可以查看修改的部分,比如,我们删掉 MainActivity.java 里的菜单的代码以及多余的菜单相关的包!
他就会提示我们哪些文件发生了改变,但是还没有提交,如果我们想看下具体更改了什么,我们可以用到 git diff 命令,另外,按 Q 可以退回命令行输入!
3.4、查看提交记录
当然随着我们项目的深入,Commit 的次数也会越来越多,可能你早已忘记每次提交都修改了什么内容,没事,Git 帮你记着呢,使用 git log 即可查看历史提交信息!键入
回车:
我们取其中一小部分来分析:
依次是:
此次提交对应的版本号
提交人:姓名 邮箱
提交的时间
提交版本修改的内容:就是我们 commit -m "xxx"里的 xxx
3.5、撤销未提交的修改
比如我们刚提交了一个版本,然后又乱七八糟地写了一堆东西,突然发现不小心误删了一些东西,然后 ctrl + s 保存了,这个时候是不是欲哭无泪,不过有 Git,只需一个 checkout 命令即可撤销更改,当然是你还没 add 的情况,比如我们在 MainActivity 里随便添加一条语句,然后 ctrl + s 保存代码!
然后命令行键入:git diff:
嗯,这里可以看到我们改的内容,我们可以回去把这句代码删掉,但是如果改的有上千行你怎么改,于是乎这个时候我们可以使用
然后会神奇的发现,我们新写的代码没了!duang 一下就没了,不信你可以自己试试
当然,如果我们已经 add 了的话,那么 checkout 是没任何作用的,我们要先取消添加才可以撤回提交,使用下述指令:
3.6、版本回退
第五点我们教了大家撤销未提交的修改,但加入提交了,我们想回退到之前的某一个版本怎么办?第四点中我们可以通过 git log 查看我们的提交记录,我们需要从这里获取一个版本号,一般我们只需要前七位字符就够了;另外在 Git 中,用 HEAD 代表当前版本,上一个版本就是 HEAD^,再上一个版本就是 HEAD^^依次类推!我们先 Git Log 看下版本历史先!
我们回到前一个提交的版本吧,依次键入下述指令:
这时看下我们的控制台:
可以看到我们已经回退到了前一个版本了,当然你可以直接这样写:
就是这么简单!回退后,你突然后悔了,想回退回新的那个版本,可是遗憾的是,你键入 git log 却发现没有了最新的那个版本号,这怎么办呢...没事,Git 中给你提供了这颗"后悔药",Git 记录着你输入的每一条指令呢!键入:
你会发现,版本号就在这里:
然后键入:
可以看到我们又回到了最新的那个版本了,就是这么溜!
版权声明: 本文为 InfoQ 作者【向阳逐梦】的原创文章。
原文链接:【http://xie.infoq.cn/article/0ab59af6856ddad054af5fb60】。文章转载请联系作者。
评论