您的位置:首页 > 编程语言

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,复制该页面的地址,打开我的工作台修改相关配置,贴上刚才复制的地址。

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:

三、工作流程

 
 
代码在本地编写,提交到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,就可以将该任务的本地分支删除了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: