ファイルの場所を変更するだけでなく、同じコミットでファイルの内容を更新したり、ファイルの名前を変更したりすることもできます。
GitHub
上の新しい場所にファイルを移動する
ヒント:
- アクセス権のないリポジトリのファイルを移動しようとした場合は、プロジェクトがあなたの個人アカウントにフォークされ、変更のコミット後に元のリポジトリにプルリクエストを送信できます。
- 画像など、ファイルによってはコマンドラインから移動しなければならない場合があります。 詳しくは、「ファイルを新しい場所に移動する」をご覧ください。
- リポジトリに保護されたブランチがある場合、GitHubを使ってその保護されたブランチ中のファイルを編集したり、保護されたブランチにファイルをアップロードしたりすることはできません。 GitHub Desktopを使って、変更を新しいブランチに移動させてコミットできます。 詳細については、「保護されたブランチについて」および「GitHub Desktop でプロジェクトの変更をコミットしてレビューする」を参照してください。
-
リポジトリで、移動するファイルを見つけます。
-
ファイル ビューの右上隅にある をクリックしてファイル エディターを開きます。
注: 既定のファイル エディターを使ってファイルの編集とコミットを行う代わりに、必要に応じて github.dev コード エディターを使用できます。それには、 ドロップダウン メニューを選択し、 [github.dev] をクリックします。 また、 GitHub Desktop をクリックして、GitHub Desktop を使用してリポジトリを複製し、ローカルでファイルを編集することもできます。
-
ファイル名のフィールドで、以下のガイドラインに従ってファイルの名前を変更します。
- ファイルをサブフォルダーに移動するには、目的のフォルダーの名前を入力して、その後に
/
を付加します。 新しいフォルダ名が、ナビゲーション階層リンクで新しいアイテムになります。 - ファイルの現在位置より上位のディレクトリにファイルを移動するには、ファイル名フィールドの先頭にカーソルを置いてから、
../
と入力して 1 つ上のディレクトリ レベルに移動するか、backspace
キーを押して親フォルダの名前を編集します。
- ファイルをサブフォルダーに移動するには、目的のフォルダーの名前を入力して、その後に
-
[変更のコミット...] をクリックします。
-
[コミット メッセージ] フィールドに、ファイルに対する変更内容を説明する、短くわかりやすいコミット メッセージを入力します。 コミットメッセージでは、複数の作者にコミットを関連づけることができます。 詳しくは、「複数の作者を持つコミットを作成する」を参照してください。
-
コミットメッセージフィールドの下で、コミットの追加先を現在のブランチか新しいブランチから選択してください。 現在のブランチがデフォルトブランチなら、コミット用に新しいブランチを作成してからPull Requestを作成すべきです。 詳しくは、「pull request の作成」を参照してください。
-
[変更のコミット] または [変更の提案] をクリックします。
コマンドラインを使用してファイルを新しい場所へ移動する
コマンドラインを使用してリポジトリ内でファイルを移動するには、元の場所でファイルを削除してから、新しい場所に追加します。
多くのファイルは 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. # ファイルをステージング解除するには、'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. # このコミットを削除してファイルを変更するには、'git reset --soft HEAD~1'を使い、コミットしてからファイルを再度追加してください。
-
GitHub.com にローカル リポジトリの変更をプッシュします。
$ git push origin YOUR_BRANCH # Pushes the changes in your local repository up to the remote repository you specified as the origin