首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

​2019 DevOps 必备面试题——代码版本控制篇

这可能是你在面试中遇到的最简单的问题。我的建议是首先给出版本控制的定义:它是一个记录文件变化的系统,以便你以后可以调用特定版本的文件。...以下是一些基本的 Git 命令: [2.png] Q7:在 Git 中,如何还原已经被推送并公开的提交?...此问题可以有两个答案,根据具体情况可以使用以下任意选项: 在新提交中删除或修复错误文件,并将其推送到远程存储库。这是修复错误最自然的方式。...对文件进行必要的更改后,将其提交到远程存储库,我将使用: git commit -m“commit message” 创建一个新的提交,撤消在错误提交中所做的所有更改,使用命令: git revert...当检查未通过时,通过以非零状态退出,脚本能有效地阻止该提交应用于存储库。 Q12:如何找到特定提交中已更改的文件列表? 对于这个问题,不应该仅仅只解释这个命令是什么,而应该解释这个命令究竟会做什么。

2.1K50

长文 | 我如何使用 git

我会将这个两行的更改单独放在一个PR中,即使我是在UI更改中发现需要做这个更改的。为什么?因为如果两天后有人说“我们的设置解析器有问题”,我想能够直接指向UI更改或解析更改,并撤销其中一个。...我不会简单地写“修复了解析错误”,而是会详细说明“修复了解析错误,因为在3bac3ed的变更中引入了一个新关键字”。...除非我已经知道如何修复CI,并且我们可以并行操作——审查者开始审查的同时,我去修复CI。 当我审查别人的代码时,我总是尽量检出代码,运行它,并测试它是否真的像PR信息中所说的那样工作。...有时我甚至会把我想要的更改分成同一分支上的两个提交,然后切换分支,使用git cherry-pick将其中一个提交挑拣过去,回到旧分支,执行git rebase -i并删除已经移动过去的提交。...我如何选择一种策略而不是另一种?这取决于我想要在另一个分支上做的更改的规模,以及我工作目录中未提交的内容有多少。 我对分支名称不太挑剔,只要它们有点意义就行。

8510
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    【10】进大厂必须掌握的面试题-版本控制面试

    这可能是您在面试中最容易遇到的问题。我的建议是首先给出版本控制的定义。它是一个记录一段时间内对一个文件或一组文件的更改的系统,以便您以后可以调用特定版本。...在Git中,如何还原已经被推送并公开的提交? 这个问题可能有两个答案,因此请确保同时包括这两个原因,因为根据情况,可以使用以下任一选项: 在新的提交中删除或修复错误的文件,然后将其推送到远程存储库。...对文件进行必要的更改后,将其提交到远程存储库,因为我将使用 git commit -m“ commit message” 创建一个新的提交来撤消在错误的提交中所做的所有更改。...为此,我将使用命令 git revert 错误的提交的名称> Q8。您如何将最后N次提交压缩为一次提交? 有两种方法可以将最后的N个提交压缩为一个提交。...在此脚本中,可以运行其他工具,例如linters,并对提交到存储库中的更改执行完整性检查。 Q12。您如何找到在特定提交中已更改的文件的列表?

    2.6K30

    手把手教你将一个旧的大型项目迁移到 Py

    它会在合适的地方修改代码。我经常做完这步后没有进行第一次提交就开始修复代码。这个错误步骤总是让我后悔,不止一次地迫使我重新开始做整件事情。即使这个阶段出错,最好还是先把它提交。...这个分支允许我在超级中断状态下可以非常快速地启动应用程序,至少可以运行一些单元测试。 这个分支有很大的不同,但我还是找到了把它应用在适当场景的方法。我使用优秀的 GitUp 来拆分、组合和提交。...当一个提交看起来不错的时候,我会把它挑选到一个新的分支,然后发给代码审查。...我们必须跳过需要 Cassandra 的测试,同时修复这个依赖项。 我发明了一个有趣的小 hack 来使它发挥作用, 并写了这方面的文章....代码更改 关于代码更改的说明,在如何将 py2 迁移到 six 的文档中并未提及 (也许是我们错过了): StringIO 我们在代码中大量使用 StringIO 。第一反应就是使用 six。

    70910

    【10】进大厂必须掌握的面试题-版本控制面试

    这可能是您在面试中最容易遇到的问题。我的建议是首先给出版本控制的定义。它是一个记录一段时间内对一个文件或一组文件的更改的系统,以便您以后可以调用特定版本。...以下是一些基本的Git命令: Q7。在Git中,如何还原已经被推送并公开的提交?...对文件进行必要的更改后,将其提交到远程存储库,因为我将使用 git commit -m“ commit message” 创建一个新的提交来撤消在错误的提交中所做的所有更改。...为此,我将使用命令 git revert 错误的提交的名称> Q8。您如何将最后N次提交压缩为一次提交? 有两种方法可以将最后的N个提交压缩为一个提交。...在此脚本中,可以运行其他工具,例如linters,并对提交到存储库中的更改执行完整性检查。 Q12。您如何找到在特定提交中已更改的文件的列表?

    2.6K20

    最常见的 Git 错误都有哪些,如何解决它们?

    在本文中,我将讨论程序员在使用Git时所犯的一些常见错误以及如何解决它们。...拼写错误的最后提交消息 经过几个小时的编码后,您的提交消息可能存在很多拼写错误,好在有一个简单的解决方案: git commit --amend 该命令将打开您的编辑器,并允许您更改最后一次提交消息。...我们需要从远程删除旧分支并推送新分支: git push origin --delete feature-brunch git push origin feature-branch 不小心将所有更改提交到主分支...忘了将文件添加到最后一次提交 另一个常见的 Git 陷阱是过早提交。你可能错过了一个文件,忘了保存它,或者需要对最后一次提交做一个小改动。这时候 --amend 再次成为你的朋友。...将错误的文件添加到仓库 但是如果你做的恰恰相反呢?如果您添加了一个不想提交的文件,该怎么办?一个流氓ENV文件,一个构建目录,一个你不小心保存到错误文件夹的狗的图片?这一切都是可以解决的。

    1.1K20

    揭秘Git高手的10个秘密武器:让你的工作效率飙升!

    当你使用HEAD^时,它引用的是你当前提交之前的提交。如果你在^后面追加一个数字,比如HEAD^2,它指的是当前提交之前的第二个提交。...要暂存更改,你使用git add命令,这类似于声明“我希望这些更改成为我的下一个提交的一部分”。 现在,让我们逐一探索这10个Git命令。...需要记住的一点是,如果你已经将提交推送到远程仓库,你需要使用 git push --force 来强制推送更改以更新远程分支。...当你尝试使用git checkout B切换到分支B时,Git阻止了这个操作,并显示了一个错误: 我们可以按照错误消息的建议提交更改。但提交更像是一个固定的时间点,并不是一个正在进行中的工作。...这时可以应用错误消息的第二个建议并使用暂存功能的地方。

    19710

    Git 入门精讲

    它广泛应用于软件开发、版本管理、代码托管等领域,它是目前最流行的版本控制系统之一。 Git是一个开源的版本控制系统,它是由Linux的创始人Linus Torvalds在2005年创建的。...Git的主要目标是处理大型项目的高效管理。 本章主要教大家如何注册并使用git,我选择用命令行拆解步骤,这是为了方便大家理解底层交互。...” 打开下面的文件目录,右键单击id_rsa.pub选择记事本打开,复制全文 添加公钥的目的是让git认识这台计算机,在提交信息时区分贡献者, 多台计算机也可以共用同一套公钥 创建完成以后复制仓库地址...将工作区的修改提交到暂存盘 git commit -m “简述” 将暂存盘里的更改提交到本地仓库 此时你git push 是推送不了的,会报如下信息: 它说:你还未跟踪远程地址,请执行以下命令设置默认跟踪地址...因为remote 可以配置多个远程仓库,即一个项目指向多个仓库 它不知道你要将更改推送到哪一个仓库,需要你告诉他 git push -u origin master push 推送 -u 设为默认仓库

    5400

    通过 41 个 问答方式快速了解学习 Git

    它遍历了每个更改,并要求确认是否要执行它们。 这个命令迫使咱们放慢速度并检查更改文件。作为开发人员,咱们有时常常急于提交,我自己也经常这样,做完运行 git add ....5.什么时候使用 git stash 发现有一个类是多余的,想删掉它又担心以后需要查看它的代码,想保存它但又不想增加一个脏的提交。这时就可以考虑 git stash。...根据你的工作流,可以将旧的分支合并到主分支中。 如果你需要一个最新的分支,我更喜欢 rebase。它只提供更改且更清晰的历史记录,而不是来自其他分支或合并的提交。...当然,某些可视化操作(如管理分支和查看文件差异)在GUI中总是更好。我个人认为在合并过程中在浏览器中查看这些内容就足够了。 23. 当提交已经被推送时,可以做一个 --amend 修改吗?...假设 master 分支是咱们的主分支,咱们不希望有选择地从它的历史记录中提取提交,这会以后引起冲突。 咱们想要 merge 或 rebase 分支的所有更改。

    1.4K20

    通过 41 个 问答方式快速了解学习 Git

    这增加了“补丁模式”的变化,这是一个内置的命令行程序。它遍历了每个更改,并要求确认是否要执行它们。 这个命令迫使咱们放慢速度并检查更改文件。...5.什么时候使用 git stash 发现有一个类是多余的,想删掉它又担心以后需要查看它的代码,想保存它但又不想增加一个脏的提交。这时就可以考虑 git stash。...根据你的工作流,可以将旧的分支合并到主分支中。 如果你需要一个最新的分支,我更喜欢 rebase。它只提供更改且更清晰的历史记录,而不是来自其他分支或合并的提交。...当然,某些可视化操作(如管理分支和查看文件差异)在GUI中总是更好。我个人认为在合并过程中在浏览器中查看这些内容就足够了。 23. 当提交已经被推送时,可以做一个 --amend 修改吗?...假设 master 分支是咱们的主分支,咱们不希望有选择地从它的历史记录中提取提交,这会以后引起冲突。 咱们想要 merge 或 rebase 分支的所有更改。

    1.6K50

    面向DataOps:为Apache Airflow DAG 构建 CICD管道

    您第一次知道您的 DAG 包含错误可能是在它同步到 MWAA 并引发导入错误时。到那时,DAG 已经被复制到 S3,同步到 MWAA,并可能推送到 GitHub,然后其他开发人员可以拉取。...尽管在此工作流程中,代码仍被“直接推送到 Trunk ”(GitHub 中的_主_分支)并冒着协作环境中的其他开发人员提取潜在错误代码的风险,但 DAG 错误进入 MWAA 的可能性要小得多。...测试类型 第一个 GitHub Actiontest_dags.yml是在推送到存储库分支中的dags目录时触发的。每当对分支main发出拉取请求时,也会触发它。...然后,我们提交并将这些更改推送回分叉的存储库。准备好后,我们创建一个拉取请求。如果拉取请求被批准并通过所有测试,它会被手动或自动合并到主分支中。然后将 DAG 同步到 S3,并最终同步到 MWAA。...使用 Git Hooks,我们可以确保在提交和推送更改到 GitHub 之前对代码进行本地测试。本地测试使我们能够更快地失败,在开发过程中发现错误,而不是在将代码推送到 GitHub 之后。

    3.2K30

    HEXO系列教程 | 使用GitHub Actions部署Hexo GitHub Pages | 全流程详细介绍

    提交更改,提交所有添加的文件,生成一个提交记录: git commit -m "这是第一次提交Hexo" 复制 GitHub 仓库的 URL: 在浏览器中打开你的 GitHub 仓库,点击 Code 按钮...等待它设置完成以后,我们选择Create your own(自己创建一个workflow文件)。在配置这个文件之前,我们先查看一下我们自己电脑上的Node.js版本。...提交你所做的更改(方便看,相当于就是备注): git commit -m "夜梦又更新hexo了" 推送: git push origin gh-pages 5.2 第三次以及以后的push 添加所有更改的文件...解决方法: 在 gh-pages 分支上提交一些更改: git checkout gh-pages touch index.html # 创建一个简单的文件 git add index.html...、推送分支的名称错误 你可能错误地指定了分支名称,例如拼写错误或分支不存在。

    34010

    适合初学者提升的Git技能

    git branch -m 如果您已使用旧名称推送分支,则需要执行几个额外步骤。您需要从远程删除旧分支并推送新分支。...git stash drop 你在错误的分支中更改了一些文件。然后,您可以存储更改并结帐到所需的分支并在git stash pop那里运行。您将在所需的分支中获得更改。...如果您已经将代码推送到远程存储库中,然后您意识到必须amend提交消息,那么在修改之后,您必须进行强制推送。假设您的远程名称,origin您可以运行以下命令。...然后,您可以使用cherry-pick命令在当前分支中获取该提交。如果您在错误的分支中提交并希望在另一个分支中提交,这也很有帮助。 首先,您必须切换到具有提交的分支。...git cherry-pick 我几乎每天都在学习和使用git,并且不认为自己是一个先进的git用户。所以,如果我犯了任何错误,请随时纠正我,并在评论部分提出您的建议。

    80220

    译丨如何为开源软件做出贡献

    碰巧,我在Twitter上发现了一个帖子,激起了我的兴趣: ? 我决定采纳他们的建议,并查阅.NET文档项目。毕竟,写技术问题对我来说只是一件小事。...也就是说,如果您所做的不是修复一个输入错误或让示例代码正确编译,那么您确实应该在他们的存储库中为您将要进行的工作创建一个 issue。...---- 做出修改并测试 一旦你有了正确的答案,你需要做必要的修正或增强,测试它,然后提交修改后的文件。...现在您已经设定了目标,接下来按照团队的约定为您的请求命名。在我的示例中,我将提交的描述性标题和问题编号放在括号中。...这是 GitHub 解析的一个神奇字符串,它将我的提交与文档库中的正确问题(#10675)关联起来(回想一下,我对 示例库 做了更改)。

    71440

    开发者应该知道的 50 条最实用的 Git 命令

    这样,团队的不同成员就可以在本地复制它,每个人都可以清楚地了解整个团队所做的所有更改。 Git有许多不同的命令可以使用。我发现这50种方法是我最常使用的(因此也是最有助于记忆的)。...git mv oldfile newfile 如何忽略Git中的文件: 创建一个.gitignore文件并提交它 如何在Git中恢复未暂存的更改: git checkout filename 如何恢复Git...我们可以像这样使用head别名来恢复最新的提交: git revert HEAD 如何在Git中回滚旧的提交: 您可以使用它的提交id恢复旧的提交。这将打开编辑器,以便您可以添加一个提交消息。...它将显示所有分支的列表,并用星号标记当前分支,并用绿色高亮显示。 git branch 如何在Git中创建分支并立即切换到它: 在单个命令中,您可以立即创建并切换到一个新的分支。...git remote show origin 如何在Git中推送更改到远程repo: 当你的所有工作都准备好保存到远程存储库时,你可以使用下面的命令推送所有更改: git push 如何从Git的远程repo

    1.8K10

    译 | 如何为开源代码库作出贡献——进阶途径

    碰巧,我在Twitter上发现了一个帖子,激起了我的兴趣: ? image-11 我决定采纳他们的建议,并查阅.NET文档项目。毕竟,写技术问题对我来说只是一件小事。...也就是说,如果您所做的不是修复一个输入错误或让示例代码正确编译,那么您确实应该在他们的存储库中为您将要进行的工作创建一个 issue。...做出修改并测试 一旦你有了正确的答案,你需要做必要的修正或增强,测试它,然后提交修改后的文件。...创建你的 Pull Request 现在,你已经推送了你的更改,你可以回到你的 forked 仓库 ,并通过点击适当的提示来创建 pull request。 ?...这是 GitHub 解析的一个神奇字符串,它将我的提交与文档库中的正确问题(#10675)关联起来(回想一下,我对 示例库 做了更改)。

    58030

    使用git命令与vscode从零开始对远程代码仓库进行拉取、提交、合并、推送分支等操作在项目中的实践

    然后我们有一个现成的代码仓库,比如这个https://github.com/front-end-study-GoGoGo/vue-study-project 这个是我在github上自己建的一个仓库。...从上图可以看到我们可以正常在vscode里面使用git原生命令,如果你的电脑不行,可自行百度如何安装git并在vscode里面使用(如果已经安装了可能需要弄个环境变量),我的是mac,所以就没有做那么多操作了...(这种比较适合3-5人的项目代码管理)目前我所用的还是这种多一些。 还有一种就是项目仓库上面只有一个分支,那就是master,直接在master分支上面开发,在master分支上进行拉取推送代码。...,推送到远程分支 git checkout branchName // 切换本地分支 复制 2.3 代码撤销与回退# 日常开发中,我们难免会出现代码提交错误的情况,所以撤销与回退的掌握是很有必要的,...复制 撤销工作区的更改 撤销暂存区的更改 2.3.2 代码回退 代码回退包含两种情况,对应reset和revert指令; reset是回退代码到某一版本,某一版本以后的代码都不保存,然后回退之后再次提交其后面的版本会被覆盖掉

    4.7K20

    使用git命令与vscode从零开始对远程代码仓库进行拉取、提交、合并、推送分支等操作及在项目中的实践

    然后我们有一个现成的代码仓库,比如这个https://github.com/front-end-study-GoGoGo/vue-study-project 这个是我在github上自己建的一个仓库。...从上图可以看到我们可以正常在vscode里面使用git原生命令,如果你的电脑不行,可自行百度如何安装git并在vscode里面使用(如果已经安装了可能需要弄个环境变量),我的是mac,所以就没有做那么多操作了...(这种比较适合3-5人的项目代码管理)目前我所用的还是这种多一些。 还有一种就是项目仓库上面只有一个分支,那就是master,直接在master分支上面开发,在master分支上进行拉取推送代码。...,推送到远程分支 git checkout branchName // 切换本地分支 2.3 代码撤销与回退 日常开发中,我们难免会出现代码提交错误的情况,所以撤销与回退的掌握是很有必要的,平时不常用...撤销工作区的更改 撤销暂存区的更改 2.3.2 代码回退 代码回退包含两种情况,对应reset和revert指令; reset是回退代码到某一版本,某一版本以后的代码都不保存,然后回退之后再次提交其后面的版本会被覆盖掉

    9.7K70

    Git 中文参考(三)

    输出中的所有file1文件在提交之前引用文件,并且所有file2文件在提交之后引用文件。将每个更改顺序应用于每个文件是不正确的。...服务器在客户端上执行它的最可能方式是“将“X”合并到一个公共分支中,并希望用户在此分支上执行其他工作,并将其推送回服务器,而不会注意到合并。)...例如,上游在超级项目的刚刚提取的提交中添加了一个新的子模块,子模块本身无法获取,因此无法在以后检查该子模块而无需再次进行提取。预计将在未来的 Git 版本中修复。...服务器在客户端上执行它的最可能方式是“将“X”合并到一个公共分支中,并希望用户在此分支上执行其他工作,并将其推送回服务器,而不会注意到合并。)...服务器在客户端上执行它的最可能方式是“将“X”合并到一个公共分支中,并希望用户在此分支上执行其他工作,并将其推送回服务器,而不会注意到合并。)

    19910

    git常用操作都在这里了(二)

    当保存并退出编辑器时,Git 带你到列表中第一个提交的父提交, 应用第一个提交(f7f3f6d),应用第二个提交(310154e), 然后让你进入命令行。...修改最后一次提交 切记已经推送到远程版本不可再使用。 如果你已经完成提交,又因为之前提交时忘记添加一个新创建的文件,想通过添加或修改文件来更改提交的快照, 也可以通过类似的操作来完成。...使用这个技巧的时候需要小心,因为修正会改变提交的 SHA-1 校验和。 它类似于一个小的衍合 - 如果已经推送了最后一次提交就不要修正它。...简而言之,cherry-pick就是从不同的分支中捡出一个单独的commit, 并把它和你当前的分支合并。如果你以并行方式在处理两个或以上分支, 你可能会发现一个在全部分支中都有的bug。...如果你在一个分支中解决了它, 你可以使用cherry-pick命令把它commit到其它分支上去,而不会弄乱其他的文件或commit。 让我们来设想一个用得着它的场景。

    952100
    领券