# Git 面试题

# git rebase和merge的区别

  • Rebase(变基)是将一个分支上的提交逐个地应用到另一个分支上,使得提交历史变得更加线性。当执行rebase时,Git会将目标分支与源分支的共同祖先以来的所有提交挪到目标分支的最新位置。这个过程可以看作是将源分支上的每个提交复制到目标分支上。简而言之,rebase可以将提交按照时间顺序线性排列。
  • Merge(合并)是将两个分支上的代码提交历史合并为一个新的提交。在执行merge时,Git会创建一个新的合并提交,将两个分支的提交历史连接在一起。这样,两个分支的修改都会包含在一个合并提交中。合并后的历史会保留每个分支的提交记录。

# 如何使用 git 命令合并两个分支,发生冲突如何解决

  1. 查看冲突:当发生冲突时,Git 会提示您文件中的冲突部分。您可以使用以下命令查看所有冲突文件的状态。
git status
  1. 解决冲突:打开包含冲突的文件,您会看到类似以下的标记:
<<<<<<< HEAD
// 代码来自目标分支
=======
// 代码来自要合并的分支
>>>>>>> branchName

您需要手动编辑这些文件,决定保留哪些变更或者如何整合这些变更。

  1. 标记为已解决:完成冲突解决后,对已解决的文件使用以下命令标记为已解决。
git add <已解决文件>
  1. 完成合并:继续提交这些已解决的冲突文件。
git commit -m "解决合并冲突"

#