<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>美团-酒旅-前端面经 on Last Stand</title><link>https://amatsuzero.github.io/LastStand/posts/frontend/interview-experiences/experience-43/</link><description>Recent content in 美团-酒旅-前端面经 on Last Stand</description><generator>Hugo</generator><language>zh-cn</language><lastBuildDate>Thu, 17 Jul 2025 08:18:40 +0000</lastBuildDate><atom:link href="https://amatsuzero.github.io/LastStand/posts/frontend/interview-experiences/experience-43/index.xml" rel="self" type="application/rss+xml"/><item><title>美团-酒旅-前端面经 · 第 1 轮 · 一面</title><link>https://amatsuzero.github.io/LastStand/posts/frontend/interview-experiences/experience-43/round-57/</link><pubDate>Thu, 17 Jul 2025 08:18:40 +0000</pubDate><guid>https://amatsuzero.github.io/LastStand/posts/frontend/interview-experiences/experience-43/round-57/</guid><description>&lt;blockquote&gt;
&lt;p&gt;← 已是第一轮 · &lt;a href="https://amatsuzero.github.io/LastStand/posts/frontend/interview-experiences/experience-43/"&gt;返回本次面经&lt;/a&gt; · 已是最后一轮 →&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;本轮共 13 道题。答案默认折叠，便于先自行作答。&lt;/p&gt;
&lt;h2 id="question-subjective-6722e7a3eb1d"&gt;1. 简历提到你熟悉Git，请问如何处理代码合并时的冲突？&lt;/h2&gt;
&lt;h3 id="题目要点"&gt;题目要点&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;面试官出这道题主要想确认哪些知识维度？&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Git基础操作&lt;/strong&gt;：考察候选人对Git版本控制工具的熟悉程度，尤其是合并（merge）和解决冲突（conflict resolution）等核心操作。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;问题解决能力&lt;/strong&gt;：在实际开发中遇到代码冲突时，候选人如何分析问题、定位冲突并有效解决。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;协作开发经验&lt;/strong&gt;：在团队协作中，如何避免冲突，以及在发生冲突后如何与其他团队成员协作解决。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;该题所考知识点中有哪些高频实际应用点？&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;日常代码合并&lt;/strong&gt;：开发者在日常工作中频繁进行分支合并，冲突处理是不可避免的环节。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;版本回溯与管理&lt;/strong&gt;：理解冲突解决机制有助于更好地进行版本管理和历史回溯。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;团队协作效率&lt;/strong&gt;：高效解决冲突能够提高团队的开发效率和代码质量。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;details&gt;
&lt;summary&gt;参考答案&lt;/summary&gt;
&lt;h4 id="11-原理说明"&gt;1.1 原理说明&lt;/h4&gt;
&lt;p&gt;Git冲突是指在合并（merge）或变基（rebase）分支时，不同分支对同一个文件的相同部分进行了修改，或者一个分支修改了文件而另一个分支删除了该文件，导致Git无法自动判断保留哪个修改时发生的情况。Git会暂停合并操作，并将冲突部分标记出来，等待用户手动解决。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;冲突的产生：&lt;/strong&gt;
当两个或多个开发者对同一个文件的同一行或同一区域进行修改，并将各自的修改推送到远程仓库，在合并这些修改时，Git会提示冲突。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;冲突的类型：&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;内容冲突&lt;/strong&gt;：最常见，发生在同一个文件的相同行或相邻行被不同分支修改。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;文件冲突&lt;/strong&gt;：一个分支修改了文件，另一个分支删除了该文件；或者两个分支都创建了同名文件但内容不同。&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="12-核心用法--示例代码"&gt;1.2 核心用法 + 示例代码&lt;/h4&gt;
&lt;p&gt;处理Git合并冲突的主要步骤如下：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;更新本地仓库&lt;/strong&gt;：在进行合并操作前，通常需要先拉取远程最新代码，确保本地分支是最新的，减少潜在冲突。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;git pull origin &amp;lt;your-branch&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;执行合并操作&lt;/strong&gt;：当你尝试将一个分支合并到另一个分支时，如果存在冲突，Git会提示并停止合并。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;git merge &amp;lt;other-branch&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;或者使用rebase：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;git rebase &amp;lt;other-branch&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;识别冲突标记&lt;/strong&gt;：Git会在冲突文件中插入特殊标记，通常是：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;amp;lt; HEAD
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;// 当前分支的修改
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;=======
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;// 待合并分支的修改
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;lt;commit-id-or-branch-name&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;amp;lt; HEAD&lt;/code&gt;：表示当前分支（HEAD指向）的代码。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;=======&lt;/code&gt;：分隔符，表示冲突的开始和结束。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;lt;commit-id-or-branch-name&amp;gt;&lt;/code&gt;：表示待合并分支的代码。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;手动解决冲突&lt;/strong&gt;：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;编辑冲突文件&lt;/strong&gt;：根据业务需求，手动修改冲突文件，决定保留哪些代码，删除哪些代码。你可以选择保留其中一个分支的修改，或者结合两者的修改，甚至编写全新的代码。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;删除冲突标记&lt;/strong&gt;：在解决冲突后，务必删除&lt;code&gt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&lt;/code&gt;、&lt;code&gt;=======&lt;/code&gt;和&lt;code&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&lt;/code&gt;这些Git自动添加的标记。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;将解决后的文件标记为已解决&lt;/strong&gt;：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;git add &amp;lt;conflicted-file-name&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;提交合并结果&lt;/strong&gt;：在所有冲突文件都标记为已解决后，提交合并。&lt;/p&gt;</description></item></channel></rss>