問題タブ [branching-and-merging]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
git - Git ブランチを master にマージする最良の (そして最も安全な) 方法は何ですか?
から新しいブランチmaster
が作成されます。これを と呼びますtest
。
master
他のブランチにコミットまたは作成し、後で にマージする開発者が何人かいますmaster
。
の作業に数日かかっており、内部のコミットで継続的に更新しtest
たいとします。test
master
git pull origin master
からやりますtest
。
質問 1:これは正しいアプローチですか? 他の開発者は、私が作業したのと同じファイルで簡単に作業できたはずです。
作業test
が完了し、 にマージする準備が整いましたmaster
。私が考えることができる2つの方法は次のとおりです。
A:
B:
--rebase
私の理解では、リベースは変更を取得し、master
その上にスタックするため、他の人が行った変更を上書きする可能性があるため、使用していません。
質問 2:これら 2 つの方法のうち、正しいのはどれですか? そこの違いは何ですか?
これらすべての目標は、test
ブランチで起こっていることを最新の状態に保ち、master
後でそれらをマージしてmaster
、タイムラインをできるだけ直線的に保つことです。
tfs - チームプロジェクト全体のTFS2010ブランチ-ベストプラクティス
TFSレンジャーチームが提供するベストプラクティスに従ってTFSを構成する方法を理解するのに問題があります。問題はそのようなものです:
私の会社には、共有の共通コードベースを利用する製品がいくつかあります。
したがって、1つのチームコレクションがあり、この例では3つのチームプロジェクトがあります。($ / *はチームプロジェクトです)
最初のリリースの分岐は少し面倒です。/Mainから/Releases、または/Mainから/Developmentに分岐する代わりに、各プロジェクトを個別に分岐しています。(チームプロジェクトではなく...ソリューションプロジェクト。)
これは、ネストされたブランチルートを持つことができないためです。(TFSエラー:TF203028およびTF203071を参照してください)
TFS Ranger Guideと、リリース、ホットフィックス、開発を分岐するための改訂されたアプローチによると、/ Main / Source / Proj1、/ Proj2、/Proj3などではなく/Mainから分岐する必要があります。
理想的には、次のことを行います。
解決策:1。各共有ブランチ(つまり、$ / Core)を通常のフォルダーに戻すことができます。このように、/Mainの下のフォルダはブランチルートではありません。次に、$ / Product1 / Main / Source / Core/Sourceから親の$/Core/Sourceへのベースレスマージを実行できます。
根拠のないマージの経験はありますか。私がマイクロソフトから読んだことは、それらはありふれたものであってはならない例外であるということです。MSは、TFSを使用してプロジェクトを適切にセットアップすれば、ベースレスマージを実行する必要がなくなると述べています。
チームプロジェクト間で分岐する場合、これはどのように可能ですか?!?ソフトウェア開発会社では、製品間でライブラリを共有するのが一般的です。
私は他の解決策にもオープンです。
ありがとう!
git - Git でテスト ハーネスを管理するにはどうすればよいですか - それらは別のリポジトリにある必要がありますか?
私は現在 Git で管理している大規模な (っぽい) プロジェクト [90 ファイル 650 KB コード] を持っています。私はいくつかの独立したテスト ハーネスを使用して、後でメイン コードとそのブランチにマージされる新しい低レベルの計算を試行/テストします (現在はコピー アンド ペーストを使用しています!)。
テスト ハーネスを管理するための推奨されるベスト プラクティスは何ですか?
それらは別のリポジトリにある必要がありますか、それともメイン リポジトリに空のブランチを作成して開始する必要がありますか、それとも単に「テスト ハーネス」ブランチを作成して古いコードを上書きする必要がありますか?
利益が期待されるのは、メイン ブランチでテストされたコードが、テストされたものと明らかに「同じ」であることです。
私は Windows (msysgit) を使用しており、会社で Git を使用するための主要な「エクスプローラー」です。
visual-studio-2010 - TFS 2010 - コード ブランチがあります。どのブランチをコーディングするかを開発者に伝える最良の方法は何ですか?
作業項目をコーディングする場所を指定する最善の方法は何ですか? 特定のフィールドを使用しますか? 現在、WIT でカスタムの「修正するバージョン」フィールドを使用していますが、これは開発またはメイン ライン コード ブランチに直接関係していません。最終的に、どのバージョン (v6.1、v6.2 など) がどのブランチに関連しているかを伝えることになりますが、まだ「マッピング」を行う必要があります。ブランチの名前は「修正するバージョン」と同じであるため、これは実際にはリリースされたバージョンの「ホット フィックス」に対してのみ機能します。開発者がどこをコーディングすればよいかを簡単に把握でき、最小限のメンテナンスしか必要としないように、作業項目はどのように指定されますか?
更新: 少し明確にするために、Dev、Main、および Release (リリースごとに 1 つ) のブランチがあります。私たちは、開発の 90% を Dev で行っています。イテレーションが終了したら、Dev を Main に逆統合しますが、その時点ではリリースしません。テストはしばらくメインで行われ、選択されたバグはメインで修正される可能性があります。これはすべて、次のイテレーション (新しいストーリー) が Dev で進行している間も続きます。Main で問題がないように見えたら、新しいバージョン (新しいリリース ブランチ) に分岐し、Main での開発は次の反復が開始されるまで終了し、Dev から Main に再び逆統合します。もちろん、Main で問題が修正されたら、Main を Dev に統合します。いつでも、Dev、Main、または Released バージョンで修正が必要なバグが発生する可能性があります。Main、Dev、および Release で進行中のバグ修正では、一部の開発者を混乱させています。「バージョン」を伝えますが、将来または現在のバージョンがどのブランチにリンクされているかを知る必要があります。ここで、Task 作業項目のベスト プラクティスを見つけようとしています。
ruby-on-rails - Gitで1つのアプリケーションの2つのバージョンを維持できますか?
私はRubyonRailsでアプリケーションを書いています。このアプリケーションは、少なくとも2つの異なる顧客タイプに配信されます。ベースは常に同じですが、一部のビューは異なります。それがほとんどです。今のところ。
たとえば、ブランチを使用して、同じコードベースを使用し、ビューのみを分離する方法はありますか?分岐についてはGitのマニュアルを読みましたが、これが必要なことを達成するための最良の方法であるかどうかはまだわかりません。
別のアイデアはフォークです。しかし、それは賢いですか?フォークAのコードで何かを変更した場合、これらの変更をフォークBにマージするのは簡単ですか?
mercurial - 複数の Mercurial ブランチをまとめてマージする
ブランチを使用してバグ修正を行う開発者がたくさんいます。私の必要性: これらすべてのブランチを 1 つのメイン ブランチ「デフォルト」にマージする自動化 (または方法がある) の最良の方法は何ですか。
ありがとう
git - GIT: 分岐中に何が起こるか?
私の質問は本当に無実です。私は git を読んでいて、プッシュ、プル、ブランチの作成などの基本をすでに知っています。私のメンターは、git を使用する適切な方法は、リソースをプルし、新しいローカル ブランチを作成し、そのローカル ブランチを転送して編集し、完了したらマスター ブランチに戻ってローカル ブランチとマージすることだと言いました。私の質問は、舞台裏で正確に何が起こっているのですか?
つまり、git がローカル ブランチを作成すると、編集可能なマスター ブランチのコピーが作成されるのでしょうか? もしそうなら、これらのコピーはどこにありますか?
万が一、ローカル ブランチを台無しにしてしまった場合、変更を元に戻すにはどうすればよいですか (たとえば、マスターをプルしたときの状態に戻したいとします)。master に戻ってローカルブランチを削除するだけの簡単な問題ですか?
人々がそれをバージョン管理と呼ぶ理由は、私が思うにバージョンを表すブランチのためだと思います。私は正しいですか?
なぜマスターはブランチと呼ばれるのですか?トランクじゃないの?わかりました、非常にばかげた質問です。#4 は無視してください...ハハハ!
私の無邪気な子供のような質問への回答をいただければ幸いです。<3 <3 <3
git - トピックブランチからのマージの競合を軽減するためのワークフロー戦略
私は自分の高官にgitを売ろうとしているところです。とにかく、彼らは私たちがそれについて話すのを聞いています。よくわからないことが1つあります。人々がこれにどのように対処しているかを確認したいと思います。基本的に、私の質問は、ブランチのペアが離れるほど、それらをマージするのが難しくなるという基本的な理解から来ています。
この非常に単純なワークフローを提案することを検討しています。マスター(リリース)ブランチ、開発ブランチ、およびその中のトピックブランチがあるとします。さまざまな開発者が別々のトピックブランチに取り組んでおり、コードが機能していると感じる頻度で、それらのトピックブランチを中央リポジトリにプルおよびプッシュします。定期的に、開発者からそうするように求められた場合、メンテナ(私たちの組織では「テクニカルリード」というタイトルを持っています)は、機能ブランチから開発ブランチにマージされ、ステージングサーバーに配置されてテストされます。テストが完了し、マスターとマージされて本番環境にプッシュされます。
これが私の質問です。開発者はトピックブランチを定期的にマージする必要がありますか?そうすることで、それらがすべてdevにかなりきれいにマージされます(または、少なくとも、手に負えなくなる前に競合を早期にキャッチします)。私のマネージャーがそれについて嫌いになることを私が知っている唯一のことは、それはプロジェクトにコードを提供するために働くのではなく、彼らが彼らのツールをなだめるために彼らがしなければならない仕事です。考え?
svn - ブランチと共有開発サーバー?
そのため、私が維持している従来のASPWebアプリのSCMとしてSubversionを使用しています。機能の分岐を使用して、依存関係や長期的な開発がある変更を処理します。
Dev / QAには共有Webサーバーを使用します。ここで、私の質問が出てきます。中央のDevサーバーはトランクの作業コピーであり、機能ブランチからのDevの変更を確認する必要がある場合は、それらをDevにマージします。作業コピー。これまでのところ良いですが、私は将来的に悪いことに自分自身を設定していますか?
たとえば、今日、アナリストは、機能に加えた変更を「削除」してから、デモのためにDevサイトにマージできると言った。機能が強制終了されたからではなく、見る必要がなかったからだ。もうそれ。そして、私はそれを簡単に行うことができないことに気づきました。マージした変更は、Dev作業コピーにローカルの変更として表示されるだけで、簡単に削除することはできません(完全に元に戻すと、関連する変更が強制終了される可能性があるため、影響を受けるファイルへの変更を手動で元に戻す必要があります)その他の機能)。
書くほど、自分の質問に答えたような気がします。ブランチ戦略を変更する必要がありますか?環境ごとにブランチしますか?または、ブランチごとに個別の「共有開発」サイト(dev.mysite.com:4801、dev.mysite.com:4802)が必要ですか?それとも、これはあなたがこれをどのように扱うのですか?
tfs - 機能による分岐 - 利点/欠点?
私は現在、分岐とマージが最初からうまく機能していないプロジェクトに取り組んでいます。これを変えるために、私たちはそれを行うためのさまざまな方法について話し合ってきました. この種のことを行う方法については、誰もが独自の哲学を持っていると思います。したがって、ここにもあるようです。
これまで話してきたことの 1 つは、機能ごとに分岐することです。この特定の方法の良い点と悪い点について、私たちはたまたま非常に異なる見解を持っています。
以前にこれを行った経験はありますか? うまくいきましたか?問題がありましたか - どのような問題がありましたか?
この質問に正解がないことはわかっていますが、世界中の他の開発者の意見を聞くのは非常に興味深いと思います。