简单使用
- 创建新仓库
git init
- 克隆仓库
git clone /path/to/repository
//远程
git clone username@host:/path/to/repository
- 添加与提交
//添加到缓存区
git add <filename>
git add *
//提交改动
git commit -m "提交信息"
//此时已经提交到HEAD,但是还没有到你的远程仓库
- 推送改动
//连接到远程服务器
git remote add origin <server>
//可以把master换成你想要推送的任何分支
git push origin master
- 分支
//创建分支
git checkout -b feature_x
//切换分支
git checkout master
//新建分支删除
git branch -d feature_x
//把分支推到远程(不推,别人不可见)
git push origin <branch>
- 更新与合并
//更新本地仓库到最新
//在当前工作目录,获取(fetch)并合并(merge)远端的改动
git pull
//合并其他分支到你的分支(如master)
git merge <branch>
//两种情况,git都会尝试自自动合并改动,但是可能有冲突,此时需要人为合并,改完要标记为合并成功
git add <filenema>
//合并前,可以查看分支不同
git diff <source_brancch> <target_branch>
- 标签
可在软件发布时创建标签
//获取提交id
git log
//设置标签
//id可以选前几位,只要唯一就行
git tag 1.0.0 1b2e1d63ff
- 替换本地改动
//使用HEAD中的最新内容替换掉你工作目录中文件
git checkout -- <filename>
//要丢弃所有的本地改动和提交
//获取最新版本,并将本地主分支指向他
git fetch origin
git reset --hard origin/master
- 有用的贴士
//内置图形化git
gitk
//彩色输出
git config color.ui true
//显示历史记录值显示一行注释信息
git config format.pretty online
//交互地添加文本到缓存区
git add -i
原理分析
工作流
本地仓库由git维护的三颗"树"组成
- 工作目录
持有实际的文件
- 缓存区(Index)
像一个缓存区域,临时保存你的改动
- HEAD
指向你最近一次提交后的结果
分支
分支可以隔绝开发,创建仓库时master时默认分支,
在其他分支进行开发,完成后再将他们合并到主分支上