ローカルの変更があります(は別ファイルではありませんので、.gitignoreは動作しません。)私はコミットしたくありません。
私はgit reset --hard
ときどき変更をクリアするためにコミットした後も、私は残したいと思っていた便利な変更を失ってしまいます。
私は自分の役に立つ変更をどのように保つことができますか?git resetで生き残ったローカルな変更を保存する方法--hard
答えて
また、試すことができます。
git update-index --skip-worktree -- file
# to cancel it:
git update-index --no-skip-worktree -- file
それはgit reset --hard
を耐えなければなりません。 ( '--
'ダブルハイフン使用のthis answerを参照してください)
このblog postを参照してください。
- それは
skip-worktree
のように見えますが、あなたのローカルデータを保存するのに非常に懸命にしようとしています。しかし、それが安全であれば上流への変化を防ぐことはできません。プラスgitはプルでフラグをリセットしません。しかし、 'reset -hard'コマンドを無視することは、開発者にとって厄介な驚きになる可能性があります。assume-unchanged
フラグはプル操作で失われる可能性があり、そのようなファイル内のローカル変更はgitにとって重要ではないようです。
変更しないと仮定することは、開発者がファイルを変更しないことを前提としています。ファイルが変更された場合、その変更は重要ではありません。このフラグは、SDKなどの変更されていないフォルダのパフォーマンスを向上させるためのものです。しかし、約束が破られ、ファイルが実際に変更された場合、gitは現実を反映するためにフラグを元に戻します。おそらく、変更されていないフォルダには矛盾したフラグが付いていても問題ありません。一方、
skip-worktree
は、これまでに特定のファイルに触れないように指示するときに便利です。既に追跡されている設定ファイルには便利です。アップストリームのメインリポジトリはプロダクション対応の設定をホストしていますが、いくつかのローカルテストを実行できるように設定の一部の設定を変更したいとします。また、そのファイルの変更を誤って確認してプロダクション設定に影響を与えたくない場合もあります。その場合、skip-worktree
は完璧なシーンを作ります。
git stash
を使用すると、一時的に変更を保存してから後で戻すことができます。Pro Git chapter on stashingを参照してください。
はい私は '' 'git stash'''について知っていますが、毎回自分の変更を隠したくありません。 – freemanoid
@freemanoid、大丈夫、あなたの想像上の 'git preserve-these-and-these-changes'コマンドは存在するとしようか。 'git reset -hard'を生き残るために何かを保存したいときは、その仮想コマンドを呼び出して、選択したファイルに設定されている保存状態を「元に戻す」もう1つのコマンドを呼び出す必要があります。これは 'git stash' /' git stash pop'とはどう違うのでしょうか? – kostix
これらの変更をコミットするのではなく、常にローカルに変更する必要がある場合は、ローカル変更のスクリプトまたはパッチファイルの作成とコミットを検討してください。その後、変更を保存して記録し、ハードリセット後に簡単に適用することができます。
環境に固有の変更がある場合は、それらを構成ファイルに外部化する価値があります。
- 1. "git reset -hard"は "git reset -hard HEAD"と同じですか?
- 2. "git reset --hard" with SVN
- 3. git resetの違い--hard HEAD ^対git reset - hard HEAD?
- 4. 単一のファイル混乱でGit Hard Reset
- 5. git - ローカル開発の変更を保存する方法
- 6. Git。間違ったブランチの変更を保存する方法
- 7. "git reset --hard"と "git checkout"の違いは何ですか?
- 8. ローカルのリポジトリを更新し、変更を保存する方法
- 9. 「git checkout tag-name」と「git reset -hard tag-name」の比較
- 10. スクリプトで行った変更を保存する方法
- 11. コミットしたことがない場合、 'git reset -hard HEAD'を元に戻すことはできますか?
- 12. "git reset -hard origin/master"のPerforceと同じもの
- 13. PHPのローカルGitリポジトリにファイルを保存する方法
- 14. ローカルGitと自動保存
- 15. git rebase remoteですが、後でコミットするためにローカルで変更を保存します
- 16. NSDataをローカルに保存する方法
- 17. git reset -hardは作業ツリーをインデックスのように見せませんか?
- 18. gitのローカル変更をフリーズする方法
- 19. bitbucketのリモートgitリポジトリにローカル変更をプッシュする方法
- 20. 変更しない変数を保存する方法
- 21. Git:ローカルの機能ブランチをdevの変更で更新する方法
- 22. gitクローンをローカルに変更したりプッシュできません
- 23. アンドロイドアプリの生涯にわたって変数を保存する方法
- 24. svnエクスポートをローカルで変更して保存する
- 25. Git bash:MinTTY設定ファイルの保存場所を変更する方法は?
- 26. gitリセット後にデータを取得する方法--hard
- 27. Git:あなたが先に引っ張った変更を破棄して、ローカルの変更を新しいブランチヘッドにする方法
- 28. Git - ローカルの変更をリセットする
- 29. git rebaseを行った後で変更がなくなった
- 30. ローカルに保存されたxmlファイルを.plistファイルに保存する方法
ありがとう、それは動作します!どのように私はこの旗を削除できますか? – freemanoid
@freemanoid単純に 'git update-index --no-skip-worktree -aFile' – VonC
人間を見ているうちにこれを見つけられませんでしたが、そこにありました。だから '' 'git update-index -no-skip-worktree my_file'''が動作します。 – freemanoid