問題タブ [rebase]
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 - Hg: git のリベースのようなリベースを行う方法
Git では、次のことができます。
Mercurial で同じことを行う方法を知りたいのですが、答えを求めて Web を精査しましたが、見つけた最高のものは次のとおりでした: git rebase - can hg do that
そのリンクは2つの例を提供します:
1.これを認めます:(例のリビジョンを自分の例のリビジョンに置き換えます)
リベース前の MNO をマージされていないヘッドとして残し、更新されたメインラインから分岐することを表す 3 つの新しいコミット M'、N'、O' を作成することを除けば、それほど悪くはありません。
基本的に問題は、私がこれで終わることです:
これは、削除する必要があるローカルの不要なコミットを残すため、良くありません。
- 同じリンクからの他のオプションは
これにより、目的のグラフが得られます。
しかし、これらのコマンド (6 つすべて!) は、コマンドよりもはるかに複雑に見えます。
これが Hg の唯一の同等物なのか、それとも Git のような単純な他の方法があるのか知りたいです。
git - 同じ変更が両方のブランチに手動で適用されたときにリベースを強制する方法は?
私のリポジトリは次のようになります。
ここで、「M - BCDE - N」は手動で (残念ながら!) 適用された変更であり、個別のコミット「A - B - C - D - E」とほぼ同じです (ただし、GIT はこれらの変更が同じであることを認識していないようです)。次の構造をリベースして取得したいと思います。
つまり、branch:release を branch:master とまったく同じにして、マスターの HEAD からフォークしたいのです。
しかし、ブランチ リリースで「git rebase master」を実行すると、GIT は多くの競合について報告し、リベースを拒否します。どうすればこれを解決できますか?
これに関するその他の説明: マスターの HEAD からゼロから branch:release を「再作成」したいと思います。あと、branch:release はもう git pull してる方が多いので、git reset + git push -f が使えません。
git - リベース後にコミットを実行する必要がありますか?
機能ブランチを別の機能ブランチにリベースしたところ(すべてをマスターのヘッドにリベースする準備として)、かなりの数のトリッキーなマージ解決が含まれていました。
リベースはコミットとしてどこかに自動的に保存されますか?
それらの変更はどこにありますか?gitk、またはで何も表示されませんgit log --oneline
。
(リベース後にブランチをマージして戻す場合も同じ質問です。)
git - リベースと、プッシュされたコミットをリベースすることの意味
すでにプッシュしたコミットをリベースすべきではないとよく言われます。その意味は何ですか?
git - すべてのサブブランチを含む git rebase ブランチ
git のすべてのサブブランチでブランチをリベースすることは可能ですか?
特定のコミットをマークするために、ブランチをクイック/可変タグとしてよく使用します。
今、コミットを変更/言い換えるために、rebase -i
master
上に行きたいorigin/master
featureA-finished^
後git rebase -i --onto origin/master origin/master master
、私は基本的に履歴を次のようにしたい:
しかし、私が得るものは:
それを回避する方法はありますか、または新しいリベースされたコミットでブランチを再作成することに固執していますか?
svn - SVNマージしてからリベース
SVNブランチの変更をトランクに再統合してリベースする適切な方法を見つけようとしています。
を使用して、ブランチからトランクに変更を正常にマージしました。
次に、トランクから開発ブランチを再作成する必要があります。これを行うための最良の方法は何ですか?
背景
基本的にリリーストランクがあり、リリースの時間になるまですべての開発がブランチでダウンするため、プロセスはトランクへの変更のマージ、リリース、ブランチのリベースでさらに変更を行い、プロセスを繰り返します。
git - git pull では競合が発生するが、 git pull --rebase では発生しないとはどういう意味ですか?
私だけがアクセスできるリポジトリからプルしています。私の知る限り、1 つのリポジトリからプッシュしただけです。数回、私はそれにプッシュしようとしましたが、これを得ました:
一般的に、それは私がしなければならないことを意味しますgit pull
(ただし、すべての変更は早送り可能である必要があります)。を実行するgit pull
と、競合が発生します。を実行するgit pull --rebase
と、正常に動作します。私は何を間違っていますか?
mercurial - Mercurial でのリベース後にダングリング チェンジセットを取り除く
一見無関係に見える別のリポジトリを現在のリポジトリに取得するためにを実行しました。hg update --force <repo>
hg pull --update --force <other repo>
その後、他のレポの最初の変更セットをマージしました(名前を「正しく」変更するため)。
2 番目の変更セットから開始する他のリポジトリのリベースは、最初の変更セット (ここではリビジョン 5431) をリポジトリにぶら下げたままにしました。
物事を整理するために、リビジョン 5431 を取り除きたいのですが、どうすればいいですか?
ありがとう。
git - ブランチ上のファイルがマスター上の 2 つのファイルに分割されたときに変更をマージする
これは基本的に、マスター上の大規模なクラス C が 2 つの小さなクラス C1 と C2 にリファクタリングされた結果です。その後、C は C2 のサブクラスになり、下位互換性のためにスケルトン バージョンに削減されました。その時点から、マスターには C、C1、C2 が含まれていました。そのマスター コミットで git は、C の名前が C1 に変更されたと述べました。ブランチは、これが発生する前に最後に更新されました。(関係するファイルを視覚化するのに役立つ場合は、すべての C++ コード)
明らかに、ブランチを master にリベースしようとしたときに、解決する必要のある競合がありました。
いつものように、mergetool を使用しました。
したがって、mergetool は次のように表示されます。ローカルでは、C のスケルトン バージョンを使用しています。ベースとリモートでは、C に多くの変更が加えられています。
C のスケルトン バージョンは Local に存在するため、Base と Remote からの変更は実際には C1 に入り、C はそのままにしておく必要があると結論付けました。
私の質問は、どうすればいいですか?
git - git:svndcommitに関してマージ/リベースする正しい方法
私には次のような状況があります(主に、最初は本当に考えていなかったためです。正確には、これを行った方法では問題ないと思っていましたが、今はつまずきました):
これによりA
、とgit-svn
は同じ状態(まったく同じファイルとファイルコンテンツ)になりますが、履歴に共通点はありません。
そして私は欲しい:
B1
または、少なくとも、svn dcommitを実行するときは、コミットを取得したいだけBn
です。
dcommitがどのように機能するのか正確にはわかりません。だから私がこのようなものを手に入れるとしたら:
dcommitは私が望むように動作しますか?もしそうなら、それは簡単に取得できるからです(コンテンツ的には同じであるため、にマージA
することは問題なく機能します)。git-svn
それとも、ある種のリベースを行う必要がありますか?A
しかし、私はにリベースしたくありgit-svn
ませB1
んBn
。