跳至主要内容

将文件移动到新位置

你可以在 GitHub 上将文件移动到不同的目录,或使用命令行来移动。

平台导航

除了更改文件位置,你还可以更新文件内容,或在同一提交中为其指定新名称

在 GitHub 上将文件移动到新位置

提示:

  • 如果你尝试移动你无权访问的存储库中的文件,我们将把项目 fork 到你的个人帐户,并在你提交更改后帮助你向原始存储库发送请求合并
  • 某些文件(例如图像)要求你从命令行移动它们。有关更多信息,请参阅“将文件移动到新位置”。
  • 如果某个代码库有任何受保护的分支,则无法使用 GitHub 编辑或上传受保护分支中的文件。你可以使用 GitHub Desktop 将你的更改移动到新分支并提交它们。有关更多信息,请参阅“关于受保护分支”和“在 GitHub Desktop 中提交和审阅项目更改”。
  1. 在你的代码库中,浏览到要移动的文件。

  2. 在文件视图的右上角,单击 以打开文件编辑器。

    Screenshot of a file. In the header, a button, labeled with a pencil icon, is outlined in dark orange.

    注意:除了使用默认文件编辑器编辑和提交文件外,你还可以选择使用 github.dev 代码编辑器,方法是选择 下拉菜单并单击github.dev。你还可以克隆代码库并通过单击GitHub Desktop在本地通过 GitHub Desktop 编辑文件。

    Screenshot of a file. In the header, a downwards-facing triangle icon is outlined in dark orange.

  3. 在文件名字段中,使用以下准则更改文件名

    • 要将文件移动到子文件夹中,请键入所需文件夹的名称,后跟/。你的新文件夹名称将成为导航面包屑中的新项目。
    • 要将文件移动到文件当前位置上方的目录中,请将光标放在文件名字段的开头,然后键入../以向上跳一个完整目录级别,或键入退格键以编辑父文件夹的名称。
  4. 单击提交更改...

  5. 在“提交消息”字段中,键入一个简短而有意义的提交消息,描述你对文件所做的更改。你可以在提交消息中将提交归因于多个作者。有关更多信息,请参阅“使用多个作者创建提交”。

  6. 在提交消息字段下方,决定是将你的提交添加到当前分支还是新分支。如果你的当前分支是默认分支,则你应该选择为你的提交创建一个新分支,然后创建一个 Pull Request。有关更多信息,请参阅“创建 Pull Request”。

    Screenshot of a GitHub pull request showing a radio button to commit directly to the main branch or to create a new branch. New branch is selected.

  7. 单击提交更改建议更改

使用命令行将文件移动到新位置

你可以使用命令行通过从旧位置移除文件,然后在新的位置添加文件,在代码库中移动文件。

许多文件可以直接在 GitHub 上移动,但某些文件(例如图像)要求你从命令行移动它们。

此过程假设你已经

  1. 在计算机上,将文件移动到本地克隆存储库时在计算机上创建的目录中的新位置。

  2. 打开 终端终端Git Bash

  3. 使用 git status 检查旧文件和新文件位置。

    $ git status
    > # On branch YOUR-BRANCH
    > # Changes not staged for commit:
    > #   (use "git add/rm <file>..." to update what will be committed)
    > #   (use "git checkout -- <file>..." to discard changes in working directory)
    > #
    > #     deleted:    /OLD-FOLDER/IMAGE.PNG
    > #
    > # Untracked files:
    > #   (use "git add <file>..." to include in what will be committed)
    > #
    > #     /NEW-FOLDER/IMAGE.PNG
    > #
    > # no changes added to commit (use "git add" and/or "git commit -a")
    
  4. 暂存文件以提交到本地存储库。这将删除或 git rm 旧位置的文件,并添加或 git add 新位置的文件。

    $ git add .
    # Adds the file to your local repository and stages it for commit.
    # To unstage a file, use 'git reset HEAD YOUR-FILE'.
    
  5. 使用 git status 检查暂存以提交的更改。

    $ git status
    > # On branch YOUR-BRANCH
    > # Changes to be committed:
    > #   (use "git reset HEAD <file>..." to unstage)
    > #
    > #    renamed:    /old-folder/image.png -> /new-folder/image.png
    # Displays the changes staged for commit
    
  6. 提交您在本地存储库中暂存的文件。

    $ git commit -m "Move file to new directory"
    # Commits the tracked changes and prepares them to be pushed to a remote repository.
    # To remove this commit and modify the file, use 'git reset --soft HEAD~1' and commit and add the file again.
    
  7. 将更改从本地存储库推送到 GitHub.com。

    $ git push origin YOUR_BRANCH
    # Pushes the changes in your local repository up to the remote repository you specified as the origin