记一次小团队Git实践(中)

对于初学者,从使用上先入手,每每学的最快,并从中汲取教训,再回头更深刻的学习,效果尤佳。linux

安装git

安装git自没必要说,mac已经内置了git,linux下一个命令就能搞定,windows下须要下载一个客户端安装,一切尽在官方网站:
http://git-scm.com/git

配置自定义信息

# 配置用户名和密码,标识用户,且能够为后续提交钩子发送邮件, 必填
git config --global user.name "Jayfeng"
git config --global user.email jayfeng@gmail.com

同步仓库代码

假设服务器IP是192.168.1.18:windows

git clone git@192.168.1.18:~/git-repo/ANDROID_CODE.git

提交

# 提交到暂存区(什么是暂存区,下篇会细说)
git add .
# 提交到本地仓库(有本地仓库,难道还有远程仓库,是的,就是服务器咯)
git commit .
# 把本地仓库的提交推送到远程仓库
git push origin master

更新代码

# 拉取代码
git pull
# 更建议使用如下方式更新代码
# 拉取代码,但不合并
git fetch origin master
# 合并本地代码和最新拉取的代码
git rebase origin/master

冲突

在上步中,颇有可能会冲突,解决冲突的步骤以下bash

# 假设上步在执行git rebase origin/master的时候发生了冲突
# 查看当前冲突的状态
git status

# ... ...
# 打开冲突的文件
# 查找">>>",定位到冲突的地方,而后解决冲突
# ... ...

# 把解决冲突以后的文件添加到暂存区
git add .
# 继续上步冲突的合并操做,便可rebase成功
git rebase --continue
# 若是想放弃此次合并,--continue换成--abort
git rebase --abort
# 若是冲突了无论,--continue换成--skip
git rebase --skip

分支(branch)和标签(tag)

标签,也叫里程碑,顾名思义,就是一个重要的标示,以commit的形式存在。服务器

# 添加tag
git tag -a 1.0.3 -m 'publish a version 1.0.3'
# 显示tag
git show 1.0.3
# 合并标签到远程版本库
# 推送某个标签到远程版本库
git push origin 1.0.3
# 推送全部标签到远程版本库
git push origin --tags
# 检出标签
git checkout -b myTagBranch 1.0.3

分支,至关于独立承载另外需求的代码副本,经常使用于区分管理不一样版本的代码。学习

# 基于当前分支建立dev分支
git checkout -b dev
# 推送本地dev分支到远程分支
git push origin dev:dev
# 删除dev分支
git branch -D dev

git的分支功能是很是强大和灵活的,可以提供多个代码副本共存的方便,大大节省了维护多版本的人力成本。fetch

重置(reset)

回退到某个版本。网站

// 回到到324214130的tree index,默认参数--mixed, 保留源码,代码状态回退到工做区
git reset 3242a4130142478023231225551a9b7dcb4441e3
// 另外两个参数分别是--soft、--hard, 分别是比--mixed回退的更少一步和更完全一步。
// 放到下篇文章继续深讲。

反悔/撤销(revert)

回退某个版本,注意区分和reset的不一样。revert是属于commit级别的操做。code

// 回退324214130的commit,至关于把这个commit的改动再反向操做了一次
git revert 3242a4130142478023231225551a9b7dcb4441e3

revert只针对这个提交,对它的前面和后面的提交没有直接的影响(相对于reset来讲)。同时git会把revert操做当成一个新的commit,能够在git log中看的到。ip

小结

本篇把基本使用git的一些命令一一讲解了一番,以期初学者能上手实用起来。而有些地方则是走马观花,未做深刻,由于咱们还有最后一章深刻篇,敬请期待!

同步发布:http://www.jayfeng.com/2015/07/25/记一次小团队Git实践(中)/

相关文章
相关标签/搜索