Skip to main content

将文件移至新位置

您可以在 GitHub 上或使用命令行将文件移动到其他目录。

Platform navigation

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

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

Tip

  • 如果尝试移动存储库中你无权访问的文件,我们将创建到个人帐户的项目分支,并在你提交更改后帮助你向原始存储库发送拉取请求
  • 有些文件(如图像)需要您从命令行移动它们。 有关详细信息,请参阅“将文件移至新位置”。
  • 如果仓库中有任何受保护分支,则无法使用 GitHub 编辑或上传受保护分支中的文件。 您可以使用 GitHub Desktop 将您的更改转移到新的分支,然后提交它们。 有关详细信息,请参阅“关于受保护分支”和“在 GitHub Desktop 中提交并审查对项目的更改”。
  1. 在仓库中浏览到您要移动的文件。
  2. 在文件视图的右上角,单击 以打开文件编辑器。

文件的屏幕截图。 在标头中,标有铅笔图标的按钮以深橙色标出。

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

文件的屏幕截图。 在标头中,一个朝下三角形图标用深橙色框出。

1. 在文件名字段中,按照以下原则更改文件名: * 若要将文件移动到子文件夹中,请键入所需的文件夹的名称,后跟 `/`。 新文件夹名称将变成导航层次结构中的新项目。 * 若要将文件移动到文件当前位置上方的目录中,请将光标置于文件名字段的开头,然后键入 `../` 以跳转到一个完整的目录级别,或者键入 `backspace` 键以编辑父文件夹的名称。
  1. 单击“提交更改...”

  2. 在“提交消息”字段中,输入简短、有意义的提交消息,以描述对文件的更改。 您可以在提交消息中将提交归于多个作者。 有关详细信息,请参阅“创建有多个作者的提交”。

  3. 在提交消息字段下面,确定是要将提交添加到当前分支还是新分支。 如果当前分支是默认分支,则应选择为提交创建新分支,然后创建拉取请求。 有关详细信息,请参阅“创建拉取请求”。

    GitHub 拉取请求的屏幕截图,其中显示了一个单选按钮,用于直接提交到主分支或创建新分支。 已选择“新建分支”。

  4. 单击“提交更改”或“建议更改” 。

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

您可以使用命令行在仓库中移动文件,从旧位置删除文件,然后将其添加到新位置。

许多文件可以直接在 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.
    # 若要取消暂存文件,请使用“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.
    # 要删除此提交并修改文件,请使用 'git reset --soft HEAD~1' 并再次提交和添加文件。
    
  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