Git 是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。Git 与常用的版本控制工具 CVS, Subversion 等不同,它采用了分布式版本库的方式,不必服务器端软件支持。

合并并不仅仅是简单的文件添加、移除的操作,Git 也会合并修改。

$ git branch
* master
$ cat runoob.php

首先,我们创建一个叫做 change_site 的分支,切换过去,我们将 runoob.php 内容改为:

< ?php
echo 'runoob';
?>

创建 change_site 分支:

$ git checkout -b change_site
Switched to a new branch 'change_site'
$ vim runoob.php
$ head -3 runoob.php
< ?php
echo 'runoob';
?>
$ git commit -am 'changed the runoob.php'
[change_site 7774248] changed the runoob.php
1 file changed, 3 insertions(+)

将修改的内容提交到 change_site 分支中。 现在,假如切换回 master 分支我们可以看内容恢复到我们修改前的(空文件,没有代码),我们再次修改 runoob.php 文件。

http://www.51cto.com/it/news/2019/0923/14820.html
https://www.linuxprobe.com/books

$ git checkout master
Switched to branch 'master'
$ cat runoob.php
$ vim runoob.php # 修改内容如下
$ cat runoob.php
< ?php
echo 1;
?>
$ git diff
diff --git a/runoob.php b/runoob.php
index e69de29..ac60739 100644
--- a/runoob.php
+++ b/runoob.php
@@ -0,0 +1,3 @@
+< ?php
+echo 1;
+?>
$ git commit -am '修改代码'
[master c68142b] 修改代码
1 file changed, 3 insertions(+)

现在这些改变已经记录到我的 "master" 分支了。接下来我们将 "change_site" 分支合并过来。

$ git merge change_site
Auto-merging runoob.php
CONFLICT (content): Merge conflict in runoob.php
Automatic merge failed; fix conflicts and then commit the result. $ cat runoob.php # 代开文件,看到冲突内容
< ?php
<<<<<<< HEAD
echo 1;
=======
echo 'runoob';
>>>>>>> change_site
?>

我们将前一个分支合并到 master 分支,一个合并冲突就出现了,接下来我们需要手动去修改它。

$ vim runoob.php
$ cat runoob.php
< ?php
echo 1;
echo 'runoob';
?>
$ git diff
diff --cc runoob.php
index ac60739,b63d7d7..0000000
--- a/runoob.php
+++ b/runoob.php
@@@ -1,3 -1,3 +1,4 @@@
< ?php
+echo 1;
+ echo 'runoob';
?>

在 Git 中,我们可以用 git add 要告诉 Git 文件冲突已经解决

$ git status -s
UU runoob.php
$ git add runoob.php
$ git status -s
M runoob.php
$ git commit
[master 88afe0e] Merge branch 'change_site'

现在我们成功解决了合并中的冲突,并提交了结果。

最新文章

  1. SSIS 数据源组件的External Metadata和Advanced Property
  2. SQL之收集SQL Server线程等待信息
  3. JUnit3的作用
  4. CSS--复习之旅(一)
  5. poj: 1004
  6. hdu 1867 A + B for you again
  7. 使用Vitamio打造自己的Android万能播放器(2)—— 手势控制亮度、音量、缩放
  8. 41个有关Python的小技巧【转】
  9. Pangolin学习
  10. 201521123036 《Java程序设计》第2周学习总结
  11. WPF 视频教程+笔记
  12. 关键字new与malloc函数
  13. TypeError: Cannot red property &#39;style&#39; of null 错误解决
  14. xslt中substring 函数的用法
  15. Flink安装、高可用性
  16. 独立成分分析(Independent component analysis, ICA)
  17. [洛谷P1707] 刷题比赛
  18. C++正则表达式例子
  19. Requests接口测试(四)
  20. hdu 5374 Tetris(模拟)

热门文章

  1. css display:inline
  2. Linux—— 记录所有登陆用户的历史操作记录
  3. 平台级 SAAS 架构的基础:统一身份管理系统
  4. VS 代码过长自动换行
  5. iview form表单数值类型校验「iview自定义form表单校验器」
  6. Python面向对象 | 类属性
  7. python发邮件报错SMTP AUTH extension not supported by server.&quot;
  8. ESA2GJK1DH1K基础篇: 来吧! 彻底了解一下MQTT
  9. innerHTML, innerText, outerHTML, outerText的区别
  10. 开发中常用linux命令