TOP
前: .gitignoreと.gitkeep
次: コミットへのタグ付け
基本的にはブランチを切り替えた状態で開発作業を進めますが、うっかり切り替え忘れて進めてしまうこともあるかと思います。また、コミットするほど作業はしていないが作業状況を残しておきたい場合もあるかと思います。
git stashを使うことでコミット前の変更を一時的に退避することができます。退避した内容はどのブランチにいても戻すことが可能です。
なおコミット済みの内容やリモートブランチへプッシュ済みの内容には効果がありません。あくまでローカルブランチでコミット前の内容にのみ使えます。
- コマンドプロンプトまたはPowerShellより、任意のディレクトリで
ターゲットリポジトリのクローンURLを使いクローンしてください。
なお、既にクローンしている場合はプルを行ってください。 - mainブランチでファイル
3-6.txtを新しく作成します。 - 変更内容をステージングします。
- コミット前の変更を一時的に退避します。(ヒント:引数は不要です。)
- ローカルブランチ
3-6を新しく作成し、切り替えます。 - 現在のブランチを確認します。以下のようにブランチ
3-6が選択されていることを確認してください。(他のブランチがリストされていても構いません)
* 3-6
main
- 一時的に退避した変更のリストを表示し、stash名を確認します。(ヒント:
stash@{0}: WIP on main: a6258bf add fileのようなリストが表示されます。stash名とはstash@{0}の部分を指します) - 先ほど確認したstash名を使い、一時的に退避した変更を戻します。(ヒント:PowerShellで操作している場合はstash名をダブルクォートで囲む必要があります。)
- ローカルブランチ
3-6にファイル3-6.txtが存在していることを確認してください。 - mainブランチに切り替え、ローカルブランチ
3-6を削除します。 - ファイル
3-6.txtを削除します。
答え(一例です)
ディレクトリにターゲットリポジトリクローンがない場合
> git clone {ターゲットリポジトリのクローンURL}
既にディレクトリにターゲットリポジトリクローンがある場合
> git switch main
> git pull
- ファイル・ディレクトリの作成はGUIでも可能なため省略
> git add .
> git stash
> git branch 3-6
> git switch 3-6
> git branch
1-README
* 3-6
3-ADDFILE
main
> git stash list
stash@{0}: WIP on main: 9de2237 Merge pull request #3 from kato-pra/3-ADDFILE
PowerShellを使っている場合
git stash apply "stash@{0}"
PowerShell以外の場合
git stash apply stash@{0}
- ファイル・ディレクトリの確認はGUIでも可能なため省略
> git switch main
A 3-6.txt
Switched to branch 'main'
Your branch is up to date with 'origin/main'.
> git branch -D 3-6
Deleted branch 3-6 (was 9de2237).
- ファイル・ディレクトリの削除はGUIでも可能なため省略
TOP
前: .gitignoreと.gitkeep
次: コミットへのタグ付け