简单介绍一下git 的常用命令,希望大家会喜欢上git
1. 关于git的原理, 网上很多, 这里只强调最重要的一点: ”分布式版本控制系统” 这和svn “集中式版本控制” 完全不一样.
分布式指的是, 团队每个人的电脑上都有一个仓库, 每次commit 都是提交到这个仓库上. commit之后 才可以push 到远端仓库. push命令就是和远端仓库同步数据. 其实本地仓库和远端仓库一摸一样, 每个人的仓库都可以作为源提供给别人.
2. 客户端安装,
> 官方客户端 下载地址 http://git-scm.com/downloads
客户端有两个程序, 一个是GUI(不是很好用,出错了还得命令搞定,不如直接学命令),
一个是bash 命令行.
> eclipse 插件 这个简单, 只要知道git 基本原理,很容易上手.
3. 常用命令, 这里以我们的git server carnegie 项目为例, http://****
打开git bash:
1. 配置全局用户名和邮箱
git config –global user.name “**********”
git config –global user.email “****@*******”
2. 配置ssh key, 配好以后就不用输入用户名密码了.
ssh-keygen -t rsa -C “****@******”
中间提示输入密码什么的,直接回车,不输入什么内容.
命令会生成两个文件,我的是win7系统,目录在 C:\Users\cwb\.ssh
如果是xp系统,就在你的用户目录.
用notepad++ 打开 id_rsa.pub, 把里面的内容复制.
登陆 http://*******(公司内部搭建的一个gitserver) 用你的域账户登陆
点击 右上角的 “My Profile”
点击 SSH Keys:
点击 Add SSH Key:
把 刚才copy 的pub key 粘贴到 key 输入框里, 点下面的 “Add key” 就OK了.
3. clone 项目:
回到 bash 命令行界面, cd 到我们需要clone 项目的目录, 比如:
cd /d/foldera/folderb
其中 /d 代表我们的D盘.
执行命令:
git clone git@*********:****/****.git (git 项目地址)
到这里我们的项目就成功clone 下来了.
4. 常用命令解释:
git status — 查看你修改了但是还没提交的文件.
git add folder/file – 把你修改的文件添加到 commit list
git commit -m “comment” – 把文件提交到本地仓库
git push – 把本地仓库的最新修改同步到远端仓库
git pull – 把远程最新的代码拿到本地仓库
5. 下面介绍一个典型的 branch 策略, 不要晕 O(∩_∩)O哈哈~
原文: http://nvie.com/posts/a-successful-git-branching-model/
这个图片涉及下面一些问题:
1. 在release 0.1 version之前不需要建别的branch, 我们可以用master branch.
2. 在 release 0.2 version之前,我们要做下面的事情:
> 开发新功能
> 修改0.1 version的bug, hot fix 一些紧急的bug.
> 把代码给PQA测试
> 有时候有的feature 在下一个release 不需要发布,将来发布.
> PQA 不断的测出bug, 有人不停的去修改.
上面这幅图的branch 策略 给出了一个完整的解决方案.
3. 在产品发布第一个version之后, 我们总共需要 5 到 6 个branch, 每个branch分工不同.
1. master branch: 这个branch的代码一定是最稳定产品, 其他branch代码最终都会merge到这branch上面,交付给客户.
2. developer branch: 交付了产品0.1 之后, 从master branch 上拉一个developer branch 继续开发,下一个版本是1.0.
3. hotfix branch: 客户报了一个错,需要紧急修改, 原则上不能直接在master branch上修改代码. developer branch又有了新的代码, 这个时候就要 拉一个新的 hotfix branch,修改bug,测试完之后, 同时merge到 master和developer branch上面. 这个时候的产品最新版本就是 0.2了
4. release branch: 产品1.0 开发完之后, 需要交给PQA测试. 这个时候,就拉一个 release branch 给他们.程序员接着在developer上开发下一个版本. PQA 测出bug,我们就到release branch 上修改,完了再merge到developer branch.
5. feature branch: 专门为特定的feature 拉一个branch, 比如,有点feature 下一个版本不需要,但是将来会需要,就可以单独从developer branch拉一个 feature branch来开发.
6. Branch 相关的 命令:
git branch – 查看当前branch 信息
git checkout -b feature_x – 新建一个新的branch, 这是一个本地分支, 除非你把这个branch push到远端,不然别人不知道有这个branch.
git branch -d feature_x – 删除 branch feature_x
git push origin feature_x – 把 branch push到远端服务器上.
git checkout origin/release – checkout 远端 release branch
git checkout -t origin/developer – 当前分支是developer 但是 git branch 显示 no branch, 这个命令就是checkout 远程 developer branch 并且本地branch的名字也是developer