{"meta":{"title":"查看并了解文件","intro":"浏览文件内容和跟踪随时间的更改，了解新的基本代码库及其演变。","product":"存储库","breadcrumbs":[{"href":"/zh/repositories","title":"存储库"},{"href":"/zh/repositories/working-with-files","title":"处理文件"},{"href":"/zh/repositories/working-with-files/using-files","title":"使用文件"},{"href":"/zh/repositories/working-with-files/using-files/viewing-and-understanding-files","title":"查看并了解文件"}],"documentType":"article"},"body":"# 查看并了解文件\n\n浏览文件内容和跟踪随时间的更改，了解新的基本代码库及其演变。\n\nGitHub 提供了查看原始内容、跟踪特定行的更改以及探索文件内容随时间演变的工具。 这些见解解释了代码的开发过程、当前目的和结构，帮助你更有效地做出贡献。\n\n## 查看或复制原始文件内容\n\n使用原始视图，可以查看或复制不带任何样式的文件原始内容。\n\n1. 在 GitHub 上，导航到存储库的主页面。\n\n2. 单击要查看的文件。\n\n3. 在文件视图的右上角，单击“原始”\\*\\*\\*\\*。\n\n   ![文件的屏幕截图。 在标题中，标有“原始”的按钮以深橙色框出。](/assets/images/help/repository/raw-file-button.png)\n\n4. （可选）若要复制原始文件内容，请在文件视图右上角单击 <svg version=\"1.1\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" class=\"octicon octicon-copy\" aria-label=\"Copy raw content\" role=\"img\"><path d=\"M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 0 1 0 1.5h-1.5a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-1.5a.75.75 0 0 1 1.5 0v1.5A1.75 1.75 0 0 1 9.25 16h-7.5A1.75 1.75 0 0 1 0 14.25Z\"></path><path d=\"M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0 1 14.25 11h-7.5A1.75 1.75 0 0 1 5 9.25Zm1.75-.25a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-7.5a.25.25 0 0 0-.25-.25Z\"></path></svg>。  若要下载原始文件，请单击“<svg version=\"1.1\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" class=\"octicon octicon-download\" aria-label=\"Download raw file\" role=\"img\"><path d=\"M2.75 14A1.75 1.75 0 0 1 1 12.25v-2.5a.75.75 0 0 1 1.5 0v2.5c0 .138.112.25.25.25h10.5a.25.25 0 0 0 .25-.25v-2.5a.75.75 0 0 1 1.5 0v2.5A1.75 1.75 0 0 1 13.25 14Z\"></path><path d=\"M7.25 7.689V2a.75.75 0 0 1 1.5 0v5.689l1.97-1.969a.749.749 0 1 1 1.06 1.06l-3.25 3.25a.749.749 0 0 1-1.06 0L4.22 6.78a.749.749 0 1 1 1.06-1.06l1.97 1.969Z\"></path></svg>”。\\*\\*\\*\\*\n\n## 查看文件的逐行修订历史记录\n\n在追溯视图中，可以查看整个文件的逐行修订历史记录。\n\n> \\[!TIP]\n> 在命令行上，还可以使用 `git blame` 查看文件内各行的修订历史记录。 有关详细信息，请参阅 [Git 的 `git blame` 文档](https://git-scm.com/docs/git-blame)。\n\n1. 在 GitHub 上，导航到存储库的主页面。\n\n2. 单击以打开您想要查看其行历史记录的文件。\n\n3. 在文件内容上方，单击“Blame”。 此视图提供逐行修订历史记录，文件中的代码按提交分隔。 每个提交都会列出作者、提交说明和提交日期。\n\n4. 若要在特定提交之前查看文件的版本，请单击 <svg version=\"1.1\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" class=\"octicon octicon-versions\" aria-label=\"View blame prior to this change\" role=\"img\"><path d=\"M7.75 14A1.75 1.75 0 0 1 6 12.25v-8.5C6 2.784 6.784 2 7.75 2h6.5c.966 0 1.75.784 1.75 1.75v8.5A1.75 1.75 0 0 1 14.25 14Zm-.25-1.75c0 .138.112.25.25.25h6.5a.25.25 0 0 0 .25-.25v-8.5a.25.25 0 0 0-.25-.25h-6.5a.25.25 0 0 0-.25.25ZM4.9 3.508a.75.75 0 0 1-.274 1.025.249.249 0 0 0-.126.217v6.5c0 .09.048.173.126.217a.75.75 0 0 1-.752 1.298A1.75 1.75 0 0 1 3 11.25v-6.5c0-.649.353-1.214.874-1.516a.75.75 0 0 1 1.025.274ZM1.625 5.533h.001a.249.249 0 0 0-.126.217v4.5c0 .09.048.173.126.217a.75.75 0 0 1-.752 1.298A1.748 1.748 0 0 1 0 10.25v-4.5a1.748 1.748 0 0 1 .873-1.516.75.75 0 1 1 .752 1.299Z\"></path></svg>。 或者，若要查看有关特定提交的更多详细信息，请单击提交消息。\n\n   ![追溯视图中提交的屏幕截图。 提交消息和版本图标以深橙色标出。](/assets/images/help/repository/code-view-blame-commit-options.png)\n\n5. 若要返回到原始代码视图，请在文件内容上方单击“代码”。\n   * 如果要查看 Markdown 文件，还可以在文件内容上方单击“预览”以返回到应用 Markdown 格式的视图。\n\n## 忽略追溯视图中的提交\n\n`.git-blame-ignore-revs` 文件中指定的所有修订（必须位于存储库的根目录中）利用 Git 的 `git blame --ignore-revs-file` 配置设置从追溯视图中隐藏。 有关详细信息，请参阅 Git 文档中的 [`git blame --ignore-revs-file`](https://git-scm.com/docs/git-blame#Documentation/git-blame.txt---ignore-revs-fileltfilegt)。\n\n1. 在存储库的根目录中，创建一个名为 `.git-blame-ignore-revs` 的文件。\n\n2. 在该文件中添加要从追溯视图中排除的提交哈希。 建议按如下所示构建文件（包括评论）：\n\n   ```shell\n   # .git-blame-ignore-revs\n   # Removed semi-colons from the entire codebase\n   a8940f7fbddf7fad9d7d50014d4e8d46baf30592\n   # Converted all JavaScript to TypeScript\n   69d029cec8337c616552756310748c4a507bd75a\n   ```\n\n3. 提交并推送更改。\n\n在追溯视图中，如果提交引入了新行或修改了现有行，则排除修订。\\*\\*\\*\\* 如果该提交是最后一次修改某行的提交，它仍将出现在追溯视图中\\*\\*\\*\\*。 你会看到“忽略 .git-blame-ignore-revs 中的修订”横幅，表明某些提交可能已隐藏：\n\n<!--Page used for the screenshots below: https://github.com/electron/electron/blame/main/lib/browser/ipc-main-internal.ts -->\n\n![文件的追溯视图的屏幕截图。 蓝色的“忽略修订”横幅包含一个指向“.git-blame-ignore-revs”的链接，该链接以橙色轮廓显示。](/assets/images/help/repository/blame-ignore-revs-file.png)\n\n当少量提交对代码进行大量更改时，这非常有用。 也可以在本地运行 `git blame` 时使用该文件：\n\n```shell\ngit blame --ignore-revs-file .git-blame-ignore-revs\n```\n\n还可以配置本地 git，使其始终忽略该文件中的修订：\n\n```shell\ngit config blame.ignoreRevsFile .git-blame-ignore-revs\n```\n\n## 绕过追溯视图中的 `.git-blame-ignore-revs`\n\n如果文件的指责视图显示“正在忽略 .git-blame-ignore-revs 中的修订”****，你仍然可以绕过 `.git-blame-ignore-revs` 并查看正常的指责视图。 在 URL 中，向 SHA 追加一个 `~`，“正在忽略 .git-blame-ignore-revs 中的修订”**** 横幅将消失。\n\n## 使用 Copilot 理解文件\n\n> \\[!NOTE] 你需要有权访问 GitHub Copilot。 有关详细信息，请参阅“[什么是GitHub Copilot？](/zh/copilot/get-started/what-is-github-copilot#get-access)”。\n\n你还可以使用 Copilot 询问文件中特定代码行，以帮助你理解代码的工作原理，并降低带来新问题的可能性。\n\n1. 在 GitHub 中，导航到一个存储库并打开一个文件。\n\n2. 执行下列操作之一：\n   * 若要询问有关整个文件的问题，请单击文件视图右上角的 Copilot 图标 (<svg version=\"1.1\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" class=\"octicon octicon-copilot\" aria-label=\"copilot\" role=\"img\"><path d=\"M7.998 15.035c-4.562 0-7.873-2.914-7.998-3.749V9.338c.085-.628.677-1.686 1.588-2.065.013-.07.024-.143.036-.218.029-.183.06-.384.126-.612-.201-.508-.254-1.084-.254-1.656 0-.87.128-1.769.693-2.484.579-.733 1.494-1.124 2.724-1.261 1.206-.134 2.262.034 2.944.765.05.053.096.108.139.165.044-.057.094-.112.143-.165.682-.731 1.738-.899 2.944-.765 1.23.137 2.145.528 2.724 1.261.566.715.693 1.614.693 2.484 0 .572-.053 1.148-.254 1.656.066.228.098.429.126.612.012.076.024.148.037.218.924.385 1.522 1.471 1.591 2.095v1.872c0 .766-3.351 3.795-8.002 3.795Zm0-1.485c2.28 0 4.584-1.11 5.002-1.433V7.862l-.023-.116c-.49.21-1.075.291-1.727.291-1.146 0-2.059-.327-2.71-.991A3.222 3.222 0 0 1 8 6.303a3.24 3.24 0 0 1-.544.743c-.65.664-1.563.991-2.71.991-.652 0-1.236-.081-1.727-.291l-.023.116v4.255c.419.323 2.722 1.433 5.002 1.433ZM6.762 2.83c-.193-.206-.637-.413-1.682-.297-1.019.113-1.479.404-1.713.7-.247.312-.369.789-.369 1.554 0 .793.129 1.171.308 1.371.162.181.519.379 1.442.379.853 0 1.339-.235 1.638-.54.315-.322.527-.827.617-1.553.117-.935-.037-1.395-.241-1.614Zm4.155-.297c-1.044-.116-1.488.091-1.681.297-.204.219-.359.679-.242 1.614.091.726.303 1.231.618 1.553.299.305.784.54 1.638.54.922 0 1.28-.198 1.442-.379.179-.2.308-.578.308-1.371 0-.765-.123-1.242-.37-1.554-.233-.296-.693-.587-1.713-.7Z\"></path><path d=\"M6.25 9.037a.75.75 0 0 1 .75.75v1.501a.75.75 0 0 1-1.5 0V9.787a.75.75 0 0 1 .75-.75Zm4.25.75v1.501a.75.75 0 0 1-1.5 0V9.787a.75.75 0 0 1 1.5 0Z\"></path></svg>)\\*\\*\\*\\*。\n\n     ![Copilot 按钮的屏幕截图，在文件视图顶部以深橙色边框突出显示。](/assets/images/help/copilot/copilot-button-for-file.png)\n\n   * 询问有关文件中特定行的问题\\*\\*\\*\\*：\n\n     1. 单击要询问的第一行的行号，按住 <kbd>Shift</kbd> 并单击要选择的最后一行的行号。\n     2. 若要询问有关所选行的问题，请单击所选内容右侧的 Copilot 图标 (<svg version=\"1.1\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" class=\"octicon octicon-copilot\" aria-label=\"copilot\" role=\"img\"><path d=\"M7.998 15.035c-4.562 0-7.873-2.914-7.998-3.749V9.338c.085-.628.677-1.686 1.588-2.065.013-.07.024-.143.036-.218.029-.183.06-.384.126-.612-.201-.508-.254-1.084-.254-1.656 0-.87.128-1.769.693-2.484.579-.733 1.494-1.124 2.724-1.261 1.206-.134 2.262.034 2.944.765.05.053.096.108.139.165.044-.057.094-.112.143-.165.682-.731 1.738-.899 2.944-.765 1.23.137 2.145.528 2.724 1.261.566.715.693 1.614.693 2.484 0 .572-.053 1.148-.254 1.656.066.228.098.429.126.612.012.076.024.148.037.218.924.385 1.522 1.471 1.591 2.095v1.872c0 .766-3.351 3.795-8.002 3.795Zm0-1.485c2.28 0 4.584-1.11 5.002-1.433V7.862l-.023-.116c-.49.21-1.075.291-1.727.291-1.146 0-2.059-.327-2.71-.991A3.222 3.222 0 0 1 8 6.303a3.24 3.24 0 0 1-.544.743c-.65.664-1.563.991-2.71.991-.652 0-1.236-.081-1.727-.291l-.023.116v4.255c.419.323 2.722 1.433 5.002 1.433ZM6.762 2.83c-.193-.206-.637-.413-1.682-.297-1.019.113-1.479.404-1.713.7-.247.312-.369.789-.369 1.554 0 .793.129 1.171.308 1.371.162.181.519.379 1.442.379.853 0 1.339-.235 1.638-.54.315-.322.527-.827.617-1.553.117-.935-.037-1.395-.241-1.614Zm4.155-.297c-1.044-.116-1.488.091-1.681.297-.204.219-.359.679-.242 1.614.091.726.303 1.231.618 1.553.299.305.784.54 1.638.54.922 0 1.28-.198 1.442-.379.179-.2.308-.578.308-1.371 0-.765-.123-1.242-.37-1.554-.233-.296-.693-.587-1.713-.7Z\"></path><path d=\"M6.25 9.037a.75.75 0 0 1 .75.75v1.501a.75.75 0 0 1-1.5 0V9.787a.75.75 0 0 1 .75-.75Zm4.25.75v1.501a.75.75 0 0 1-1.5 0V9.787a.75.75 0 0 1 1.5 0Z\"></path></svg>)，然后在 GitHub Copilot Chat 面板中键入你的问题。\n     3. 要提出预定义的问题，请单击 Copilot 图标旁的下拉菜单，然后选择其中一个选项。\n\n     ![屏幕截图显示了用深橙色轮廓突出显示的 Copilot 按钮，位于一些选定代码的右侧。](/assets/images/help/copilot/copilot-buttons-inline-code.png)\n\n3. 如果单击 Copilot 图标，请在聊天面板底部的“向 Copilot 询问问题”框中键入问题，然后按 <kbd>Enter</kbd>。\n\n   例如，如果要询问整个文件，可以输入：\n\n   * `Explain this file.`\n   * `How could I improve this code?`\n   * `How can I test this script?`\n\n   如果要询问特定行，则可以输入：\n\n   * `Explain the function at the selected lines.`\n   * `How could I improve this class?`\n   * `Add error handling to this code.`\n   * `Write a unit test for this method.`\n\n   Copilot 将响应面板中的请求。\n\n4. 或者，提交问题后，可以在文本框中单击 <svg version=\"1.1\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" class=\"octicon octicon-square-fill\" aria-label=\"Stop\" role=\"img\"><path d=\"M5.75 4h4.5c.966 0 1.75.784 1.75 1.75v4.5A1.75 1.75 0 0 1 10.25 12h-4.5A1.75 1.75 0 0 1 4 10.25v-4.5C4 4.784 4.784 4 5.75 4Z\"></path></svg> 以停止响应。\n\n5. 可以通过提出后续问题来继续对话。 例如，可以键入“告诉我更多”以便让 Copilot 对其最后一条评论进行扩展。"}