当前位置:   article > 正文

git提交代码到同一分支时冲突的解决_查看同一个分支的冲突代码

查看同一个分支的冲突代码

我们在同一分支上开发代码时,代码冲突是不可避免的。下面通过一个简单的例子说下如何解决冲突

先看下分支上的代码

  1. #include <stdio.h>
  2. #include <string.h>
  3. int main()
  4. {
  5. char data[100] = {0};
  6. int length = strlen(data);
  7. for(int i = 0; i < length; i++)
  8. {
  9. printf("%c", data[i]);
  10. }
  11. printf("\n");
  12. return 0;
  13. }

A用户修改代码,并提交。

  1. #include <stdio.h>
  2. #include <string.h>
  3. int main()
  4. {
  5. char data[100] = "my name is A";
  6. int length = strlen(data);
  7. for(int i = 0; i < length; i++)
  8. {
  9. printf("%c", data[i]);
  10. }
  11. printf("\n");
  12. return 0;
  13. }

B用户修改代码

  1. #include <stdio.h>
  2. #include <string.h>
  3. int main()
  4. {
  5. char data[100] = "my name is B";
  6. int length = strlen(data);
  7. for(int i = 0; i < length; i++)
  8. {
  9. printf("%c", data[i]);
  10. }
  11. printf("\n");
  12. return 0;
  13. }

当B用户git push时,就会出现冲突,下面是报错信息。

  1. lng@DESKTOP-9TD21KL MINGW64 ~/Desktop/kaol/kaol (master)
  2. $ git push origin master
  3. To https://gitee.com/lingpe/kaol.git
  4. ! [rejected] master -> master (fetch first)
  5. error: failed to push some refs to 'https://gitee.com/lingpe/kaol.git'
  6. hint: Updates were rejected because the remote contains work that you do
  7. hint: not have locally. This is usually caused by another repository pushing
  8. hint: to the same ref. You may want to first integrate the remote changes
  9. hint: (e.g., 'git pull ...') before pushing again.
  10. hint: See the 'Note about fast-forwards' in 'git push --help' for details.

接下来我们需要需要先拉取分支的代码

  1. lng@DESKTOP-9TD21KL MINGW64 ~/Desktop/kaol/kaol (master)
  2. $ git pull
  3. remote: Enumerating objects: 5, done.
  4. remote: Counting objects: 100% (5/5), done.
  5. remote: Compressing objects: 100% (3/3), done.
  6. remote: Total 3 (delta 1), reused 0 (delta 0), pack-reused 0
  7. Unpacking objects: 100% (3/3), 308 bytes | 51.00 KiB/s, done.
  8. From https://gitee.com/lingpe/kaol
  9. 1bb7c56..65d76a9 master -> origin/master
  10. Auto-merging main.cpp
  11. CONFLICT (content): Merge conflict in main.cpp
  12. Automatic merge failed; fix conflicts and then commit the result.

可以看到如图提示信息,告诉我们哪个文件发生了冲突

我们打开文件,可以看到文件中有一些特殊字符,会提示具体是哪一行代码发生了冲突。

  1. #include <stdio.h>
  2. #include <string.h>
  3. int main()
  4. {
  5. <<<<<<< HEAD
  6. char data[100] = "my name is B";
  7. =======
  8. char data[100] = "my name is A";
  9. >>>>>>> 65d76a9f8ffabbd5983b101ca2b02b31bc854fb8
  10. int length = strlen(data);
  11. for(int i = 0; i < length; i++)
  12. {
  13. printf("%c", data[i]);
  14. }
  15. printf("\n");
  16. return 0;
  17. }

我们删除文件中的特殊字符,再根据需求决定要删除或保留哪些代码

  1. #include <stdio.h>
  2. #include <string.h>
  3. int main()
  4. {
  5. char data1[100] = "my name is B";
  6. char data2[100] = "my name is A";
  7. int length = strlen(data1);
  8. for(int i = 0; i < length; i++)
  9. {
  10. printf("%c", data1[i]);
  11. }
  12. printf("\n");
  13. return 0;
  14. }

修改完成后重新提交

  1. lng@DESKTOP-9TD21KL MINGW64 ~/Desktop/kaol/kaol (master|MERGING)
  2. $ git add .
  3. lng@DESKTOP-9TD21KL MINGW64 ~/Desktop/kaol/kaol (master|MERGING)
  4. $ git commit -m "解决冲突"
  5. [master 32ffcce] 解决冲突
  6. lng@DESKTOP-9TD21KL MINGW64 ~/Desktop/kaol/kaol (master)
  7. $ git push origin master
  8. Enumerating objects: 10, done.
  9. Counting objects: 100% (10/10), done.
  10. Delta compression using up to 12 threads
  11. Compressing objects: 100% (6/6), done.
  12. Writing objects: 100% (6/6), 671 bytes | 671.00 KiB/s, done.
  13. Total 6 (delta 2), reused 0 (delta 0), pack-reused 0
  14. remote: Powered by GITEE.COM [GNK-6.2]
  15. To https://gitee.com/lingpe/kaol.git
  16. 65d76a9..32ffcce master -> master

至此,冲突成功解决。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/你好赵伟/article/detail/778693
推荐阅读
相关标签
  

闽ICP备14008679号