教你玩转Git-合并冲突
2024-09-05 01:26:05
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'
现在我们成功解决了合并中的冲突,并提交了结果。
最新文章
- SSIS 数据源组件的External Metadata和Advanced Property
- SQL之收集SQL Server线程等待信息
- JUnit3的作用
- CSS--复习之旅(一)
- poj: 1004
- hdu 1867 A + B for you again
- 使用Vitamio打造自己的Android万能播放器(2)—— 手势控制亮度、音量、缩放
- 41个有关Python的小技巧【转】
- Pangolin学习
- 201521123036 《Java程序设计》第2周学习总结
- WPF 视频教程+笔记
- 关键字new与malloc函数
- TypeError: Cannot red property &#39;style&#39; of null 错误解决
- xslt中substring 函数的用法
- Flink安装、高可用性
- 独立成分分析(Independent component analysis, ICA)
- [洛谷P1707] 刷题比赛
- C++正则表达式例子
- Requests接口测试(四)
- hdu 5374 Tetris(模拟)
热门文章
- css display:inline
- Linux—— 记录所有登陆用户的历史操作记录
- 平台级 SAAS 架构的基础:统一身份管理系统
- VS 代码过长自动换行
- iview form表单数值类型校验「iview自定义form表单校验器」
- Python面向对象 | 类属性
- python发邮件报错SMTP AUTH extension not supported by server.";
- ESA2GJK1DH1K基础篇: 来吧! 彻底了解一下MQTT
- innerHTML, innerText, outerHTML, outerText的区别
- 开发中常用linux命令