基本配置
git config --global user.name 'chengxiang.peng' //用户名
git config --global user.email chengxiang.peng@qq.com //邮箱
git config --global core.editor emacs //文本编辑器
git config --global merge.tool vimdiff //差异分析工具
查看配置信息
git config --list
获取帮助
git remote --help
git help config
从当前目录初始化Git仓库
git init //出现.git目录,所有Git需要的数据和资源都存放在这个目录中
从现有仓库克隆
git clone git://github.com/schacom/grit.git myproject //收取的是项目历史的所有数据(每一个文件的每个版本),服务器上有的数据克隆之后也都有了
检查当前文件状态
git status
跟踪新文件、暂存已修改文件
git add README //根据不同的情况,可以跟踪一个新文件或者将更新的文件加入暂存区
忽略某些文件
.gitignore文件 //一般无需纳入Git管理,也不希望总出现在未跟踪文件列表中的文件
查看已暂存和未暂存文件的更新
git diff //查看工作目录当前文件和暂存区快制之间差异
git diff --cache/-staged //查看已缓存起来的文件和上次提交快照的差异
提交更新
git commit //启动文本编辑器,输入提交说明再提交
git commit -m 'init projcect' //直接使用提交说明提交
git commit -a //跳过暂存区提交直接提交
移除文件
rm git.gemspec //从工作目录中删除文件
git rm grit.gemspec //从暂存区域和工作目录中删除文件
git rm --cache readme.txt //丛仓库中移除跟踪,但不删除文件
文件改名
git mv README.txt README //Git不跟踪文件移动操作
相当于如下三个命令:
mv README.txt README
git rm README.txt
git add README
查看提交历史
git log -p -2 -stat //-p展示每次提交的差异,-2显示最近2次的提交,-stat显示增改行数
gitk //图形化工具查询提交历史
修改最后一个提交
git commit --amend
取消暂存文件
git reset HEAD tenchmarks.rb
取消对文件的修改
git checkout benchmarks.rb
查看远程仓库
git remote -v //-v显示对应的克隆地址
从远程仓库中抓取数据
git fetch pb //将远程数据抓取到本地,并不合并到当前工作分支
git pull //将远程数据抓取到本地,并自动合并到当前工作分支
推送数据到远程仓库
git push origin master //如果在你推送前,有其他人推送的若干更新,那你的推送会被驳回,必须先把他们的更新抓取到本地,合并到自己的项目中,然后才可以再次推送
查看远程仓库信息
git remote show origin
重命名远程仓库
git remote rename pb paul
删除远程仓库
git remote rm paul
列出已有标签
git tag
新建标签
git tag -a v1.4 -m 'my version 1.4' //轻量级标签就是一个不会变化的分支,是指向特定提交对象的引用
git tag -s v1.5 -m 'my singed 1.5 tag' //存储在仓库中一个独立对象,有自身的校验和信息,包含标签名字,电子邮件地址和日期,以及标签说明
查看标签版本信息
git show v1.4
分享标签
git push origin v1.5 //git push并不会把标签传送到远端服务器上,只有通过显示命令才能分享标签到远端仓库
git push origin --tags //一次推送所有标签
命令别名
git config --global alias.co checkout
创建分支
git branch testing
git checkout -b iss53 //创建并切换到新分支
切换分支
git checkout testing
合并分支
git merge iss53 //将iss53合并到当前分支
删除分支
git branch -d iss53 //如果包含未合并的工作,则分支删除会导致失败
查看分支
git branch //查看当前所有分支
git branch -v //查看各个分支最后一次commit
git branch --merged //查看已经合并的分支
git branch --no-merged //查看尚未合并的分支
推送分支
git push origin serverfix //本地分支不会被自动同步到你引入的远程分支中,除非你明确执行推送操作
跟踪远程分支
git checkout --track origin/serverfix //当前分支跟踪origin/serverfix远程分支
删除远程分支
git push origin :serverfix
分支衍合
git rebase experiment //回到两个分支的共同祖先,提取你所在分支每次提交时产生的差异,把这些差异分别保存到临时文件里,然后从当前分支转换到你需要衍和入的分支施用每一个差异补丁文件