web-dev-qa-db-ja.com

現在のフォルダーに変更を格納する方法は?

現在のフォルダーとそのサブフォルダーの変更のみを変更したい。

どうすればそれを達成できますか?

私は明白なアプローチを試みました-git stash .しかし、うまくいかないようです。

一時的なコミットを作成して後で削除できることは知っていますが、git stashは、特定のフォルダーの隠蔽をサポートします。

36
stdcall
git stash Push -- path/to/folder

私のためのトリックを行います。

50
gorpacrate

git stashでは、1つのコマンドで部分ディレクトリを保存することはできませんが、いくつかの選択肢があります。

git stash -pを使用して、隠したい差分のみを選択できます。

git stash -pの出力が膨大な場合、および/またはスクリプト可能なソリューションが必要で、一時的なコミットを作成することが許容される場合、サブディレクトリ内の変更を除くすべての変更を含むコミットを作成し、変更を隠します。そしてコミットを巻き戻します。コード内:

git add -u :/   # equivalent to (cd reporoot && git add -u) without changing $PWD
git reset HEAD .
git commit -m "tmp"
git stash       # this will stash only the files in the current dir
git reset HEAD~
12
Marco Leogrande

これはあなたのために働くはずです:

cd <repo_root>
git add .         # add all changed files to index
cd my_folder
git reset .       # except for ones you want to stash
git stash -k      # stash only files not in index
git reset         # remove all changed files from index

基本的に、隠したいフォルダー(またはファイル)を除き、変更されたすべてのファイルをインデックスに追加します。次に、-k--keep-index)を使用してそれらを隠します。最後に、インデックスをリセットして、開始した場所に戻します。

7
mvp