4

私はブランチ(マスターとしましょう)にいて、作業ディレクトリにいくつかの変更があります。作業はできますが、多くのクリーンアップが必要です。そのため、ブランチに戻る必要がある場合に備えて、現在の作業ディレクトリをブランチに保存したいと思います。後で間違いなくブランチを削除します。

また、私がいた場所でマスターに正確に取り組み続けたいと思います。

今私はします:

# Save to topic branch
git checkout -b working-stuff
git commit -a -m "work in progress"

# go back to master and continue with the state is was in before
git checkout master
git checkout -- .
git reset

後で、トピックブランチを削除します。

したがって、上記は私が望むことを正確に実行しますが、少し冗長です。これを行うためのより簡単な方法はありますか(スクリプトを作成するだけではありません)?

4

3 に答える 3

8

使用できます

 git stash

説明書より

作業ディレクトリとインデックスの現在の状態を記録したいが、クリーンな作業ディレクトリに戻したい場合は、git stash を使用します。このコマンドは、ローカルの変更を保存し、作業ディレクトリを HEAD コミットに一致するように戻します。

変更をgit stash隠したら、次の方法で再度適用できます。

 git stash apply

または、隠した変更を次のようにリストできます。

 git stash list
于 2012-12-17T16:08:07.563 に答える
4

完全を期すために: 適切なブランチ (スタッシュよりもいくつかの利点があります) が必要な場合は、配管コマンドを使用する必要はありません。次のこともできます。

git add -A .
git commit -m "dirty"
git branch dirtybranch
git reset --hard HEAD^
于 2012-12-18T09:35:49.353 に答える
2
$ git 追加バー

$ git ステータス
# ブランチ マスター上
# コミットする変更:
# (「git reset HEAD ...」を使用してステージングを解除します)
#
# 新しいファイル: バー
#

$ git branch newbar $(echo wip | git commit-tree \
  $(git write-tree) -p $(git rev-parse HEAD))

$ git lola --name-status
* e3f88c8 (newbar) wip
| | バー
* a7b1a76 (HEAD、マスター) foo
  ふー

できるからといって、すべきだとは限りません。

于 2012-12-17T16:18:50.557 に答える