問題タブ [git-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 rebase
master と featureA の 2 つのブランチがあります。featureA ブランチでは、 CoolFile.m に一連の新しいコードを書きました。この機能は完成していないため、このコードはまだマスターにマージする準備ができていません。CoolFile は過去に非常に貧弱に記述されていたので、develop ブランチで一連の変更をコミットしました (ほとんどの場合、メソッドの並べ替え、コメントの追加、および空白の削除)。
ここで、クリーンアップされたコードの恩恵を受けることができるように、master から featureA をリベースします。問題は、すべてのメソッドが移動したため、リベースがすべての新しいコードを間違った場所に配置しようとしていることです。これを修正する最善の方法は何ですか? 機能のリファクタリングが完了するまで待つべきでしたか?
git - リベース後に別の上流から分岐したブランチ
プロジェクトをフォークしました。また、元のリポジトリを指すハンドル「upstream」と、フォークされたリポジトリを指す起点も追加しました。数日後、アップストリームからコンテンツを取得してリベースしようとしました。リベース後、分岐分岐メッセージが表示されます。私が使用したコマンドは次のとおりです。
これはどのような場合に発生しますか、それともここで何か間違ったことをしていますか?
psこれらのコマンドを実行している間、私はローカルマスターブランチにいました。変更やコミットを行っていないので、pull コマンドを使用できたと思います。
git - git rebase がマージコミットを強制終了しないようにするには?
git
以下の歴史を考えると:
master
ローカルブランチを の上にリベースしorigin/master
たいが、マージ コミットは保持したいG
。git rebase origin/master
単純にちょっとやってみたらのコミットメッセージでmaster
つぶれD..E
てG
コミットしてE
しまったので、マージした履歴が消えてしまいました。リベースを取得しながら、このマージを保持する方法はありますか? 明確にするために、私の意図した結果は次のとおりです。
git - 以前の git マージ後の git rebase
次のような状況があります。
- (Y) をメイン リポジトリ (X) から作成しました
clone
。Y に取り組んでいる人が多かったため、何もしませんでしたが、srebase
だけでしたmerge
。push
( ) Y を Xに配達したいときはrebase
、物事を素晴らしくきれいにするためにa を実行したいと考えています。
問題は、実行時に、前の手順rebase
で既に行ったすべてのマージを行うように求められることです。merge
実際にマージをやり直すことを意味するもののほかに、これに対する解決策はありますか?
競合するマージは既に解決しているので、かなり簡単だと思っていました。
git - 「git fetch」と「git rebase」、「git pull --rebase」の違いは何ですか?
ページを読むと、次のgit pull
ような厳しい警告が表示されますgit pull --rebase
。
これは潜在的に危険な操作モードです。歴史を書き換えますが、その歴史をすでに公開しているとはうまくいきません。git-rebase(1) を注意深く読んでいない限り、このオプションを使用しないでください。
このgit rebase
ページでは、多くの説明が表示されますが、この種の警告はありません。
さらに、私は何人かの人々がそう言っているのを見てきました
と同じです
他の人は少し違うと言いますが。
真実は何ですか?
git - Git: 生成されたコードの最初のコミットを行うのを忘れていました。これはリベースの仕事ですか?
小さな Rails 3 アプリをまとめて、私が取り組んでいるライブラリでどのように使用できるかを示しました。実行後rails new
、Gemfile、config、およびいくつかのクラスにいくつかの変更を加えました。次に、git にコミットしました。
私がすべきだったのは、最初に生成された構造をコミットしてから変更をコミットして、このライブラリの最小限のセットアップの良い差分を取得できるようにすることでした。
これをすべて再設定するすべての手順を実行する前に (おそらく 30 分程度ですが、エラーが発生する可能性があります)、別rails new
の を実行してコミットし、既存のコミットをその上にリベースして、以前に行った変更だけでコミットしますか (つまり、rails new
生成された構造を差し引いたもの)?
git がどのように正しく機能するかを理解していれば、これは実行可能に思えますが、git のコマンドの使い方を知っているかどうかはわかりません。
git - Git機能ブランチワークフロー
プロジェクトに貢献しようとしていますが、作業内容にgit-flowワークフロー(?)を使用したいと思います。develop
たとえば、リモートリポジトリ(github)のブランチをチェックアウトし、 2つの機能ブランチ(翻訳の場合はT、更新の場合はU)を設定しました。
これで、ブランチごとに、リポジトリメンテナにプルリクエストが行われ、upstream
リポジトリメンテナはそれらをすべて受け入れて、upstream/develop
ブランチにマージします。
私が最終的にするための正しい手順は何ですか?
それが私に必要なことだと何かが教えてくれgit rebase
ます。(私はWindowsを使用していることに注意してください)。
windows - リベースを行う方法--WindowsGUIでインタラクティブ
私には、Windows用のgitGUIインターフェースに夢中になっている同僚がいます。彼がコミットを押しつぶすことができるように、彼にインタラクティブにリベースしてもらいたいと思います。
を使用しTools->Add
て追加しようとしましgit rebase --interactive
たが、彼が試してみるとこれがハングします。クライアントはインタラクティブなリベースを処理できますか?できるWindows用の別のGUIクライアントはありますか?または、クライアントでコミットを潰す別の方法がありますか?
git - EmacsはGit-Rebaseでバッファを奇妙な前の状態に戻します
OS XでEmacs(23.3.1)を使用しています。EmacsのVC機能を使用せずに、ターミナルからgitコマンドを発行しています。ファイルが変更されたときに更新するようにEmacsを設定しています。これは、.emacsファイルの次の行で有効になっています。
これはいつも私が期待したように機能しました。プルすると、Emacsバッファーは、バッファーを終了してそれぞれを新たにロードしたかのように、マージまたは競合で更新されます。
最近、(git-pullを使用して)単にプルするのではなく、リベース(git-fetchを呼び出してからgit-rebaseを呼び出す)を開始しました。問題が実際にgit-rebaseに関係しているかどうかはわかりませんが、確かにそうではありませんでした。その前に問題に気づき、今すぐ実行してください。
だからここに問題があります:私はファイルを更新し、変更をコミットしgit commit -am "..."
、実行しgit fetch origin
、そして実行しますgit rebase origin/master
(時にはインタラクティブモードでコミットを一緒に押しつぶします)。リモートアップデートを取得したので、ファイルをもう少し編集してみると、最近の変更がすべて失われたように見えます。それが最初に起こったとき、私は非常に怒って、ファイルが完全に無傷であり、Emacsが変更前のファイルのバージョンに何らかの形で戻っただけであることに気付くまで、変更を失ったためにリベースアルゴリズムを呪いましたコミットしたばかりです。バッファを閉じてファイルを再度ロードすることでいつでも問題を解決できますが、これは毎回行うのが非常に面倒です。
誰かが問題が何であるかを知っていますか?