git提交代码步骤
2015-10-09 16:54
267 查看
1 切换到develop,pull代码
2 commit代码,commit代码选择普通提交:选中Compute Change-Id
3 rebase
4 push
mine操作步骤:点击myview(http://code.estrongs.com/#/),指派两个review,复制该页面的地址,打开我的工作台修改相关配置,贴上刚才复制的地址。
1. 下载Git客户端并安装,推荐Git v1.9.2。确认Eclipse中有Git插件,如果没有,下载并安装EGit插件。
2. 找主管添加用户名(姓名的拼音小写)和密码。
3. 浏览器登录Gerrit,http://code.estrongs.com。
4. 登录后点击右上姓名,选中setting。在setting页面中选Contact Information,填写 full name,注册email地址。
5. 注册SSH Public Key。在Git Bash命令行中输入:
生成id_rsa和id_rsa.pub两个文件。用记事本打开id_rsa.pub文件,复制其中的内容,添加到Gerrit -> Setting -> SSH Public Key。
6. 配置config文件。为了让SSH程序知道密钥文件是id_rsa,需要建立 ~/.ssh/config文件,内容如下:
7. Setting -> Watched Project中,project Name写esrepo。
8. 换行符设置。为了防止因为换行符冲突导致提交的代码无法进行review,在Git Bash中输入:
二、基本操作
Git的基本操作可以在Git Bash中用命令行操作,也可以使用eclipse中的插件来完成。推荐以插件操作为主,Git Bash为辅。
1. Clone
l 插件:
l Git Bash:
2. History Log
查看Git的commit记录。
l 插件:
右键Project -> Team -> Show in History
可以查看特定范围内文件的修改记录,方法是先选定要查看的范围(单选或多选项目、目录、文件等),再右键查看。
l Git Bash:
3. New & Checkout branch
创建或切换本地分支。
注意在创建分支时,会在当前commit的位置创建分支。
l 插件:
创建分支:右键Project -> Team -> Switch To-> New Branch
切换分支:右键Project -> Team -> Switch To-> 目标分支
l Git Bash:
4. Add to Index
将新的文件或目录添加到Git暂存区,以便稍后提交。
l 插件:
多选要添加的文件和目录 -> 右键 -> Team -> Add to Index
l Git Bash:
5. Commit
普通提交会新生成一个commit。
修补提交(Amend)会在上一个commit的基础上进行修改。
l 插件:
右键Project -> Team -> Commit
右侧三个按钮为Amend,Add Signed-off-by,ComputeChange-Id。
普通提交:选中Compute Change-Id。
修补提交:选中Amend按钮(Compute Change-Id按钮自动被选中)
l Git Bash:
6. Push
将本地的分支上传到Gerrit服务器或者Git仓库。
l 插件:右键Project -> Team -> Remote -> Push,点Next,出现如下对话框,
填写Source ref(一般为HEAD),Destination ref(一般为refs/for/branchName或branchName),点Add Spec添加到下面,再点Next继续。
l Git Bash:
7. Fetch & Pull
用于更新本地的代码,使其与远程一致。
Fetch获取远程分支。
Pull先获取远程分支,再与本地分支合并,并更新HEAD指针。
l 插件:
Fetch:右键Project ->Team -> Fetch from Upstream
Pull:右键Project ->Team -> Pull
l Git Bash:
8. Rebase
将其他分支的一部分选定的commit合并到当前分支。选定的方法为从目标分支上截取从目标commit到第一个共同commit之间的所有commit。常用于处理本地分支与远程取下的分支之间的冲突。
l 插件:
首先查看本地的History:
右键Project -> Team -> Show in History,
然后在History窗口中右键目标commit -> Rebase Interactive
在Rebase Interactive窗口中,可以调整每个commit的操作模式,默认都是Pick。点Start。
如果遇到冲突,用merge tool解决冲突。将解决完冲突的文件Add to Index。如果冲突全部解决,在RebaseInteractive窗口中点Continue;如果冲突无法解决,在Rebase Interactive窗口中点Abort。
l Git Bash:
9. Push branch
一般用来新建远程分支。
l 插件:
右键Project -> Team -> Push Branch ‘branchName’…。
l Git Bash:
三、工作流程
代码在本地编写,提交到Gerrit进行测试和review,通过后进入Git仓库。如下图所示:
以下流程适用于完成单人任务。
1. 更新代码
(1) 切换到develop分支
注意:先切换到develop分支、后执行Pull操作可以有效避免远程代码与本地代码冲突,所以一定要先切换到develop分支。
(2) Fetch & Pull
先执行Fetch操作,将远程的分支取回本地。再执行Pull操作,将远程分支与本地分支合并,并且更新HEAD指针。
2. 准备工作
(1) 更改mine的状态
功能需求或者bug描述都记录在mine上,在我的工作台可以查看到。开始解决问题时,先将该问题的状态由新建改为进行中。
(2) 新建本地分支
在目标远程分支的顶点新建一个本地分支。通常情况下,我们的目标远程分支为develop,因此下面以develop为例。先切换到develop分支,然后新建本地分支,按个人习惯随意命名。
(3) 编写代码
将新建的类或资源文件Add to Index。
3. 提交更改
(1) Commit
提交时需要填写Commit Message。格式如下:
首次提交时,按照普通提交的方法进行commit,会在提交记录中生成一个新的commit。
在push以前可以多次修改和提交。从第二次提交开始,需要按照修补提交的方法进行commit,不再生成新的commit,而是直接修改上一个commit。
(2) Push到Gerrit
将当前的commit push到Gerrit(refs/for/branchName,对于本例是refs/for/develop)。在Gerrit上会生成一条新的记录,在My -> changes中可以看到。
进入Gerrit上的这条记录,在Add Reviewer处添加2个RD和1个QA进行review和测试。
(3) 修改mine的状态
修改mine上的记录,状态改为已解决,指派给刚才的QA,并附上Gerrit上这条记录的URL。
至此该任务就可以进入测试阶段了。重复1-3的步骤去开始解决其他的问题。
4. 再次修改
如果review或者test没有通过,需要再次修改。
(1) 切换回该任务的分支
如果此时正在其他的分支上进行修改,先在当前的分支上commit,保存修改,再checkout到该任务的分支。
(2) 编写代码并Commit
按照修补提交的方法进行commit。需要填写patch set说明。
(3) 再次Push到Gerrit
会在之前的Gerrit记录上生成一个新的patch set。
(4) 修改mine的状态
如果mine上的任务被QA指派了回来,再次将状态改为已解决,指派给QA。
5. 解决冲突
如果review和test通过了,在merge时发生冲突,需要再次修改。
(1) 按照1的步骤更新代码
注意要先切换到develop分支。如果切换前当前分支有未提交的代码,需要先提交,保存修改。
(2) 切换到该任务的分支
(3) rebase到develop分支
rebase的过程中会产生冲突。解决掉冲突
(4) 再次Push到Gerrit
(5) 修改mine的状态
6. 结束任务
如果该任务的commit已被merge到develop,并且更新本地代码后可以看到更新下来的该任务的commit,就可以将该任务的本地分支删除了。
2 commit代码,commit代码选择普通提交:选中Compute Change-Id
3 rebase
4 push
mine操作步骤:点击myview(http://code.estrongs.com/#/),指派两个review,复制该页面的地址,打开我的工作台修改相关配置,贴上刚才复制的地址。
Version | Author | Date |
V1.0 | An Fengyi | 2015.10.7 |
Git使用指南
一、准备工作1. 下载Git客户端并安装,推荐Git v1.9.2。确认Eclipse中有Git插件,如果没有,下载并安装EGit插件。
2. 找主管添加用户名(姓名的拼音小写)和密码。
3. 浏览器登录Gerrit,http://code.estrongs.com。
4. 登录后点击右上姓名,选中setting。在setting页面中选Contact Information,填写 full name,注册email地址。
5. 注册SSH Public Key。在Git Bash命令行中输入:
生成id_rsa和id_rsa.pub两个文件。用记事本打开id_rsa.pub文件,复制其中的内容,添加到Gerrit -> Setting -> SSH Public Key。
6. 配置config文件。为了让SSH程序知道密钥文件是id_rsa,需要建立 ~/.ssh/config文件,内容如下:
7. Setting -> Watched Project中,project Name写esrepo。
8. 换行符设置。为了防止因为换行符冲突导致提交的代码无法进行review,在Git Bash中输入:
二、基本操作
Git的基本操作可以在Git Bash中用命令行操作,也可以使用eclipse中的插件来完成。推荐以插件操作为主,Git Bash为辅。
1. Clone
l 插件:
l Git Bash:
2. History Log
查看Git的commit记录。
l 插件:
右键Project -> Team -> Show in History
可以查看特定范围内文件的修改记录,方法是先选定要查看的范围(单选或多选项目、目录、文件等),再右键查看。
l Git Bash:
3. New & Checkout branch
创建或切换本地分支。
注意在创建分支时,会在当前commit的位置创建分支。
l 插件:
创建分支:右键Project -> Team -> Switch To-> New Branch
切换分支:右键Project -> Team -> Switch To-> 目标分支
l Git Bash:
4. Add to Index
将新的文件或目录添加到Git暂存区,以便稍后提交。
l 插件:
多选要添加的文件和目录 -> 右键 -> Team -> Add to Index
l Git Bash:
5. Commit
普通提交会新生成一个commit。
修补提交(Amend)会在上一个commit的基础上进行修改。
l 插件:
右键Project -> Team -> Commit
右侧三个按钮为Amend,Add Signed-off-by,ComputeChange-Id。
普通提交:选中Compute Change-Id。
修补提交:选中Amend按钮(Compute Change-Id按钮自动被选中)
l Git Bash:
6. Push
将本地的分支上传到Gerrit服务器或者Git仓库。
l 插件:右键Project -> Team -> Remote -> Push,点Next,出现如下对话框,
填写Source ref(一般为HEAD),Destination ref(一般为refs/for/branchName或branchName),点Add Spec添加到下面,再点Next继续。
l Git Bash:
7. Fetch & Pull
用于更新本地的代码,使其与远程一致。
Fetch获取远程分支。
Pull先获取远程分支,再与本地分支合并,并更新HEAD指针。
l 插件:
Fetch:右键Project ->Team -> Fetch from Upstream
Pull:右键Project ->Team -> Pull
l Git Bash:
8. Rebase
将其他分支的一部分选定的commit合并到当前分支。选定的方法为从目标分支上截取从目标commit到第一个共同commit之间的所有commit。常用于处理本地分支与远程取下的分支之间的冲突。
l 插件:
首先查看本地的History:
右键Project -> Team -> Show in History,
然后在History窗口中右键目标commit -> Rebase Interactive
在Rebase Interactive窗口中,可以调整每个commit的操作模式,默认都是Pick。点Start。
如果遇到冲突,用merge tool解决冲突。将解决完冲突的文件Add to Index。如果冲突全部解决,在RebaseInteractive窗口中点Continue;如果冲突无法解决,在Rebase Interactive窗口中点Abort。
l Git Bash:
9. Push branch
一般用来新建远程分支。
l 插件:
右键Project -> Team -> Push Branch ‘branchName’…。
l Git Bash:
三、工作流程
以下流程适用于完成单人任务。
1. 更新代码
(1) 切换到develop分支
注意:先切换到develop分支、后执行Pull操作可以有效避免远程代码与本地代码冲突,所以一定要先切换到develop分支。
(2) Fetch & Pull
先执行Fetch操作,将远程的分支取回本地。再执行Pull操作,将远程分支与本地分支合并,并且更新HEAD指针。
2. 准备工作
(1) 更改mine的状态
功能需求或者bug描述都记录在mine上,在我的工作台可以查看到。开始解决问题时,先将该问题的状态由新建改为进行中。
(2) 新建本地分支
在目标远程分支的顶点新建一个本地分支。通常情况下,我们的目标远程分支为develop,因此下面以develop为例。先切换到develop分支,然后新建本地分支,按个人习惯随意命名。
(3) 编写代码
将新建的类或资源文件Add to Index。
3. 提交更改
(1) Commit
提交时需要填写Commit Message。格式如下:
首次提交时,按照普通提交的方法进行commit,会在提交记录中生成一个新的commit。
在push以前可以多次修改和提交。从第二次提交开始,需要按照修补提交的方法进行commit,不再生成新的commit,而是直接修改上一个commit。
(2) Push到Gerrit
将当前的commit push到Gerrit(refs/for/branchName,对于本例是refs/for/develop)。在Gerrit上会生成一条新的记录,在My -> changes中可以看到。
进入Gerrit上的这条记录,在Add Reviewer处添加2个RD和1个QA进行review和测试。
(3) 修改mine的状态
修改mine上的记录,状态改为已解决,指派给刚才的QA,并附上Gerrit上这条记录的URL。
至此该任务就可以进入测试阶段了。重复1-3的步骤去开始解决其他的问题。
4. 再次修改
如果review或者test没有通过,需要再次修改。
(1) 切换回该任务的分支
如果此时正在其他的分支上进行修改,先在当前的分支上commit,保存修改,再checkout到该任务的分支。
(2) 编写代码并Commit
按照修补提交的方法进行commit。需要填写patch set说明。
(3) 再次Push到Gerrit
会在之前的Gerrit记录上生成一个新的patch set。
(4) 修改mine的状态
如果mine上的任务被QA指派了回来,再次将状态改为已解决,指派给QA。
5. 解决冲突
如果review和test通过了,在merge时发生冲突,需要再次修改。
(1) 按照1的步骤更新代码
注意要先切换到develop分支。如果切换前当前分支有未提交的代码,需要先提交,保存修改。
(2) 切换到该任务的分支
(3) rebase到develop分支
rebase的过程中会产生冲突。解决掉冲突
(4) 再次Push到Gerrit
(5) 修改mine的状态
6. 结束任务
如果该任务的commit已被merge到develop,并且更新本地代码后可以看到更新下来的该任务的commit,就可以将该任务的本地分支删除了。
相关文章推荐
- python 闭包
- php 上传文件到远程服务器
- mybatis逆向工程生成代码
- Java求任意一组数正数负数平均数的个数
- (转载)如何看代码
- sntp协议简介
- MongoEngine中文参考
- Java - How HashMap works in Java
- windows 下安装python和pip【转】
- Java中Set、List、Map的区别
- Ruby:uninitialized constant ActiveSupport::Dependencies::Mutex (NameError)
- python os.path 模块阅读笔记
- 深入Java集合学习系列:ArrayList的实现原理
- Python re包---正则表达式
- LeetCode----Word Search
- java static域 生命周期
- spring 官方下载地址
- MVC3 之asp.net 与vb.net 互转练习
- Java基础知识强化之IO流笔记34:OutputStreamWriter(Writer字符流的子类)5种write数据方式
- 在系里服务器安装python module到自己的home目录