git pull冲突怎么解决_git命令使用理解及分支的创建合并冲突问题解决

使用git init 命令创建一个本地仓库

83598afa06cb3643d6c3b7ccc2fbe3ab.png

得到的文件结构如下图:

dc203ae389005a048d0af7036cda867f.png
ac2519061c5ab24e046b6b9989e2e67a.png

使用git status 命令查看工作区状态

086c2e9753d4b4d6f6640028a3a60598.png

git add 命令添加工作区文件到仓库

29cf0d5551ea982fd816f23e9899691e.png
b516187485c25e1775b227586c76d497.png

分别修改f.txt文件两次,每次增加一行代码后保存,然后运行git add f.txt

我们发现每次文件修改保存后,只要文件有变化,就会在objects目录下有新的文件夹生成,其实这里就是存放我们每次文件的记录的。经测试文件没有修改,运行git add f.txt是没有变化的。

4fea425be6928c97d32d6b7c64a061e0.png

提交文件(git commit)

git commit -m "first"

-m参数是备注的意思后面跟着我们这次提交的备注信息。

1edc7ec59033d759b67ef0adf5e08d0e.png

提交后查看工作区状态

d8f0452dd2a723d43d2c6d2d3c979d99.png

git log查看日志

0b3ce990aa2c2a8f36c1b721c14f5886.png

查看提交详情(git show)

git show 24acb470df451a7b6c97d9bc64ff971ce7403d72

git diff命令查看文件不同

06018884e2f3aba7dd7fa1aa2160f249.png

第一行运行时没有任何结果,因为我们刚comiit(提交)了代码,所以工作区与仓库的内容没有不同。当我们将e.txt文档增加了一行aaaa后,运行git diff将会看到对比后的结果。

git reset命令恢复工作区到指定的更新点

818d510612a13a393583bedc84a03d30.png

运行命令git reset --hard c551ecc634efc9e1339f2e35347d4ff704ce1615

2371ad47f8d1d4ab5c70165f13c090fa.png

这时我们在打开f.txt,e.txt发现文件内容的确恢复到当时内容的情况了。

395936eb58cdfab80f50541529691349.png

git branch -l查看分支命令

git中分支的意思是以当前master为基准开出一个新的分支,仓库在创建时就有一个默认分支master.如下图:

1d622d5e6cfb13411895e4ca98bd6c30.png

下面我们根据实例看一下到底分支是怎么起作用的

创建我们创建一个仓库,然后在工作区创建一个a.txt文档,添加一行内容:111,然后添加到索引区(add),然后提交(commit)。

96f31c896e27a3e9b973b1e05aad54f3.png

创建新的分支

git branch b1

切换到新的分支

git checkout b1

d92ca52f3bcfe667a6761c025d06a003.png

这时我们分支b1里保存的就是从master复制来的文件快照,当我们切换到分支b1后修改一下a.txt增加一行内容:222,然后add(添加到索引区),然后再commit(提交)

580143766d4f1a61efc7a21574417a6d.png

以上部分我们分支b1和分支master内容就不相同了.其中master中的a.txt还是只有一行内容:111

我们先checkout 到master下

git checkout master

然后打开a.txt查看内容如下:

0a7823c0269b33fba622ad250c71815a.png

然后我们切换到b1分支下

git checkout b1

然后打开a.txt查看内容如下:

0f6adefe9d48992133c5caf143eb3f79.png

以上就演示了git神奇的分支功能,我们可以在代码某一个版本后,开一个分支,继续编写另一套程序。最常见的应用场景之一就是我们比如在做好一套web框架后,基于这个框架开分支编写具体的应用程序。

分支的合并

上面说了分支可以将多套代码分别管理的功能,当然git中分支的强大功能还不局限于此。下面我们讨论一下分支的合并功能。

接着上面的步骤,我们在分支b1中给a.txt内容增加了一行:222,那么现在master中a.txt内容还是:111,如果我们想把b1分支合并来,那怎么做?答案是使用git merge命令。

70c4e50afe147bf6897c0eb1c7217747.png

这时在master下查看a.txt内容与b1分支查看文件内容都是同样的两行内容了。(也就是实现了把b1分支下的文件内容合并到了mater下)

197be69da97699898f40871fb4d5be5c.png

关于分支冲突的产生

如果说上一步合并前,我们修改master分支下的a.txt,我们增加了一行内容:aaa,并提交了。这时如果我们运行合并命令时,会有出错提示:

af766a1031477861c4adb83f20108a9e.png

因为我们这时master分支下a.txt内容为:

111

aaa

而b1分支下a.txt内容为:

111

222

因而在合并时出现了冲突

49f2c3f5ea8bb9ea5a747d237fa128a4.png

至于 冲突的处理,我们继续看

6437493b0b488373e303d227637fc285.png

如上图,出现冲突后,git已经在出现冲突的文件里给我们标记好冲突的位置及内容,我们修改好文件后,使用git add 然后git commit把修改好的文件提交到我们的master分支里即可。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值