[解決済み】git-worktreeは何に使うのでしょうか?
質問
読む Githubのgit-worktreeに関する記事 . と書かれています。
というブランチの Git リポジトリで作業しているとしましょう。
feature
で緊急性の高いバグが報告された場合、そのバグはmaster
. まず、新しいブランチを持つリンクされた作業ツリーを作成します。hotfix
バグを修正し、hotfixをプッシュし、プルリクエストを作成することができます。
featureというブランチで作業をしていて、masterに緊急性の高いバグが報告された場合、私は通常、作業中のものを隠して新しいブランチを作成することにしています。それが終われば、作業を続けることができます。これはとてもシンプルなモデルで、私は何年もそうやって作業してきました。
一方、git-worktreeを使うには、それなりの限界があります。
<ブロッククオートたとえば、リンクされた2つの作業ツリーで同じブランチを同時にチェックアウトすることはできません。一方の作業ツリーでコミットした変更によって、もう一方の作業ツリーが同期しなくなる可能性があるからです。
すでに解決された問題に対して、なぜより複雑なワークフローを選択する必要があるのでしょうか?
について何かありますか?
git-worktree
事前にできなかったことで、このまったく新しい複雑な機能を正当化するのでしょうか?
どのように解決するのか?
私にとっては、git worktree は久しぶりの大きな改善点です。私は企業向けソフトウェア開発に携わっています。そこでは、3年前にリリースしたような古いバージョンを維持しなければならないことが非常によくあります。もちろん、各バージョンにはブランチがあり、簡単に切り替えてバグを修正できるようになっています。しかし、切り替えにはコストがかかります。なぜなら、その間にリポジトリやビルドシステムを完全に再構築してしまうからです。切り替えた場合、IDEはプロジェクトの設定を適応させようとして、おかしくなってしまいます。
worktreeを使えば、そのような絶え間ない再設定を避けることができるのです。worktreeを使って、古いブランチを別々のフォルダーでチェックアウトします。各ブランチには、独立したIDEプロジェクトが用意されています。
もちろん、これまではレポを何度もクローンすることで可能でしたし、私もこれまでそうしてきました。しかし、それはハードディスクのスペースを無駄にし、さらに同じ変更を何度もレポから取得する必要があることを意味します。
関連
-
[解決済み] Git で直近のローカルコミットを取り消すには?
-
[解決済み] Gitブランチをローカルやリモートで削除するには?
-
[解決済み] git pull」と「git fetch」の違いは何ですか?
-
[解決済み] コミット前に 'git add' を取り消すにはどうすればよいですか?
-
[解決済み] リモートのGitブランチをチェックアウトするには?
-
[解決済み] Git リポジトリを以前のコミットに戻すにはどうすればよいですか?
-
[解決済み] 現在のGit作業ツリーからローカル(未追跡)ファイルを削除する方法
-
[解決済み] Gitによるhotfixブランチのfeatureブランチへのマージ
-
[解決済み】"git pull" でローカルファイルを強制的に上書きするには?
-
[解決済み】ローカルの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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Git, fatal: リモートエンドが予期せずハングアップしました。
-
[解決済み】ローカルにない作業がリモートに含まれているため、アップデートが拒否された
-
[解決済み] あなたのブランチは 'origin/master' より 3 コミット進んでいます。
-
[解決済み] リモートから<branch name>とマージするように構成が指定されていますが、そのような参照は取得されませんでしたか?
-
[解決済み] 無効なVCSルートマッピング - 私のプロジェクトで3つのエラーが発生しました。
-
[解決済み] git ls-remote と git ls-remote origin の違い。
-
[解決済み] git rebase: "error: cannot stat 'file': パーミッションが拒否されました"
-
[解決済み] "fatal: This operation must be run in work tree." というメッセージが表示されるのはなぜですか?
-
[解決済み] Gitのプッシュエラーです。Unable to unlink old (Permission denied)です。
-
[解決済み] GitとDropboxを一緒に使うには?[クローズド]