[解決済み] Git には、レポの状態を丸ごと保存して安全に遊べるサンドボックス機能はありますか?
質問内容
そこで、git リポジトリのクリーンアップを行う必要があることが分かっている時点で、潜在的に rebase やその他のものを使用して、間違った操作をすると元に戻すのが非常に面倒になる可能性があります。
Gitに "ローカルの git リポジトリ全体のこの状態を保存して、万が一うまくいかなかったときに、この時点まですべてをロールバックできるようにします。 サンドボックスモードのようなもので、何も台無しにすることなく、安全にレポをいじり、潜在的に危険な操作を行うことができます。
履歴の特定の時点にタグか何かを追加するということではなく、その時点の特定の状態からすべてのブランチの git リポジトリで行われたすべての変更をリセットするようなものについて話しています。ロールバックする可能性があるのは すべて (すべてのgitの履歴/状態)。OSXのタイムマシンに似たようなもの。
2019-02-19に更新しました。この「大惨事になりかねない操作」というのは、コードそのものではなく、git のリポジトリ構造を実際にいじくり回すことを意味しています。
git reset --hard
などのコマンドがあります。
解決方法は?
あなたが探しているのは
git worktree
コマンドを使用します。
また、以下を参照してください。 https://git-scm.com/docs/git-worktree :
git リポジトリは複数のワーキングツリーをサポートしており、一度に複数のブランチをチェックアウトすることができます。git worktree add を使用すると、新しい作業ツリーをリポジトリに関連付けることができます。この新しい作業ツリーは、git-init や git-clone で用意したメイン作業ツリーに対して "リンク作業ツリー"(訳注: リンク作業ツリーと呼ばれます) と呼ばれます。リポジトリには、(ベアリポジトリでない場合は)1つのメイン作業ツリーと、0つ以上のリンクされた作業ツリーがあります。リンクされた作業ツリーを使い終わったら、git worktree remove でそれを削除してください。
関連
-
git push reports an error ! [リモート拒否] master -> master (受信前のフックが拒否されました)
-
[解決済み] 複数のgitコミットを元に戻すには?
-
[解決済み] git が「Pull is not possible because you have unmerged files」と表示するのはなぜですか?
-
[解決済み] Gitのプッシュを正しく強制する方法は?
-
[解決済み] リモートレポにプッシュされたGitの特定のコミットを元に戻す
-
[解決済み] Git リポジトリで現在のコミットを唯一の(初期)コミットにする?
-
[解決済み] 既存の空でないディレクトリをGitの作業ディレクトリに変換し、リモートリポジトリにファイルをプッシュする方法
-
[解決済み] ローカルのGitレポを新しいリモートにプッシュし、すべてのブランチとタグを含める。
-
[解決済み] git リポジトリを特定のコミットまでロールバックするにはどうすればよいですか?
-
[解決済み】Gitのワークフローとrebaseとmergeの質問
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] masterブランチと'origin/master'が分岐している、'undiverge'ブランチの方法は?
-
[解決済み】Git:コミットに何も追加されていないが、未追跡のファイルが存在する
-
[解決済み】git rev-parseは何をするのですか?
-
[解決済み】なぜ「git commit」は私の変更を保存しないのですか?
-
git commit リモートエラー [rejected] master -> master (フェッチファースト)
-
[解決済み】マージが終了していません(MERGE_HEADは存在します)。
-
[解決済み] リモートから<branch name>とマージするように構成が指定されていますが、そのような参照は取得されませんでしたか?
-
[解決済み] ブラウンアウトの一環として、パスワード認証が一時的に無効になっています。代わりに個人用アクセストークンを使用してください[重複]。
-
[解決済み] 現在の支店にはトラッキング情報がありません
-
[解決済み] GitHubです。パーミッションが拒否されました (公開鍵)。