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提交代码的处理流程(转)相关推荐

  1. 【Intellij IDEA系列】IDEA使用git提交代码流程

    git提交代码流程 注意事项: (1)修改文件之前,一定要先git pull,保证修改的是最新的版本; (2)git push之前一定要先git pull,因为可能别人修改相同的文件并已commit, ...

  2. 在使用Git提交代码的时候犯了个低级错误

    今天在使用git提交代码的时候,犯了个很低级的错误,按照一切流程当我add并commit提交代码,最后使用push到远程仓库, 接下来奇怪的事情发生了,push之后,查看远程仓库代码并没有发现提交记录 ...

  3. Git提交代码注释信息规范-相关命令汇总

    - Git提交代码注释信息规范- git commit -m "提交类型+代码总结"- 提交类型:1. feat: 修改/增加新功能2. fix: 修改bug/功能代码的变更3. ...

  4. mac电脑Git提交代码到Github提示git-credential-osxkeychain 验证解决方案

    mac电脑Git提交代码到Github提示git-credential-osxkeychain 验证解决方案 参考文章: (1)mac电脑Git提交代码到Github提示git-credential- ...

  5. git提交代码报错解决方法 Git-remote Incorrect username or password ( access token )

    git提交代码的时候报错 $ git push origin ionic-001 remote: Incorrect username or password ( access token ) fat ...

  6. git提交代码到码云

    日常代码一般提交到github比较多,但我还是钟爱马爸爸,没错就是码云. 码云是中文版的代码托管的网站,不存在打开网速问题,使用也蛮方便的,日常自己保存托管代码已经足够,平时使用git提交代码到码云是 ...

  7. IDEA使用git提交代码时,点了commit之后卡死在performing code analysis部分,或者performing code analysis结束后没有进入下一步操作。

    IDEA使用git提交代码时,点了commit之后卡死在performing code analysis部分,或者performing code analysis结束后没有进入下一步操作. 版权声明: ...

  8. Git Bash基本命令,Git提交代码到GitHub,GitHub获取代码到本地

    Git简介,GitHub与Git区别,Git与SVN区别:Git简介 Git与GitHub区别和关系 Git官网下载(国内超慢):Git官网下载 Git淘宝镜像(下载非常快):Git淘宝镜像 推荐Gi ...

  9. repo/git提交代码

    Repo每个的工程下每个目录下都有一个git仓库,可以在每个目录的git仓库下执行git各种命令. 一.从服务器clone代码 1.初始化repo仓库 # repo init -u http://xx ...

  10. Git提交代码失败: empty ident name (for ) not allowed

    使用git提交代码,报错如下: 下午2:56 Commit failed with error 0 files committed, 1 file failed to commit: 升级 empty ...

最新文章

  1. linux shell echo 输出到标准错误 stderr
  2. J-Link 输出供电问题
  3. 计算机文献双语外文,中英文双语计算机专业毕业设计外文文献翻译成品:对Delphi的概述.docx...
  4. 前端开发JS的学习之AngularJS库
  5. mysql映射mapper_Mybatis中Mapper映射文件使用详解
  6. Data-Driven Geometry Processing 3D Deep Learning
  7. html5标签属性大全_html5 文本相关标签
  8. onvif协议规范与版本简介
  9. 【经典精读】Transformer模型深度解读
  10. 自建CA生成证书详解
  11. Redis 6.0 源码阅读笔记(1) -- Redis 服务端启动及命令执行
  12. 自解压shell文件的制作
  13. ASCII三种进制对照表、二进制、字节
  14. 视频教程-【深入理解计算机网络】讲师解读计算机网络原理视频课程(下)-计算机网络
  15. GIF是什么格式的文件
  16. [源码和文档分享]基于8253、8255芯片汇编实现简易电子琴
  17. 阿里巴巴2016前端开发工程师笔试一
  18. 作为阿里的面试官,我有话想说。
  19. 对Redis数据库的学习!
  20. 【网络编程实践--陈硕】2.4.4 procmon 程序的设计实现

热门文章

  1. Python 之父:移动设备中的 Python 应用“又大又慢”!
  2. android 打包成多个so,Android Studio打包.so库到apk中实例详解
  3. oracle设置禁用外键,oracle禁用表外键
  4. 和包支付的钱哪里来_老瓦发问国际乒联:道理我都懂!问题钱从哪里来?
  5. 【语音处理】基于matlab GUI汉宁窗FIR陷波滤波器语音信号加噪去噪【含Matlab源码 1711期】
  6. 【优化调度】基于matlab一致性算法求解电力系统分布式经济调度优化问题【含Matlab源码 770期】
  7. 【语音处理】基于matlab GUI语音信号综合处理平台【含Matlab源码 290期】
  8. SPSS统计术语与思维【SPSS 002期】
  9. java 四大元注解_java中元注解有四个
  10. python gif_Python-字符版gif图