合并或变基进行到一半想放弃,git merge --abort 与 git rebase --abort 各自恢复到什么状态
合并或变基进行到一半想放弃,git merge --abort 与 git rebase --abort 各自恢复到什么状态 本文先给出可直接复述的结论,再用最小代码说明git merge --abort rebase --abort 中止的工作方式、判断依据、项目边界和常见误区。
Git · 版本控制面试题第 1 页,显示第 1–42 题,共找到 42 道完整解析,可继续按分类、标签与关键词缩小范围。
按稳定语义路径排序
合并或变基进行到一半想放弃,git merge --abort 与 git rebase --abort 各自恢复到什么状态 本文先给出可直接复述的结论,再用最小代码说明git merge --abort rebase --abort 中止的工作方式、判断依据、项目边界和常见误区。
git bisect 如何利用二分查找定位引入 bug 的提交,如何自动化标记 good/bad 本文先给出可直接复述的结论,再用最小代码说明git bisect 二分查找 定位 bug的工作方式、判断依据、项目边界和常见误区。
git blame 如何判断每行最后由谁修改,大格式化提交污染 blame 时如何用 --ignore-rev 排除 本文先给出可直接复述的结论,再用最小代码说明git blame 忽略格式化提交 ignore-revs的工作方式、判断依据、项目边界和常见误区。
git switch 和 git restore 为什么从 git checkout 中拆分出来,三者职责如何划分 本文先给出可直接复述的结论,再用最小代码说明git switch restore checkout 区别的工作方式、判断依据、项目边界和常见误区。
为什么说 Git 分支只是一个指向提交的轻量指针,创建分支时实际写入了什么 本文先给出可直接复述的结论,再用最小代码说明Git 分支 指针 原理 refs/heads的工作方式、判断依据、项目边界和常见误区。
git cherry-pick 适用于什么场景,挑选的提交在新分支上为什么是不同的对象 本文先给出可直接复述的结论,再用最小代码说明git cherry-pick 挑选提交的工作方式、判断依据、项目边界和常见误区。
同一提交被 cherry-pick 到多个分支后,再合并这些分支会发生什么,如何避免重复冲突 本文先给出可直接复述的结论,再用最小代码说明cherry-pick 重复提交 合并 冲突的工作方式、判断依据、项目边界和常见误区。
为什么直接 cherry-pick 一个 merge commit 会失败,-m 1 表示什么、何时应该改用 revert 或重新合并 本文先给出可直接复述的结论,再用最小代码说明git cherry-pick merge commit -m的工作方式、判断依据、项目边界和常见误区。
git cherry-pick 如何一次挑拣一个提交区间,区间左端点开闭有什么讲究、中途冲突如何处理 本文先给出可直接复述的结论,再用最小代码说明git cherry-pick 区间 冲突 处理的工作方式、判断依据、项目边界和常见误区。
git commit --amend 修改了最近一次提交的什么,为什么已推送的提交不应再 amend 本文先给出可直接复述的结论,再用最小代码说明git commit --amend 修改提交 风险的工作方式、判断依据、项目边界和常见误区。
Git 合并冲突标记 <<<<<<< 各段含义是什么,标准的冲突解决与验证流程是怎样的 本文先给出可直接复述的结论,再用最小代码说明Git 合并冲突 解决流程 冲突标记的工作方式、判断依据、项目边界和常见误区。
删除本地分支和远程分支分别用什么命令,分支被删后提交对象会立刻消失吗 本文先给出可直接复述的结论,再用最小代码说明git 删除分支 远程分支 回收的工作方式、判断依据、项目边界和常见误区。
为什么改写历史后推送推荐 git push --force-with-lease 而不是 --force,它检测了什么条件 本文先给出可直接复述的结论,再用最小代码说明git push --force-with-lease 安全的工作方式、判断依据、项目边界和常见误区。
Git 的 blob、tree、commit 三种对象各记录什么内容,它们如何组成一次提交 本文先给出可直接复述的结论,再用最小代码说明Git 对象模型 blob tree commit的工作方式、判断依据、项目边界和常见误区。
.gitignore 中目录通配、取反规则和多级 ignore 文件的匹配优先级是怎样的 本文先给出可直接复述的结论,再用最小代码说明gitignore 语法 通配符 取反 优先级的工作方式、判断依据、项目边界和常见误区。
本文解释 HEAD 的本质,说明 detached HEAD 状态下提交为何会变成悬空提交,以及如何通过 reflog 查找哈希并创建分支来恢复提交。包括机制、具体场景和操作边界。
如何用 git log 的 -S、-G、--follow 等选项追踪某段代码何时被引入、移动或删除 本文先给出可直接复述的结论,再用最小代码说明git log -S -G 查找代码历史的工作方式、判断依据、项目边界和常见误区。
三方合并中的 merge base 是什么,找不到共同祖先时 Git 如何处理 本文先给出可直接复述的结论,再用最小代码说明git merge-base 三方合并 共同祖先的工作方式、判断依据、项目边界和常见误区。
Git 合并时什么条件下发生 fast-forward,与三方合并产生的 merge commit 有何本质区别 本文先给出可直接复述的结论,再用最小代码说明git merge fast-forward 三方合并的工作方式、判断依据、项目边界和常见误区。
Git 的 ort 与旧的 recursive 合并策略有什么区别,什么时候需要指定 -X 选项调整合并行为 本文先给出可直接复述的结论,再用最小代码说明git merge ort recursive 策略 -X的工作方式、判断依据、项目边界和常见误区。
合并冲突时 ours 和 theirs 分别指哪一方,rebase 中为什么会反过来 本文先给出可直接复述的结论,再用最小代码说明git 冲突 ours theirs rebase 方向的工作方式、判断依据、项目边界和常见误区。
Git 的 packfile 和 delta 压缩在什么时候触发,为什么松散对象多的仓库会变慢 本文先给出可直接复述的结论,再用最小代码说明Git packfile delta 压缩 gc的工作方式、判断依据、项目边界和常见误区。
git pull 默认行为是什么,配置 pull.rebase 或 --rebase 后拉取流程有何不同 本文先给出可直接复述的结论,再用最小代码说明git pull rebase 区别 fetch merge的工作方式、判断依据、项目边界和常见误区。
git push 提示 non-fast-forward 被拒绝时说明远程发生了什么,pull --rebase 与 force-with-lease 各适合什么情况 本文先给出可直接复述的结论,再用最小代码说明git push non-fast-forward 拒绝 解决的工作方式、判断依据、项目边界和常见误区。
git rebase -i 中 pick、squash、fixup、reword 各做什么,如何用它们整理提交历史 本文先给出可直接复述的结论,再用最小代码说明git rebase -i squash fixup 整理提交的工作方式、判断依据、项目边界和常见误区。
git rebase 实际做了什么,变基后原提交还在吗、哈希为什么全变了 本文先给出可直接复述的结论,再用最小代码说明git rebase 原理 提交哈希变化的工作方式、判断依据、项目边界和常见误区。
git rebase --onto 能解决什么问题,如何把基于错误分支开发的提交移植到正确基线 本文先给出可直接复述的结论,再用最小代码说明git rebase --onto 移植分支的工作方式、判断依据、项目边界和常见误区。
团队协作中什么时候用 rebase、什么时候用 merge,为什么公共分支禁止变基 本文先给出可直接复述的结论,再用最小代码说明git rebase merge 区别 选择的工作方式、判断依据、项目边界和常见误区。
origin/main 这种远程跟踪分支是什么,为什么本地不能直接在上面提交 本文先给出可直接复述的结论,再用最小代码说明Git 远程跟踪分支 origin/main的工作方式、判断依据、项目边界和常见误区。
git rerere 如何记录并复用冲突解决方案,长期特性分支反复合并时为什么有用 本文先给出可直接复述的结论,再用最小代码说明git rerere 复用冲突解决的工作方式、判断依据、项目边界和常见误区。
git reset 的 --soft、--mixed、--hard 三种模式分别移动了哪几棵树,各自适合什么撤销场景 本文先给出可直接复述的结论,再用最小代码说明git reset soft mixed hard 区别的工作方式、判断依据、项目边界和常见误区。
工作区和暂存区的未提交修改分别如何丢弃,git restore 的 --staged 与 --worktree 如何组合 本文先给出可直接复述的结论,再用最小代码说明git restore 丢弃修改 --staged的工作方式、判断依据、项目边界和常见误区。
git revert 一个 merge commit 为什么要加 -m 参数,之后想把该分支再合回来会遇到什么问题 本文先给出可直接复述的结论,再用最小代码说明git revert merge commit -m 主线的工作方式、判断依据、项目边界和常见误区。
Git 用快照而非差异存储版本,这对切换分支和查看历史有什么实际影响 本文先给出可直接复述的结论,再用最小代码说明Git 快照 差异 存储模型的工作方式、判断依据、项目边界和常见误区。
如何只暂存一个文件中的部分修改,git add -p 的交互选项各自做什么 本文先给出可直接复述的结论,再用最小代码说明git add -p 部分暂存 hunk的工作方式、判断依据、项目边界和常见误区。
git stash 保存的是什么,如何只暂存部分文件、应用后保留暂存区状态或恢复时被删除的 stash 本文先给出可直接复述的结论,再用最小代码说明git stash 用法 pop apply 找回的工作方式、判断依据、项目边界和常见误区。
Git 的工作区、暂存区和仓库三个状态分别存放什么,文件如何在三者之间流转 本文先给出可直接复述的结论,再用最小代码说明Git 工作区 暂存区 仓库 三棵树的工作方式、判断依据、项目边界和常见误区。
为什么特性分支应该保持短小,长期不合并的分支会带来哪些具体的合并与维护问题 本文先给出可直接复述的结论,再用最小代码说明Git 特性分支 生命周期 长期分支的工作方式、判断依据、项目边界和常见误区。
git push 时设置 -u / --set-upstream 建立了什么关系,之后 pull 和 status 行为有什么变化 本文先给出可直接复述的结论,再用最小代码说明git push -u upstream 跟踪分支的工作方式、判断依据、项目边界和常见误区。
为什么需要 Git 这样的分布式版本控制系统,它解决了本地备份和集中式 VCS 的哪些具体问题 本文先给出可直接复述的结论,再用最小代码说明Git 分布式版本控制 优势的工作方式、判断依据、项目边界和常见误区。
Git Flow 与 trunk-based development 的分支模型有何差异,团队选型时应考虑哪些发布与协作因素 本文先给出可直接复述的结论,再用最小代码说明Git Flow 主干开发 分支模型 选择的工作方式、判断依据、项目边界和常见误区。
git worktree 解决了什么痛点,同一仓库检出多个分支到不同目录时有哪些限制 本文先给出可直接复述的结论,再用最小代码说明git worktree 多工作区 并行开发的工作方式、判断依据、项目边界和常见误区。