除了更改文件位置外,您还可以更新文件内容,或在同一提交中更改文件名。
在 GitHub 上将文件移动到新位置
提示
- 如果您尝试移动您无权访问的代码库中的文件,我们将把项目派生到您的个人帐户,并在您提交更改后帮助您向原始代码库发送拉取请求。
- 某些文件(例如图像)需要您通过命令行移动。有关更多信息,请参阅“将文件移动到新位置”。
- 如果代码库有任何受保护的分支,则无法使用 GitHub 编辑或上传受保护分支中的文件。您可以使用 GitHub Desktop 将更改移动到新分支并提交它们。有关更多信息,请参阅“关于受保护的分支”和“在 GitHub Desktop 中提交和查看项目更改”。
-
在您的代码库中,浏览到您要移动的文件。
-
在文件视图的右上角,单击以打开文件编辑器。
注意
您可以选择使用github.dev 代码编辑器,而不是使用默认文件编辑器编辑和提交文件,方法是选择下拉菜单并单击**github.dev**。您也可以通过单击**GitHub Desktop**克隆代码库并在本地通过 GitHub Desktop 编辑文件。
-
在文件名字段中,使用以下准则更改文件名
- 要将文件**移动到子文件夹**中,键入所需的文件夹名称,后跟
/
。您的新文件夹名称将成为导航面包屑中的新项目。 - 要将文件移动到**高于文件当前位置**的目录中,请将光标放在文件名的开头,然后键入
../
跳到上一层目录,或键入backspace
键以编辑父文件夹的名称。
- 要将文件**移动到子文件夹**中,键入所需的文件夹名称,后跟
-
单击**提交更改…**
-
在“提交消息”字段中,键入简短且有意义的提交消息,以描述您对文件所做的更改。您可以在提交消息中将提交归因于多个作者。有关更多信息,请参阅“创建具有多个作者的提交”。
-
在提交消息字段下方,决定是将提交添加到当前分支还是添加到新分支。如果当前分支是默认分支,则应选择为提交创建新分支,然后创建拉取请求。有关更多信息,请参阅“创建拉取请求”。
-
单击**提交更改**或**提出更改**。
使用命令行将文件移动到新位置
您可以使用命令行通过从旧位置删除文件然后将其添加到新位置来移动代码库中的文件。
许多文件可以直接在 GitHub 上移动,但某些文件(例如图像)需要您通过命令行移动。
此过程假定您已
- 在 GitHub 上创建代码库,或拥有您想要为其贡献的现有代码库
- 在本地计算机上克隆代码库
-
在您的计算机上,将文件移动到克隆代码库时在本地计算机上创建的目录中的新位置。
-
打开终端终端Git Bash。
-
使用
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")
-
将文件暂存到本地代码库以进行提交。这将删除(或
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'.
-
使用
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
-
提交已在本地代码库中暂存的文件。
$ 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.
-
推送更改到 GitHub.com 上的本地代码库。
$ git push origin YOUR_BRANCH # Pushes the changes in your local repository up to the remote repository you specified as the origin