実行前の状態
README.md を 1 回コミットした
この
ターミナル
git init -q -b main hello
cd hello
echo "# hello" > README.md
git add README.md
git commit -q -m "README を作る"
echo "いらない行" >> README.md最小の例と結果
戻したいgit restore の
ターミナル
git status -s M README.mdターミナル
git restore README.md
cat README.md# hellogit restoreは、うまく いくと 何も 表示しません。 - 打つ前の
Mは、README.md が 変わっているという印です。 - 最後の
catで、足した 1 行が 消えて、 コミットした 中身に 戻っています。
成功の確認
git status に
ターミナル
git statusOn branch main
nothing to commit, working tree clean構文と 主要オプション
| 書き方 | すること |
|---|---|
git restore <ファイル> | 作業中の |
git restore --source=HEAD <ファイル> | add 済みでも、 |
git restore --staged <ファイル> | ステージから |
git restore --source=<コミット> <ファイル> | 指定した |
git restore -p | 変更を |
失敗時の戻し方
git restore <ファイル> で
打つ前に、git diff で
ターミナル
git diff > backup.patch
git restore README.md捨てた
ターミナル
git apply backup.patchステージから--staged を
ターミナル
git restore --staged app.pyよくある疑問
--staged を 付けるのと 付けないのは、 何が 違いますか
付けると、
消した ファイルを 元に 戻せますか
コミットしてあるgit restore <ファイル> で--source=HEAD を
error: pathspec ... did not match any file(s) known to git と出ます
書いたgit status に
