問題タブ [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 - gitリベースを元に戻す
gitリベースを簡単に元に戻す方法を知っている人はいますか?
頭に浮かぶ唯一の方法は、手動でそれを行うことです。
- git checkoutは、両方のブランチの親をコミットします
- 次に、そこから一時ブランチを作成します
- チェリーピックすべてのコミットを手作業で
- リベースしたブランチを手動で作成したブランチに置き換えます
私の現在の状況では、両方のブランチからのコミットを簡単に見つけることができるので、これはうまくいくでしょう(1つは私のもので、もう1つは私の同僚のものでした)。
しかし、私のアプローチは、最適ではなく、エラーが発生しやすいと思います(たとえば、自分のブランチを2つ使用してリベースしたとしましょう)。
何か案は?
明確化:私は、コミットの束が再生されたリベースについて話している。1つだけではありません。
git - git svn dcommit がローカル ブランチのマージ コミットの履歴を失うのはなぜですか?
で作成されたローカル git リポジトリがありgit svn clone
ます。ローカル ブランチを作成し、いくつかの変更を加え、マスターに切り替えます。問題がgit svn rebase
なければ、ブランチをマスターにマージします。次に、ツリーは次のようになります。
代替テキスト http://img.skitch.com/20090108-cjguu3hcci9x2k17mcftamw8f1.jpg
ときどき、後でgit svn rebase
もう一度リモートの変更を取得すると、a_branch がメインラインにマージされ、ツリーが次のようになるという事実が失われます。
代替テキスト http://img.skitch.com/20090108-kn3bn1qgi5ijw8ja5ijkd75pa3.jpg
何故ですか?止めてもいいですか?ブランチがマージされたことを簡単に確認する方法はありますか? または、完了したらブランチを削除して、マージされたものとマージされていないものを忘れないようにする必要がありますか?
git - Git リポジトリの最初の 2 つのコミットを結合しますか?
A、B、Cの 3 つのコミットを含む履歴があるとします。
2 つのコミットAとBを 1 つのコミットABに結合したいと思います。
私は試した
これにより、次の内容でエディターが開きます。
これを次のように変更します
次に、Git 1.6.0.4 は次のように述べています。
方法はありますか、それとも不可能ですか?
git - gitrebaseとgitpush:早送りではないのに、なぜ使用するのですか?
他の寄稿者が利用できるようにし、マスターと常に最新の状態に保つ必要があるブランチがあります。
残念ながら、「git rebase」を実行してからプッシュしようとすると、「非早送り」メッセージが表示され、プッシュが中止されます。ここでプッシュする唯一の方法は、-forceを使用することです。それは、私のブランチが公開され、他の人がそれに取り組んでいる場合、リベースする代わりに「gitmerge」を使用する必要があることを意味しますか?
git - Git で最初の 2 つのコミットをスカッシュしますか?
を使用git rebase --interactive <commit>
すると、任意の数のコミットを 1 つのコミットにまとめることができます。
コミットを最初のコミットに押しつぶしたくない場合を除き、これで問題ありません。それは不可能に思えます。
それを達成する方法はありますか?
適度に関連する:
関連する質問で、私は最初のコミットに対して押しつぶす必要がある別のアプローチを考え出すことができました。
興味がある場合: git: 最初にコミットを挿入し、他のすべてをシフトする方法は?
git - Gitでルートコミットの前にコミットを挿入しますか?
以前、git リポジトリで最初の 2 つのコミットをつぶす方法について質問したことがあります。
解決策はかなり興味深いものであり、git の他のいくつかのものほど気が遠くなるようなものではありませんが、プロジェクトの開発中に手順を何度も繰り返す必要がある場合は、まだ少し厄介です。
したがって、私は一度だけ苦労して、標準のインタラクティブなリベースを永遠に使用できるようにしたいと考えています。
したがって、私がやりたいことは、最初のコミットのみを目的として存在する空の初期コミットを作成することです。コードも何もありません。リベースのベースになるようにスペースを占有するだけです。
私の質問は、既存のリポジトリがある場合、最初のコミットの前に新しい空のコミットを挿入し、他のすべての人を前に移動するにはどうすればよいですか?
version-control - Starteam vcmutility を使用して選択的リベースを自動化する方法は?
Borland Starteam では、ファイルをピン留めするだけの非常に単純なリベースを自動化したいと考えています (つまり、他のすべてを無視します - ウィザードで行うことを前提としています)。
StarTeam ヘルプの「VCMUtility セッション オプション」を参照して、すべてを無視するように DefaultAction を設定したいと考えています。すべてをオーバーライドする明白な方法はわかりません (これはすべての組み合わせをリストすることの結合であるため、オプションではありません)。
設定ファイルの例はありますか? または、StarTeam でこれを行った経験はありますか?
dll - リベース - 優先ベースで odbcint.dll をロードできません
.exe
組み込みの Visual Studioのデフォルトのベース アドレスは 0x00400000 です。
d3dx9_30.dll
とodbcint.dll
(どちらも に存在する)のデフォルトのベース アドレス%windir%\system32
も 0x00400000 です。したがって、デフォルトでexe
は、これらの dll のいずれかにリンクする s は、実行時アドレスの衝突を起こします。OS は自動的にdll
別のベース アドレスに再配置し、必要に応じてポインターを修正します。VS デバッガーを接続すると、これが発生することがわかります。再配置されたモジュールには感嘆符のオーバーレイが表示されます。
システム DLL のリベースは、ユーザー システムで行うのがほぼ不可能であることは言うまでもなく、非常に悪い考えです。exe
そのため、このアドレスの衝突を防ぎ、実行時のリベースを防ぐために、s をリベースすることにしました。
クライアント EXE を別のベース アドレスに変更してd3dx9_30.dll
の邪魔にならないようにすると、正常に動作します。アドレスの競合、再配置、フィックスアップはありません。
しかし、サーバーの EXE を別のベース アドレスに変更して、サーバーodbcint.dll
の邪魔にならないようにすると、機能しません。
odbcint.dll
メモリ内の 0x17000 バイトであり、ベース アドレス 0x00400000 を優先します。EXE を 0x00420000、次に 0x00660000 に設定しようとしました。まだodbcint.dll
実行時に再配置されます。でプロファイリングしたところ、ロードdepends.exe
前にこのアドレスを要求しようとしているモジュールが他にないことが示されました。odbcint.dll
odbcint.dll
優先アドレスでロードできない理由を説明する理論を誰かが持っていますか?
Update
: vadump は、main() に入るまでに、0x00400000 ~ 0x00470000 のメモリが「UNKNOWN_MAPPED」として要求されていることを示しています。これが正確に何を意味するのかについて、これ以上の情報を見つけることができませんでした。一部のシステム dll がロード時にこのメモリを予約していると思われます。私の debug-fu は、どれが、なぜ、またはいつ正確に発見できるほど強力ではありません。
git - format-patch はかなりうまく機能し、より良い方法を探しています
リベースが機能しないように見えるほど異なる 2 つのブランチがあります。または、リベースの方法がわかりません。
一連のファイルが削除された「パブリック」ブランチがあります(フィルターブランチを使用)。ほとんどのコミットはデルタに関して一致しますが、コミット ID はすべて異なります。dev ブランチから public ブランチに変更をプルするために、かなりの数の方法を試しました...自分のやりたいことができるとは信じがたいですが、方法がわからないだけだと思いますやれ。いずれにせよ、これはうまく機能しますが、間違っているようです。
パブリック ブランチで不要なファイルをフィルターで分岐しないことを含むヒントや提案を歓迎します (ただし、それらを削除するにはどうすればよいでしょうか?)。
私のツリーは多かれ少なかれ次のように見えます:
t ≅ a、u ≅ c、v ≅ d、w ≅ e、x ≅ g。i、j、k は、移行したい新しいパッチです。