Assignment Help logo
在线聊天

Loading...

Score %0 (0 correct0 incorrect19 unanswered)

问题1. 你如何检查当前的 git 版本?

  • git --v
  • git --version
  • git --option
  • git --current

参考

问题2. 哪个命令允许你在本地和远程存储库之间创建连接?

  • git remote add new
  • git remote add origin
  • git remote new origin
  • git remote origin

参考

问题3. 描述以下 Git 命令对提交历史的影响:

git reset --hard HEAD~5
git merge --squash HEAD@{1}
  • 它们将 HEAD 重置到仓库的第五次提交,然后合并到主分支。
  • 当前分支的 HEAD 被重置回五个提交之前,然后先前的提交被压缩为一个提交。
  • 它们会删除最后五个提交。
  • 它们将最后五个提交合并到一个新分支。

解释:

  • git reset --hard HEAD~5 将当前分支重置为倒数第 5 次提交之前(请参阅 man gitrevisions 以了解关于此表示法的详细信息以及其他很酷的替代方案,如 HEAD@{2 days ago})。由于这是硬重置,它还会覆盖工作树中的每个更改。请参阅 man git-reset
  • git merge --squash HEAD@{1} HEAD@{1} 是刚才上一个命令之前分支的位置(同样,请参阅 man gitrevisions)。此命令将索引的状态设置为将要从该提交合并的状态。这整个操作可能是一种方式,用于将一个分支中的 5 次提交(在该分支中开始了一个新功能)压缩为一个有意义的提交。

参考

问题4. 您当前的项目有几个分支;主分支、测试版和推送通知。您刚刚在推送通知分支完成了通知功能,您希望将其提交到测试版分支。您将如何完成?

  • 切换到推送通知分支,然后运行 git merge 测试版
  • 切换到主分支,然后运行 git merge 测试版 -> 推送通知
  • 删除推送通知分支,它将自动提交到主分支
  • 切换到测试版分支,然后运行 git merge 推送通知

参考

问题5. 当您使用以下命令时,以下哪种描述是正确的?

git add -A

  • 所有新文件和更新的文件都已暂存
  • 文件按字母顺序暂存。
  • 所有新文件都已暂存
  • 只有更新的文件已暂存

参考 参考

问题6. 以下命令将在终端上打印什么?

git remote -v

  • 远程存储库及其 URL 的列表
  • 您正在运行的当前 git 版本
  • 用于修改远程存储库的内联编辑器
  • 您已安装的最后 5 个 git 版本

参考 参考

问题7. 查看以下命令,描述正在发生的情况。

git checkout feature-user-location
git cherry-pick kj2342134sdf090093f0sdgasdf99sdfo992mmmf9921231
  • 提交被标记为特征-用户位置分支的发布
  • 从原始分支复制了一个提交到特征-用户位置分支
  • 提交被挑选为提交历史的新 HEAD
  • 从特征-用户位置分支复制了一个提交到主分支
  • 分支切换到特征-用户位置分支,并将指定的提交应用于该分支。

解释:

'git checkout feature-user-location' 切换到 'feature-user-location' 分支。 'git cherry-pick kj2342134sdf090093f0sdgasdf99sdfo992mmmf9921231' 将指定提交('kj2342134sdf090093f0sdgasdf99sdfo992mmmf9921231')的更改应用于当前分支(feature-user-location)。这实际上将提交从其原始分支复制到了特征-用户位置分支。 因此,这一系列命令是将特定提交挑选到特征-用户位置分支上。

问题8. 以下命令对 git 仓库做了什么?

git reset --soft HEAD^

  • 它删除了所有以前的提交,并将仓库历史重置为初始状态。
  • 它将工作分支重置为第一个提交。
  • 它保留了 HEAD 在当前提交,但清除了所有以前的提交。
  • 它将 HEAD 设置为上一个提交,并将取消提交的更改保留在暂存区/索引中。

参考 参考

问题9. 您在项目中发现了一个错误,但无法确定它是在提交历史中的哪个地方引入的。您将如何诊断此问题?

  • 手动回溯您的提交历史。
  • 使用 git search -diff 比较存储库历史中的所有提交。
  • 运行 git rebase 查找错误提交。
  • 使用 git bisect 将错误提交与早期正常工作的提交进行比较。

参考 参考

问题10. 为什么会使用以下命令?

git rebase -i HEAD~10

  • 运行对比搜索最近的 10 个提交以查找差异
  • 列出最近的 10 个提交,并使用 squash 或 fixup 命令修改它们
  • 删除最近的 10 个提交,并重置 HEAD
  • 为了在本地缓存最近的 10 个提交

参考 参考

问题11. 为什么要在远程存储库中使用 pre-receive hook?

  • 不需要,在本地存储库中使用它
  • 在远程接收到触发前更新的推送时执行脚本
  • 在更新后立即触发脚本更新到远程存储库
  • 调试所有提交标签和发布版本

参考 参考

问题12. 您可以使用哪个选项在整个 git 环境中应用 git 配置?

  • --all
  • --master
  • --global
  • --update

参考 参考

问题13. 您如何在不使用 git merge --squash 的情况下将多个提交合并到一起?

  • 缓存
  • 无法。git merge --squash 是执行该操作的唯一 git 命令。
  • 变基
  • Reflogging

参考 参考

问题14. 如果您克隆了现有的 git 存储库,会发生什么?

  • 新副本将覆盖中央存储库
  • 在您的本地计算机上创建存储库的副本
  • 什么也不会发生,克隆不是受支持的 git 功能
  • 在托管平台上创建存储库的副本

参考 参考

问题15. 您如何显示特定提交中添加或修改的文件列表?

  • 在远程存储库中查找提交,因为这是存储此类信息的唯一位置。
  • 使用 diff-tree 命令与提交哈希值。
  • 使用提交哈希值运行 git commit --info
  • 使用 git stash 访问提交的隐藏数据。

参考 参考

问题16. 此 .gitignore 文件编程要忽略哪些文件?

#.swift
build/

*.txt
*.metadata
  • 所有带有 .swift、.txt 或元数据文件扩展名的文件,以及整个构建目录
  • 仅构建目录
  • 构建目录中的所有文件,以及以 .txt 或 .metadata 结尾的文件
  • 仅带有 .swift 和 .txt 扩展名的文件。

参考

# 开头的行作为注释。因此 # .swift 不会产生任何影响。请参阅 man gitignore

问题17. 您在检查 git 状态后得到以下输出,显示 beta-notes.js 文件在提交中但也未暂存。这种情况可能如何发生?

  • beta-notes.js 有两个副本,但其中一个被删除了
  • beta-notes.js 被暂存,然后后来修改,创建了两个不同版本的文件
  • beta-notes.js 有两个副本,但只有一个被跟踪
  • beta-notes.js 有两个被跟踪的副本,但一个从提交中删除了

参考

问题18. 在提交到本地存储库之前,文件存储在哪里?

Change to be committed:

(use "git reset HEAD <file>..." to unstage)
modified: beta-notes.js
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git checkout --<file>..." to discard changes in working directory)

modified: beta-notes.js
  • 已保存的文件
  • git 文档
  • 暂存区
  • git 缓存

参考

问题19. 您将使用哪些命令强制使用主分支覆盖本地文件?

  git pull --all
  git reset --hard origin/master
  git pull -u origin master
  git reset --hard master
  git pull origin master
  git reset --hard origin/myCurrentBranch
  git fetch --all
  git reset --hard origin/master

注意:- pull 命令是 fetch 后跟 mergerebase(在这种情况下是 merge)。我们不想合并。合并将是对我们的 存储库 的操作。我们只想覆盖我们的 本地文件