[解決済み] プル後にコミットした (プッシュしていない) 変更を新しいブランチに移動させる
質問
私はかなりの量の作業 ("Your branch is ahead of 'origin/master' by 37 commits.") を行いました。
master
. これらのコミットは、私のローカルマシンにのみ存在し
origin
にプッシュしているのですが、他の開発者が
origin/master
そして、私はその変更を撤回しました。
37のローカルコミットを新しいブランチに遡及して移動させるには? ドキュメントによると、どうやら
git rebase --onto my-new-branch master
または
...origin/master
を実行する必要がありますが、どちらもエラー "fatal: Needed a single revision" が表示されるだけです。
man git-rebase
には、リビジョンを提供することについては何も書かれていません。
rebase
また、そのサンプルもそうなっていないため、このエラーを解決する方法がわかりません。
(なお、これは ではなく と重複している。 Git で、既存の未コミットの作業を新しいブランチに移動させる または ローカルの未コミットの変更を別の Git ブランチにマージするには? これらの質問は、ローカルでコミットされた変更ではなく、ローカルの作業ツリーのコミットされていない変更を扱っているからです)。
解決方法は?
まだどこにもコミットをプッシュしていないし、ブランチの履歴を書き換えるのも自由だからです。
origin/master
. まず、私なら
git fetch origin
を確認するために
origin/master
が最新であることを確認します。 仮に現在
master
が、できるはずです。
git rebase origin/master
にないすべてのコミットを再生します。
origin/master
上に
origin/master
. rebase のデフォルトの動作は、マージコミット (例えば、あなたの
git pull
を導入したのでしょう)、あなたの各コミットによって導入されたパッチを単に
origin/master
. (その結果に基づいて、新しいブランチを作成することができます。
git branch new-work
... そして
master
に戻す。
origin/master
:
# Use with care - make sure "git status" is clean and you're still on master:
git reset --hard origin/master
でこのような枝の操作をする場合
git branch
,
git reset
など。でコミットグラフを頻繁に見るのは便利だと思います。
gitk --all
または同様のツールで、すべての異なる参照先がどこを指しているのかを理解しているかどうかを確認するためです。
あるいは、そもそも master の位置からトピックブランチを作成することもできます (
git branch new-work-including-merges
をリセットし
master
と同じです。 しかし、トピックブランチには
origin/master
で、あなたはまだ変更をプッシュしていないので、履歴を整理するためにリベースをすることをお勧めします。 (また、最終的にトピックブランチを master にマージする際にも、変更がより明確になります)。
関連
-
[解決済み] 複数のgitコミットを元に戻すには?
-
[解決済み] Gitブランチをmasterにマージする最も良い(そして最も安全な)方法は何ですか?
-
[解決済み] 2つのリビジョン間でどのファイルが変更されたかを表示する
-
[解決済み] Git のローカルコミットを破棄する
-
[解決済み] 現在のGitブランチをmasterブランチにする
-
[解決済み] リモートにないトラッキングブランチを削除
-
[解決済み] detached HEADとmaster/originの連携はどうすればいいですか?
-
[解決済み] 前のコミットを複数のコミットに分割する
-
[解決済み] Gitによるhotfixブランチのfeatureブランチへのマージ
-
[解決済み] Git で最新のコミットを新しいブランチに移動する
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] 現在のブランチのトラッキング情報がありません。
-
[解決済み] masterブランチと'origin/master'が分岐している、'undiverge'ブランチの方法は?
-
[解決済み】GitHubのメッセージの意味: メールのプライバシー制限のためプッシュが拒否されました。
-
[解決済み】ローカルに変更があるにもかかわらず、git pushが「すべて最新」と言う
-
[解決済み] [Solved] originにプッシュしようとすると、Gitが「No such remote 'origin'」と言うのはなぜですか?
-
[解決済み] git stashを元に戻す
-
[解決済み] ブラウンアウトの一環として、パスワード認証が一時的に無効になっています。代わりに個人用アクセストークンを使用してください[重複]。
-
[解決済み] ローカルの未コミットの変更を別のGitブランチにマージするには?
-
[解決済み] Git で最新のコミットを新しいブランチに移動する
-
[解決済み】Gitで、既存の未コミットの作業を新しいブランチに移動する