2017-01-16 13 views
0

Git stashは非常に便利なコマンドファミリですが、コマンドに何も追加しません(コミットコマンドなしでコミットすることはできません。 stashコマンド)。Git:stashコマンドを使わないでgit stashをシミュレートする

あなたの仕事を隠してしまったが、隠しコマンドがないとどうしますか?

+0

私は 'commit'サブコマンドなしではコミットできないことを前提としています。例えば、低レベルインタフェースの 'commit-tree'コマンド(https://git-scm.com/docs/git-commit-tree)を参照してください。 – Boldewyn

+0

他のバージョン管理システムでこれをやったのは、基本的に 'git diff> changes.patch'です。そして、後でそれらを再適用してください(gitで 'git apply'を使うか、' patch'コマンドを使って再適用できます)。それは管理するための熊ですが、行うことができます。 'git stash'はもっと親切です。 – jszakmeister

+0

また、[Gitless](http://gitless.com/)もご覧ください。彼らはGitの基本的な問題だと考えているものを解決しようとしました。 Gitlessでは、ブランチを変更するとブランチに変更が保存され、隠しの必要はなくなります。私はその主張に同意しますが、それにもかかわらず興味深いプロジェクトです。 – jszakmeister

答えて

1

私が気に入っているオプションは、問題のブランチに対して正式に一時的にコミットすることです。

# work work work 
git commit -m 'Completed the feature' 

これで、別のブランチに切り替えてそこから続けることができます。それは、元のブランチに戻るには時間が来るとき、あなたは機能を終了し、一時的なコミットを修正することができます

git checkout original_branch 
# finish the work 
git commit --amend 

は今、あなたがコミット1つだけが残されており、あなたがどこかに修正プログラムを行うことができましたelse。

git stashは内部的に実際に作業ディレクトリとインデックスの状態を保存するために実際にコミットします(実際には2つまたは3つ)。

リンクをたどって@torekでlengthy answer about git stashを読んでください。

関連する問題