git的基础使用
起步
Git 安装
windows
在 Windows 上安装 Git 同样轻松,有个叫做 msysGit 的项目提供了安装包,可以到 GitHub 的页面上下载 exe 安装文件并运行:
完成安装之后,就可以使用命令行的 git
工具(已经自带了 ssh 客户端)了,另外还有一个图形界面的 Git 项目管理工具。
linux
如果要在 Linux 上安装预编译好的 Git 二进制安装包,可以直接用系统提供的包管理工具。在 Fedora 上用 yum 安装:
yum install git-core |
在 Ubuntu 这类 Debian 体系的系统上,可以用 apt-get 安装:
apt-get install git |
mac
在 Mac 上安装 Git 有两种方式。最容易的当属使用图形化的 Git 安装工具,界面如图 1-7,下载地址在:
http://code.google.com/p/git-osx-installer
另一种是通过 MacPorts http://www.macports.org 安装。如果已经装好了 MacPorts,用下面的命令安装 Git:
sudo port install git-core +svn +doc +bash_completion +gitweb |
基础配置
Git 提供了一个叫做 git config 的工具 - etc/gitconfig
文件:系统中对所有用户都普遍适用的配置。若使用 git config
时用 --system
选项,读写的就是这个文件。
~/.gitconfig
文件:用户目录下的配置文件只适用于该用户。若使用git config
时用--global
选项,读写的就是这个文件。- 当前项目的 git 目录中的配置文件(也就是工作目录中的
.git/config
文件):这里的配置仅仅针对当前项目有效。每一个级别的配置都会覆盖上层的相同配置,所以.git/config
里的配置会覆盖/etc/gitconfig
中的同名变量。
在 Windows 系统上,Git 会找寻用户主目录下的 .gitconfig
文件。主目录即 $HOME
变量指定的目录,一般都是 C:\Documents andSettings\$USER
。此外,Git 还会尝试找寻 /etc/gitconfig
文件,只不过看当初 Git 装在什么目录,就以此作为根目录来定位。 第一个要配置的是你个人的用户名称和电子邮件地址。这两条配置很重要,每次 Git 提交时都会引用这两条信息,
说明是谁提交了更新,所以会随更新内容一起被永久纳入历史记录:
git config --global user.name John Doe |
git 基础
取得项目地址
在工作目录中初始化新仓库
要对现有的某个项目开始用 Git 管理,只需到此项目所在的目录,执行:
git init |
如果当前目录下有几个文件想要纳入版本控制,需要先用 git add
命令告诉 Git 开始对这些文件进行跟踪,然后提交:
git add *.c |
从现有仓库克隆
克隆仓库的命令格式为 git clone [url]
。比如,要克隆 Ruby 语言的 Git 代码仓库 Grit,可以用下面的命令:
git clone git://github.com/schacon/grit.git |
记录更新到仓库
在编辑过某些文件之后,Git 将这些文件标为已修改。我们逐步把这些修改过的文件放到暂存区域,直到最后一次性提交所有这些暂存起来的文件,如此重复
检查当前文件状态
要确定哪些文件当前处于什么状态,可以用 git status
命令。如果在克隆仓库之后立即执行此命令,会看到类似这样的输出:
$ git status |
跟踪新文件
使用命令 git add
开始跟踪一个新文件。所以,要跟踪 README 文件,运行:
git add README |
//添加要纳入版本控制的文件 git add *
添加所有文件 git add 三种效果根据文件状态不同
untracked
跟踪新文件unmodified
modified
放到暂存区staged
合并 把冲突文件标记为以解决 git commit -m '项目修改描述' ### 回滚
git reset –hard id 回滚 id 版本 git reset –hard HEAD^ 回退上一个版本 ### 分支
如果添加不想上传文件可以删除不需要的文件
git rm -r –cached [文件名]
git branch//查看分支 |
远程仓库
远程控制
git clone git://github.com/schacon/grit.git(地址) mytest(重新命名) //克隆远程到本地 |
从远程仓库更新到本地
git fetch origin master |
以上命令的含义: 首先从远程的 origin 的 master 主分支下载最新的版本到 origin/master 分支上 然后比较本地的 master 分支和 origin/master 分支的差别 最后进行合并
从远程仓库更新到本地并合并
git pull origin master // 上述命令其实相当于 git fetch + git merge |
Git 进阶部分
回退版本
git log [--pretty=online] //查看最近几次提交的记录 `[--pretty=online]`可选参数会显示详细信息比如注释 |
合并提交代码
为了让代码提交更简洁,合并到主分支更容易,使用变基 rebase 简化 commit
- 先切换到主分支更新代码
git checkout master |
- 使用 stash 命令提交,为了保证跟新代的成功,使用暂存操作
git stash save -a 'message' //将本地修改添加到暂存区 |
参考资料
**推荐: ** [如何优雅的进行版本回退 · |