Score %0 (0 correct 0 incorrect 19 unanswered )Reset
问题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
参考
问题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
后跟 merge
或 rebase
(在这种情况下是 merge
)。我们不想合并。合并将是对我们的 存储库 的操作。我们只想覆盖我们的 本地文件 。
Submit