任意のブランチをチェックアウトし、ローカルの変更を上書きする Git コマンド
2023-08-22 15:11:42
質問
次のことを安全かつ確実に行うための Git コマンド(あるいは一連の短いコマンド)はありますか?
- ローカルの変更をすべて取り除く。
- 必要ならオリジンから指定されたブランチをフェッチする
- 指定されたブランチをチェックアウトしますか?
現在、行き詰っています。
git fetch -p
git stash
git stash drop
git checkout $branch
git pull
を実行すると、2回ほどパスワードを要求されるのが気になるところです。
fetch
と
pull
).
一般的に、私はパスワードが一度だけ必要である限り、どのような解決策にも満足します。
2、3の注意事項。
- あるアプリケーションの自作デプロイメントスクリプトの一部です (コードは GitHub にホストされています)。
- ブランチがオリジンからすでに取得されているかどうかに違いはないはずです (つまり、新しいブランチの最初のデプロイでは、理想的には追加の手順は必要ないはずです)。
- スクリプトは複数の人がアクセスできるリモート マシンに配置されるため、資格情報は保存されず、ユーザー/パスワードを入力する必要があります (ただし、可能であれば 1 回のみ)。
- ローカルでの変更は気にしません。常に指定されたブランチの原始的なコピーが欲しいのです (デプロイ スクリプトのさらなる部分では、ローカルでの変更が発生します)。
- 毎回新鮮なリポジトリをクローンまたはエクスポートできない; 時間がかかりすぎる。
どのように解決するのですか?
次のような解決策を取ることができます。 " git pull" でローカルファイルを強制的に上書きするには? " :
git fetch --all
git reset --hard origin/abranch
git checkout abranch
これだとフェッチは1回で済みますね。
Git 2.23+では
git checkout
はここで
git switch
(ここで提示される)
(まだ実験中)。
git switch -f $branch
は
-f
のエイリアスである。
--discard-changes
で述べたように
Jan
's
答え
)
インデックスや作業ツリーがHEADと異なっていても進める。
インデックス、作業ツリーともに切替先と一致するように復元されます。
もし、あなたが
ではない
にしたい
を切り替える
という分岐がありますが
リストア
を実行すると、別のブランチのフォルダを
git restore
は他のコマンドで、古い時代遅れで混乱しがちな
git checkout
.
発表した
git restore
ここで
.
git restore --source=anotherBranch --staged] [--worktree -- aFolder
# or, shorter:
git restore -s anotherBranch -SW -- aFolder
関連
-
[解決済み] Git で直近のローカルコミットを取り消すには?
-
[解決済み] Gitブランチをローカルやリモートで削除するには?
-
[解決済み] git pull」と「git fetch」の違いは何ですか?
-
[解決済み] リモートのGitブランチをチェックアウトするには?
-
[解決済み] 現在のGit作業ツリーからローカル(未追跡)ファイルを削除する方法
-
[解決済み] Git で、ステージされていない変更を破棄するにはどうしたらいいですか?
-
[解決済み] 新しいローカルブランチをリモートの Git リポジトリにプッシュし、それを追跡するにはどうすればよいのでしょうか?
-
[解決済み】"git pull" でローカルファイルを強制的に上書きするには?
-
[解決済み] Git で最新のコミットを新しいブランチに移動する
-
[解決済み】ローカルのGitブランチの名前を変更するには?
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
fatal: リモート参照マスタが見つかりませんでした。
-
git reports an error fatal: unable to auto-detect email address (got 'Administrator@MS-20180504MMDH.(none)')
-
git のコンパイルとインストールの問題を解決する fatal: https のリモートヘルパーが見つからない
-
[解決済み】"git pull" でローカルファイルを強制的に上書きするには?
-
[解決済み] JenkinsのGitプラグイン。特定のタグをビルドするには?
-
[解決済み] GitHubで2つのブランチの差分を取るには?
-
[解決済み] バージョン管理には、なぜタグとリリース/ベータブランチを使い分ける必要があるのでしょうか?
-
[解決済み] Gitブランチの名前をローカルとリモートで変更できますか?重複
-
[解決済み] IntelliJのShelveとGit stashの違いは何ですか?
-
[解決済み] Git のプッシュが "non-fast-forward" で拒否されました。