一、简介
Git是目前世界上最先进的分布式版本控制系统,Git中绝大部分操作都是访问本地资源,不需要网络,其中有三个概念比较重要:1. 工作目录 2. 暂存区域 3.本地仓库。
简单说明一下,工作目录:项目某个版本的内容,供我们使用;暂存区域:一个文件,保存了下次将提交的文件列表信息;本地仓库:保存项目元数据的地方,git最重要的部分,从其它计算机克隆仓库时,拷贝的就是这里的数据。
基本的工作流程为:1. 修改文件 2. 将修改后的文件保存到暂存区域 3. 提交更新到本地仓库中
二、安装
1. 在Windows上安装Git,下载 msysGit Git-2.8.1-64-bit.exe 下载完成后,一路默认安装即可,没啥可注意的我觉得。。
还有一个小乌龟 TortoiseGit 可以安装,是一个git的GUI管理工具,百度一下安装即可,这里我使用Git Bash来操作,不用图形界面了。
2. 配置Git的工作环境,配置个人的用户名和邮箱,Git提交时会引用这两条信息,说明提交者身份,windows下配置文件在C盘用户主目录下,Linux下/etc /gitconfig or ~/.gitconfig
$ git config --global user.name "cyhe"
$ git config --global user.email "cyhe@example.com"
$ git config --list
三、仓库的创建
首先创建版本库,有两种方法,一是在当前目录下直接初始化一个新的Git仓库,二是从已有的Git仓库中克隆一个新的镜像仓库,操作如下:
1. 打开Git Bash,在F:/git-project 目录下创建一个netty版本库,使用 【git init】 命令
2. 从现有仓库克隆,从github仓库克隆
首先,注册github帐号,创建一个空的仓库;
接着,在本地生成 ssh 公钥和私钥,直接在Bash中执行 ssh-keygen -t rsa –C "cyhe@example.com" 然后在用户目录下会生成一个 .ssh 目录,其中id_rsa为私钥,id_rsa.pub为公钥;
最后,将公钥内容添加到github中,步骤:settings --> SSH and GPG keys --> New SSH key
在这里我新建Github仓库时选中了 Initialize this repository with a README 所以仓库中包含一个文件,如果不选中而新建的话会有如下提示
可以根据提示,把本地通过【git init】初始化的仓库push 到github仓库中。这里就不演示了,接下来从刚才新建的 netty demo克隆到本地
从图中可以看到,远程仓库一成功克隆到本地,接下来进行简单的操作。
四、简单操作
关于操作围绕以下几个实用性问题来描述,怎么把文件推到仓库?怎么查看推送日志?怎么撤销操作?怎么进行版本恢复?
相关命令:
(1)【git add filename】 把文件添加到暂存区
(2)【git commit -m "提交注释"】把文件提交到仓库
(3)【git status】查看文件状态,主要列出修改过的文件
(4)【git diff】查看已暂存和未暂存的更新
(5)【git log (class="crayon-e">git log --pretty=oneline)】查看修改的历史记录
新建一个test文本文件,内容为 first line,将其推到本地仓库中
这里只是推送到了本地仓库,并没有同步到远程仓库,可以使用【git -u origin master】命令同步
查看之前操作历史记录,前面是版本号,后面是提交是的注释信息
(6)【git checkout -- <file>】抛弃对文件的修改
版本恢复,也可称撤销操作。在我们使用【git status】时,就有撤销相关的命令提示,如下,我修改test.txt新增一行,保存到暂存区后查看文件的状态
【git checkout -- test.txt】
(7)【git reset --hard 版本号】回退到指定的版本号
当重复添加到暂存区,但不想commit到仓库时可以使用【git reset HEAD <file>】移除暂存区
使用【git reflog】查看版本直接恢复即可
【git reset HEAD README.md】从暂存区移除 README.md
【git reset --hard 3b340b6】回退到初始提交的版本
【git reset --hard HEAD~100】版本太多可以使用此命令回退到指定版本,如前第100个版本
(8)【rm test.txt】删除文件
直接使用 rm <file> 命令删除,然后使用git rm <file> 最后提交更新到仓库,这样就从仓库中删除了
资料:
Git版本控制软件结合GitHub从入门到精通常用命令学习手册:http://www.ihref.com/read-16369.html