Git为目前世界上先进的分布式版本控制系统。学习git是为了维护代码的版本,希望网络上有一份永久的存储,这样我们可以将代代码退回到历史版本,和别人协作。
配置
用户信息
git第一件事情设置自己的用户名与邮件地址。Git的提交会使用这些信息,并且它会写入到你的每一次提交中,不可更改:
git config --global user.name “zhangsan”
git config --global user.email 邮箱
如果使用了 –global 选项,那么该命令只需要运行一次,因为之后无论你在该系统上做任何事情, Git 都会使用那些信息。当你想针对特定项目使用不同的用户名称与邮件地址时,可以在那个项目目录下运行没有 –global 选项的命令来配置。
文本编辑器
配置默认文本编辑器,当Git需要你输入信息时会调用它,如果未配置,git会使用操作系统默认的文本编辑器,通常是Vim。如果想使用不同的编辑器,如Emacs
git config --global core.editor emacs
检查配置信息
git config –list 命令来列出所有Git当时能找到的配置。
git config:检查git的莫一项配置。
获取Git仓库
说明
有两种取得 Git 项目仓库的方法。 第一种是在现有项目或目录下导入所有文件到 Git 中; 第二种是从一个服务器克隆一个现有的 Git 仓库。
//在当前目录新建一个Git代码库
$ git init
//新建一个目录,将其初始化为Git代码库
$ git init [project-name]
// 下载一个项目和它的整个代码历史
$ git clone [url]
一般来说,我们会用远程仓库来对代码进行备份,同时便于多人协作。可以到github,oschina或者码市上去注册一个帐号并建立一个远程仓库。
个人解读:远程库是本地库的镜像,本地库是远程库的镜像。
新增(修改)一些文件并跟踪
跟踪文件
版本控制的最大作用就是记录文件的历史状态,以便随时可以回退到历史版本。如果没有版本控制,虽然编辑器都有ctrl+z功能,但是次数有限,且编辑器重启后,这些暂时记录就丢失了。把文件纳入版本控制之下。git中这个动作叫做跟踪文件.
git add开始跟踪一个文件
# 跟踪一个具体的文件
git add <filepath>
# 跟踪所有文件
git add .
工作目录下的每一个文件都不外乎这两种状态:已跟踪或未跟踪。 已跟踪的文件是指那些被纳入了版本控制的文件。工作目录中除已跟踪文件以外的所有其它文件都属于未跟踪文件(废话)。 初次克隆某个仓库的时候,工作目录中的所有文件都属于已跟踪文件,并处于未修改状态.
忽略某些文件
我们可以创建一个名为 .gitignore 的文件,列出要忽略的文件模式
*.class # 忽略clsss文件
# Mobile Tools for Java (J2ME)
.mtj.tmp/
# Package Files #
*.jar #忽略jar包
*.war
*.ear
# eclipse files #
.project
.classpath
.settings/
GitHub 有一个十分详细的针对数十种项目及语言的 .gitignore 文件列表,你可以在 https://github.com/github/gitignore 找到它.
检查当前文件状态
要查看哪些文件处于什么状态,可以用 git status 命令.status命令不仅列出了文件状态,还对下一步应该使用的命令给出了提示.
提交
git commit
git commit -m “第一次提交” 写注释
git 状态
Git 有三种状态,你的文件可能处于其中之一:已修改(modified)、已暂存(staged)和已提交(committed)。
已修改表示修改了文件,但还没跟踪,如新增的文件和刚修改过的文件。
已暂存表示对一个已修改文件的当前版本做了标记(git add)。
已提交表示数据已经安全地保存在本地数据库中(git commit)。
Git 项目的三个工作区域的概念:工作目录、暂存区域以及Git仓库。
工作目录是放在磁盘上供你使用或修改的文件及目录总和。
暂存区域是一个文件,缓存文件快照,有时候也被称作“索引”,不过一般说法还是叫暂存区域。
Git仓库是 Git 用来保存项目的元数据和文件快照的地方,记录了所有历史提交。
基本的 Git 工作流程如下:
在工作目录中修改文件。
暂存文件(git add),将文件的快照放入暂存区域。
提交更新(git commit),找到暂存区域的文件,将快照永久性存储到 Git 仓库。
PS:文件快照必须先经过暂存区,才能到仓库区
git add .
git commit -m "第一次提交"
查看提交历史
git log
git log 有许多选项可以帮助你搜寻你所要找的提交, 接下来我们介绍些最常用的。
一个常用的选项是 -p,用来显示每次提交的内容差异。 你也可以加上 -2 来仅显示最近两次提交
如果你想看到每次提交的简略的统计信息,你可以使用 –stat 选项.
另外一个常用的选项是 –pretty。 这个选项可以指定使用不同于默认格式的方式展示提交历史。 这个选项有一些内建的子选项供你使用。 比如用 oneline 将每个提交放在一行显示,查看的提交数很大时非常有用。 另外还有 short,full 和 fuller 可以用,展示的信息或多或少有些不同,请自己动手实践一下看看效果如何。
移除文件
git rm
如果删除之前修改过并且已经放到暂存区域的话,则必须要用强制删除选项 -f
同步远程仓库
git push 推送是在远程仓库建立本地仓库的副本,便于别人拉取。
如果本地库和远程库一样,会得到Everything up-to-date提示.
git pull 用远程仓库更新本地仓库以获得协作者推送的最新的变化.
如果远端没有更新,会得到Already up-to-date.提示。