Git提交代码的处理流程(转)
Jerry 工作在wchar_support分支。他改变了名称的功能和测试后,他提交他的变化。
[jerry@CentOS src]$ git branchmaster * wchar_support [jerry@CentOS src]$ git diff
上面的命令产生以下结果
diff --git a/src/string_operations.c b/src/string_operations.c index 8fb4b00..01ff4e0 100644 --- a/src/string_operations.c +++ b/src/string_operations.c @@ -1,7 +1,7 @@ #include <stdio.h> #include <wchar.h> -size_t w_strlen(const wchar_t *s) +size_t my_wstrlen(const wchar_t *s) { const wchar_t *p = s;
验证代码后,他提交了他的变化。
[jerry@CentOS src]$ git status -s M string_operations.c[jerry@CentOS src]$ git add string_operations.c[jerry@CentOS src]$ git commit -m 'Changed function name' [wchar_support 3789fe8] Changed function name 1 files changed, 1 insertions(+), 1 deletions(-)[jerry@CentOS src]$ git push origin wchar_support
上面的命令会产生以下结果。
Counting objects: 7, done. Compressing objects: 100% (4/4), done. Writing objects: 100% (4/4), 409 bytes, done. Total 4 (delta 1), reused 0 (delta 0) To gituser@git.server.com:project.git 64192f9..3789fe8 wchar_support -> wchar_support
在主分支进行更改
同时在主分支Tom 也改变了名称相同的功能,并将其更改到主分支。
[tom@CentOS src]$ git branch * master [tom@CentOS src]$ git diff
上面的命令会产生以下结果。
diff --git a/src/string_operations.c b/src/string_operations.c index 8fb4b00..52bec84 100644 --- a/src/string_operations.c +++ b/src/string_operations.c @@ -1,7 +1,8 @@ #include <stdio.h> #include <wchar.h> -size_t w_strlen(const wchar_t *s) +/* wide character strlen fucntion */ +size_t my_wc_strlen(const wchar_t *s) { const wchar_t *p = s;
验证差异后,他提交了他的变化。
[tom@CentOS src]$ git status -s M string_operations.c[tom@CentOS src]$ git add string_operations.c[tom@CentOS src]$ git commit -m 'Changed function name from w_strlen to my_wc_strlen' [master ad4b530] Changed function name from w_strlen to my_wc_strlen 1 files changed, 2 insertions(+), 1 deletions(-)[tom@CentOS src]$ git push origin master
上面的命令会产生以下结果。
Counting objects: 7, done. Compressing objects: 100% (4/4), done. Writing objects: 100% (4/4), 470 bytes, done. Total 4 (delta 1), reused 0 (delta 0) To gituser@git.server.com:project.git 64192f9..ad4b530 master -> master
strchr 函数在分支Jerry 实现 wchar_support宽字符字符串。经过测试,他提交和推送其变化 wchar_support 分支。
[jerry@CentOS src]$ git branch master * wchar_support [jerry@CentOS src]$ git diff
上面的命令会产生以下结果。
diff --git a/src/string_operations.c b/src/string_operations.c index 01ff4e0..163a779 100644 --- a/src/string_operations.c +++ b/src/string_operations.c @@ -1,6 +1,16 @@ #include <stdio.h> #include <wchar.h> +wchar_t *my_wstrchr(wchar_t *ws, wchar_t wc) +{ + while (*ws) { + if (*ws == wc) + return ws; + ++ws; + } + return NULL; +} + size_t my_wstrlen(const wchar_t *s) { const wchar_t *p = s;
验证变化后,他提交他的变化。
[jerry@CentOS src]$ git status -s M string_operations.c[jerry@CentOS src]$ git add string_operations.c[jerry@CentOS src]$ git commit -m 'Addded strchr function for wide character string' [wchar_support 9d201a9] Addded strchr function for wide character string 1 files changed, 10 insertions(+), 0 deletions(-)[jerry@CentOS src]$ git push origin wchar_support
上面的命令会产生以下结果。
Counting objects: 7, done. Compressing objects: 100% (4/4), done. Writing objects: 100% (4/4), 516 bytes, done. Total 4 (delta 1), reused 0 (delta 0) To gituser@git.server.com:project.git 3789fe8..9d201a9 wchar_support -> wchar_support
对付冲突
Tom想看,Jerry 在他的私人分支做什么?这就是为什么他试图从wchar_support分支把最新的修改,但Git 放弃操作在得到错误消息后。
[tom@CentOS src]$ git pull origin wchar_support
上面的命令会产生以下结果。
remote: Counting objects: 11, done. 63Git Tutorials remote: Compressing objects: 100% (8/8), done. remote: Total 8 (delta 2), reused 0 (delta 0) Unpacking objects: 100% (8/8), done. From git.server.com:project * branch wchar_support -> FETCH_HEAD Auto-merging src/string_operations.c CONFLICT (content): Merge conflict in src/string_operations.c Automatic merge failed; fix conflicts and then commit the result.
解决冲突
从错误消息很显然知道,是有冲突的在src/string_operations.c。他运行 git diff 命令查看进一步的细节。
[tom@CentOS src]$ git diff
上面的命令会产生以下结果。
diff --cc src/string_operations.c index 52bec84,163a779..0000000 --- a/src/string_operations.c +++ b/src/string_operations.c @@@ -1,8 -1,17 +1,22 @@@ #include <stdio.h> #include <wchar.h> ++<<<<<<< HEAD +/* wide character strlen fucntion */ +size_t my_wc_strlen(const wchar_t *s) ++======= + wchar_t *my_wstrchr(wchar_t *ws, wchar_t wc) +{ + + while (*ws) { if (*ws == wc) + return ws; + ++ws; + } + return NULL; +} + + size_t my_wstrlen(const wchar_t *s) ++>>>>>>>9d201a9c61bc4713f4095175f8954b642dae8f86 { const wchar_t *p = s;
由于Tom 和Jerry 在相同的功能更改的名称,Git不知道如何去做,因此这就是为什么它要求用户手动解决冲突。
Tom 决定保用 Jerry 建议的函数名,但他使用原来注释,因为这是他加入的。删除冲突标记混帐后差异会看起来像这样。
[tom@CentOS src]$ git diff
上面的命令会产生以下结果。
diff --cc src/string_operations.c diff --cc src/string_operations.c index 52bec84,163a779..0000000 --- a/src/string_operations.c +++ b/src/string_operations.c @@@ -1,8 -1,17 +1,18 @@@ #include <stdio.h> #include <wchar.h> + wchar_t *my_wstrchr(wchar_t *ws, wchar_t wc) +{ + while (*ws) { + if (*ws == wc) + return ws; + ++ws; + } + return NULL; +} + +/* wide character strlen fucntion */ - size_t my_wc_strlen(const wchar_t *s) + size_t my_wstrlen(const wchar_t *s) { const wchar_t *p = s;
Tom 修改过的文件,他先提交这些更改后,他就可以推送了。
[tom@CentOS src]$ git commit -a -m 'Resolved conflict' [master 6b1ac36] Resolved conflict[tom@CentOS src]$ git push origin wchar_support.
Tom 已经解决冲突,现在推送操作将成功。
http://www.yiibai.com/git/git_handling_conflicts.html
Git提交代码的处理流程(转)相关推荐
- 【Intellij IDEA系列】IDEA使用git提交代码流程
git提交代码流程 注意事项: (1)修改文件之前,一定要先git pull,保证修改的是最新的版本; (2)git push之前一定要先git pull,因为可能别人修改相同的文件并已commit, ...
- 在使用Git提交代码的时候犯了个低级错误
今天在使用git提交代码的时候,犯了个很低级的错误,按照一切流程当我add并commit提交代码,最后使用push到远程仓库, 接下来奇怪的事情发生了,push之后,查看远程仓库代码并没有发现提交记录 ...
- Git提交代码注释信息规范-相关命令汇总
- Git提交代码注释信息规范- git commit -m "提交类型+代码总结"- 提交类型:1. feat: 修改/增加新功能2. fix: 修改bug/功能代码的变更3. ...
- mac电脑Git提交代码到Github提示git-credential-osxkeychain 验证解决方案
mac电脑Git提交代码到Github提示git-credential-osxkeychain 验证解决方案 参考文章: (1)mac电脑Git提交代码到Github提示git-credential- ...
- git提交代码报错解决方法 Git-remote Incorrect username or password ( access token )
git提交代码的时候报错 $ git push origin ionic-001 remote: Incorrect username or password ( access token ) fat ...
- git提交代码到码云
日常代码一般提交到github比较多,但我还是钟爱马爸爸,没错就是码云. 码云是中文版的代码托管的网站,不存在打开网速问题,使用也蛮方便的,日常自己保存托管代码已经足够,平时使用git提交代码到码云是 ...
- IDEA使用git提交代码时,点了commit之后卡死在performing code analysis部分,或者performing code analysis结束后没有进入下一步操作。
IDEA使用git提交代码时,点了commit之后卡死在performing code analysis部分,或者performing code analysis结束后没有进入下一步操作. 版权声明: ...
- Git Bash基本命令,Git提交代码到GitHub,GitHub获取代码到本地
Git简介,GitHub与Git区别,Git与SVN区别:Git简介 Git与GitHub区别和关系 Git官网下载(国内超慢):Git官网下载 Git淘宝镜像(下载非常快):Git淘宝镜像 推荐Gi ...
- repo/git提交代码
Repo每个的工程下每个目录下都有一个git仓库,可以在每个目录的git仓库下执行git各种命令. 一.从服务器clone代码 1.初始化repo仓库 # repo init -u http://xx ...
- Git提交代码失败: empty ident name (for ) not allowed
使用git提交代码,报错如下: 下午2:56 Commit failed with error 0 files committed, 1 file failed to commit: 升级 empty ...
最新文章
- linux shell echo 输出到标准错误 stderr
- J-Link 输出供电问题
- 计算机文献双语外文,中英文双语计算机专业毕业设计外文文献翻译成品:对Delphi的概述.docx...
- 前端开发JS的学习之AngularJS库
- mysql映射mapper_Mybatis中Mapper映射文件使用详解
- Data-Driven Geometry Processing 3D Deep Learning
- html5标签属性大全_html5 文本相关标签
- onvif协议规范与版本简介
- 【经典精读】Transformer模型深度解读
- 自建CA生成证书详解
- Redis 6.0 源码阅读笔记(1) -- Redis 服务端启动及命令执行
- 自解压shell文件的制作
- ASCII三种进制对照表、二进制、字节
- 视频教程-【深入理解计算机网络】讲师解读计算机网络原理视频课程(下)-计算机网络
- GIF是什么格式的文件
- [源码和文档分享]基于8253、8255芯片汇编实现简易电子琴
- 阿里巴巴2016前端开发工程师笔试一
- 作为阿里的面试官,我有话想说。
- 对Redis数据库的学习!
- 【网络编程实践--陈硕】2.4.4 procmon 程序的设计实现
热门文章
- Python 之父:移动设备中的 Python 应用“又大又慢”!
- android 打包成多个so,Android Studio打包.so库到apk中实例详解
- oracle设置禁用外键,oracle禁用表外键
- 和包支付的钱哪里来_老瓦发问国际乒联:道理我都懂!问题钱从哪里来?
- 【语音处理】基于matlab GUI汉宁窗FIR陷波滤波器语音信号加噪去噪【含Matlab源码 1711期】
- 【优化调度】基于matlab一致性算法求解电力系统分布式经济调度优化问题【含Matlab源码 770期】
- 【语音处理】基于matlab GUI语音信号综合处理平台【含Matlab源码 290期】
- SPSS统计术语与思维【SPSS 002期】
- java 四大元注解_java中元注解有四个
- python gif_Python-字符版gif图