タグ付けされた質問 「rebase」

バージョン管理システムのブランチの開始点を変更する。


17
git rebaseを元に戻す
どうすれば簡単に git rebaseを元に戻すことができますか? 私の現在のアイデアは手動のアプローチのみです: git checkout 両方のブランチの親のコミット そこから一時ブランチを作成します git cherry-pick すべて手動でコミット リベースしたブランチを手動で作成したブランチに置き換える 私の現在の状況では、両方のブランチからのコミットを簡単に見つけることができるため、これでうまくいきます(1つは私のもので、もう1つは私の同僚のものです)。 しかし、私のアプローチは次善でエラーが発生しやすいと思います(自分の2つのブランチでリベースしたとしましょう)。 明確化:一連のコミットがリプレイされたリベースについて話している。1つだけではありません。
3179 git  rebase  git-rebase  undo 

20
リベースで無関係な履歴をマージすることをGitが拒否
中にgit rebase origin/development次のエラーメッセージGitリポジトリから示されています: fatal: refusing to merge unrelated histories Error redoing merge 1234deadbeef1234deadbeef 私のGitバージョンは2.9.0です。以前のバージョンでは正常に機能していました。 新しいリリースで強制フラグが導入された無関係な履歴を許可して、このリベースを継続するにはどうすればよいですか?
2150 git  rebase 

5
git cherry-pickは、「…38c74dはマージですが、-mオプションが指定されていません」と述べています。
私は私のマスターブランチにいくつかの変更を加え、それらをアップストリームにしたいと思っています。次のコミットをチェリーピックすると、gitが言うfd9f578に行き詰まります。 $ git cherry-pick fd9f578 fatal: Commit fd9f57850f6b94b7906e5bbe51a0d75bf638c74d is a merge but no -m option was given. gitが私に伝えようとしていることは何ですか?ここでチェリーピックを使用するのは適切ですか?マスターブランチには、上流のブランチで変更されたファイルへの変更が含まれているため、マージの競合が発生することは間違いありませんが、それらを修正しても問題はありません。どの変更がどこで必要かを知っています。 これらは私がアップストリームに持ち込みたいコミットです。 e7d4cff added some comments... 23e6d2a moved static strings... 44cc65a incorporated test ... 40b83d5 whoops delete whitspace... 24f8a50 implemented global.c... 43651c3 cleaned up ... 068b2fe cleaned up version.c ... fd9f578 Merge branch …
519 git  merge  rebase  cherry-pick 




2
競合するGitリベースの最中に「彼ら」の変更を取得するにはどうすればよいですか?
競合するブランチがあり、branch2はbranch1から分岐しています。 リベースしてみましょうと言うbranch2現在では、branch1競合を解決しながら、私が取ることにしたいくつかの「自分」(すなわちの(すべてではない)branch1として-である)ファイルを。それ、どうやったら出来るの? 私は試した: git checkout branch1:foo/bar.java fatal: reference is not a tree: TS-modules-tmp:foo/bar.java git checkout refs/heads/branch1:foo/bar.java fatal: reference is not a tree: refs/heads/TS-modules-tmp:foo/bar.java
349 git  rebase  git-rebase 

8
git / GitHubの履歴からフォルダーとその内容を削除する
私はGitHubアカウントのリポジトリで作業していましたが、これは私が偶然見つけた問題です。 いくつかのnpmパッケージがインストールされたフォルダーを持つNode.jsプロジェクト パッケージはnode_modulesフォルダーにありました そのフォルダーをgitリポジトリーに追加し、コードをgithubにプッシュしました(そのときのnpm部分については考えていませんでした) そのフォルダーがコードの一部である必要はないことに気づきました そのフォルダを削除してプッシュしました その場合、gitリポジトリの合計サイズは約6 MBでしたが、実際のコード(そのフォルダーを除くすべて)は約300 KBでした。 最後に私が探しているのは、gitの履歴からそのパッケージフォルダーの詳細を取り除く方法です。そのため、誰かがそれをクローンした場合、実際のファイルのみが取得される6MBの履歴をダウンロードする必要はありません。最後のコミットの時点で300KBになります。 私はこれの可能な解決策を調べ、これらの2つの方法を試しました gitリポジトリ(履歴)からファイルを削除する http://help.github.com/remove-sensitive-data/ https://gist.github.com/1588371 Gistは、スクリプトを実行した後、そのフォルダーを削除したことを示し、その後、50の異なるコミットが変更されたことを示したように機能するように見えました。しかし、そのコードをプッシュすることはできませんでした。私がそれをプッシュしようとしたとき、それは言いましBranch up to dateたが、50のコミットがに変更されたことを示しましたgit status。他の2つの方法も役に立ちませんでした。 そのフォルダーの履歴が削除されたことが示されていても、ローカルホストでそのリポジトリのサイズを確認したところ、まだ約6MBでした。(私もrefs/originalフォルダーを削除しましたが、リポジトリのサイズの変更を確認できませんでした)。 私が明確にしたいのは、コミット履歴(これが私が起こったと思う唯一のことです)だけでなく、gitがロールバックしたいと仮定しているそれらのファイルを取り除く方法があるかどうかです。 これに対する解決策が提示され、私のローカルホストに適用されているが、そのGitHubリポジトリに複製できない場合、そのリポジトリを複製し、最初のコミットにロールバックしてトリックを実行し、それをプッシュすることができます(つまり、gitがまだこれらすべてのコミットの履歴がありますか?-別名6MB)。 私のここでの最終目標は、基本的にgitからフォルダーの内容を削除する最良の方法を見つけることです。これにより、ユーザーは6MB相当のものをダウンロードする必要がなく、モジュールフォルダーに触れたことのない他のコミットも可能です(これはかなり良いことです)それらのほとんどすべて)gitの歴史の中で。 これどうやってするの?
318 git  github  rebase  git-rebase 

3
gitでデフォルトで高速転送をオフにできますか?
コミットを表示したくないとgit mergeいうよりもgit rebase、使用したいと思う時期を本当に考えることはできません。デフォルトで高速転送をオフにするようにgitを構成する方法はありますか?オプションがあるという事実は、方法があることを意味しているように見えますが、ドキュメントではそれを見つけることができないようです。--ff

15
Gitのルートコミットの前にコミットを挿入しますか?
前に、gitリポジトリで最初の2つのコミットを押しつぶす方法について尋ねました。 ソリューションはかなり興味深いものであり、gitの他のいくつかのものほど心をゆがめるものではありませんが、プロジェクトの開発に沿って何度も手順を繰り返す必要がある場合、これらのソリューションはまだよくある痛ましいことです。 したがって、私はむしろ苦痛を一度だけ経験し、それから標準のインタラクティブなリベースを永遠に使用できるようにしたいと思います。 私がやりたいことは、最初の目的のためだけに存在する空の初期コミットを作成することです。コードも、何もありません。スペースを確保するだけで、リベースのベースになります。 私の質問は、既存のリポジトリがある場合、最初のコミットの前に新しい空のコミットを挿入し、他の全員を前にシフトするにはどうすればよいですか?

5
Hg:gitのリベースのようなリベースを行う方法
Gitではこれを行うことができます: 1.新しい機能の作業を開始します。 $ git co -b newfeature-123#(ローカル機能開発ブランチ) いくつかのコミットを行う(M、N、O) マスターA --- B --- C \ newfeature-123 M --- N --- O 2.アップストリームマスターから新しい変更をプルします。 $ git pull (ff-commitsで更新されたマスター) マスターA --- B --- C --- D --- E --- F \ newfeature-123 M --- N --- O 3.マスターをリベースして、私の新機能を 最新の上流の変更に対して開発することができます: (newfeature-123から) $ git rebase master …
207 git  mercurial  dvcs  rebase 

8
Gitリポジトリの最初の2つのコミットを結合しますか?
3つのコミットA、B、Cを含む履歴があるとします。 A-B-C 2つのコミットAとBを1つのコミットABに結合したいと思います。 AB-C 私は試した git rebase -i A 次の内容でエディターが開きます。 pick e97a17b B pick asd314f C これを次のように変更します squash e97a17b B pick asd314f C それからGit 1.6.0.4は言う: Cannot 'squash' without a previous commit 方法はありますか、これは単に不可能ですか?

5
Gitマージコミットのリベース
次のケースを考えてみましょう: 私はトピックブランチでいくつかの作業をしており、マスターにマージする準備ができています: * eb3b733 3 [master] [origin/master] | * b62cae6 2 [topic] |/ * 38abeae 1 マスターからマージを実行し、競合を解決すると、次のようになります。 * 8101fe3 Merge branch 'topic' [master] |\ | * b62cae6 2 [topic] * | eb3b733 3 [origin/master] |/ * 38abeae 1 マージには少し時間がかかったので、別のフェッチを実行すると、リモートマスターブランチに新しい変更が加えられています。 * 8101fe3 Merge branch 'topic' [master] |\ | * b62cae6 2 …

3
git rebase、「ローカル」と「リモート」の追跡
git rebaseを実行するとき、競合を解決するときに「ローカル」と「リモート」で何が起こっているのかを理解するのが難しいことがよくあります。あるコミットから次のコミットにサイドを入れ替えるような印象を受けることがあります。 これはおそらく(間違いなく)まだ適切に理解していないためです。 リベースするとき、誰が「ローカル」で誰が「リモート」ですか? (私は競合の解決にP4Mergeを使用しています)
174 git  conflict  rebase 

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.