对于任何一个文件,在Git内都只有3种状态:已提交(committed),已修改(modified)和已暂存(staged)。已提交表示该文件已经被安全地波啊存在本地数据库中了,已修改表示修改了某个文件,但还没有提交保存,已暂存表示把已修改的文件放在下次提交时要保存的清单中。
一.基本的Git工作流程如下所示:
在工作目录中修改某些文件
对这些修改了的文件做快照,并保存到暂存区域
提交更新,将保存在暂存区域的文件快照转储到git目录中
二.Git安装
yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel -y
从源码安装
tar zxf git-1.6.0.5.tar.gz
cd git-1.6.0.5
make prefix=/usr/local
make install
2. rpm包安装
yum install git-core -y
三.初次运行Git前的配置
Git的配置文件有:/etc/gitconfig,~/.gitconfig,.git/config(工作目录里),每个级别的配置都会覆盖上层相同配置,所有.git/config里的配置会覆盖/etc/gitconfig中的同名变量
1.用户信息
git config --global user.name "John Doe"
git config --global user.email johnode@example.com
2.编辑器
git config --global core.editor vi
git config --list 检查已有的配置信息
--global选项,读写的是/etc/gitconfig
--system选项,读写的是~/.gitconfig
四.Git的基础用法
取得项目的Git仓库
1.从当前目录初始化git init
2.从现有仓库克隆eg:git clone git://github.com/schacon/grit.git
Git的常用操作工作目录下面的所有文件都不外乎两种状态:已跟踪或未跟踪。已跟踪的文件就是指本来就被纳入版本控制管理的文件,其它文件都属于未跟踪文件
基本操作
1.git status 确定哪些文件当前处于什么状态
2.git add filename 开始跟踪一个新文件或者把已跟踪的文件放到暂存区
3.git diff 查看尚未暂存的文件更新了哪些部分
git diff --cached 查看已经暂存起来的文件和上次提交时的快照之间的差异
4.git commit -m "string" 提交更新只限于暂存区域的文件
git commit -a -m "string" 把所有已经跟踪过的文件暂存起来一并提交,从而跳过了git add步骤 5.git rm filename 从已跟踪文件清单中移除某个文件
6.git rm --cached filename 文件从Git仓库删除,但仍保留在当前的工作目录中
7.git mv file1 file2 移动文件或者重命名文件
8.git log 查看提交历史
git log -p -2 -p选项展开显示每次提交的内容差异,-2表示仅显示最近的2次更新
git log --stat 快速浏览其他协作者提交的更新都做了哪些改动
git log --pretty=oneline 使用完全不同与默认格式的方式展示提交历史
gitk 是git的图形化查询提交历史的工具
9.git commit --amend 撤销操作
eg:git commit -m "initial commit"
git add file
git commit --amend 这三条命令最终得到一个提交,第二个提交命令修正了第一个提交的内容
10.git reset HEAD filename 取消已暂存的文件,该命令是git status 后出现的提示命令
11.git checkout -- filename 取消对文件的修改,该命令是git status 后出现的提示命令
五.对远程仓库的使用
git clone git://github.com/schacon/ticgit.git
cd ticgit
1.git remote 列出远程库的简短名字
git remote -v 显示远程库的简短名字和对应的克隆地址
2.git remote add pb git://github.com/paulboone/ticgit.git 添加一个新的远程仓库,指定一个简短的名字,一边将来引用git fetch pb 抓取所有paulboone有的,本地仓库没有的信息
3.git push origin master 把本地的master分支推送到origin服务器上,只有所有克隆的服务器有写权限,并且同一时刻没有其他人在推送数据,这条命令才会如期执行,其他人如果推送了若干更新,那你的操作会被驳回,你必须把他们的更新抓取到本地,并到自己的项目中,才能再次推送
4.git remote rename pb paul 修改某个远程仓库的简短名称,把pb改成paul
5.git remote rm paul 移除远端的仓库
本文出自 “尼族部落” 博客,转载请与作者联系!
分布式版本管理器Git的基础操作指南,布布扣,bubuko.com
原文地址:http://qwgxiaoxiao.blog.51cto.com/8239258/1536065