7

プロジェクトを開始する前に新しいブランチに切り替えるのを忘れていました。別のブランチが私の作業をレビューできるように、変更を新しいブランチ (マスターではなく) にプッシュする必要があります。私の作業は終了しましたが、ローカル マスターに保存されています。

変更を新しいブランチに移動するにはどうすればよいですか?プッシュすると、マスター ブランチが混乱するのではなく、新しいリモート ブランチが作成されます。

4

3 に答える 3

15

まず、ローカル マスター ブランチですべての作業を完了したので、ヒントまたはローカル マスターを指す新しい機能ブランチを作成します。

$ git checkout -b newfeature master

次に、マスターをサーバーにそのまま残します(リモート)

$ git checkout master
$ git reset --hard origin/master
于 2012-04-26T13:59:31.393 に答える
1

マスターと同じポイントに新しいブランチを作成します。

マスターをチェックアウトし、現在のブランチを巻き戻したいコミットにハードリセットします。

于 2012-04-26T13:50:31.267 に答える
0

何が起こったのかわかりませんが、KurzedMetal による git コマンドを実行しても、望ましい結果が得られませんでした。

そのため、ハード リセットをリモート マスターに戻す前にバックアップを作成し、変更したファイルをエクスポートしたにもかかわらず、変更をやり直す以外に選択肢はありませんでした。その後、エクスポートとバックアップの両方に、私のローカル リポジトリとまったく同じコンテンツが含まれていたため、価値がありませんでした。したがって、私の変更は失われました。どちらも変わらないと 思っていました。

幸いなことに、プッシュの問題を始める前に、変更を隠していました。
: 新しく作成されたファイルは、ハード リセット後に削除されませんでした。

修正する手順は次のとおりです。

  1. 変更が完了しました (まだmasterにあります)
  2. リモート マスターから新しい変更をプルし、競合を修正します
  3. TortoiseGit -> Stash save. 他の隠し場所と区別するためにメッセージを入力してください -> OK
  4. TortoiseGit -> Show log. 最新のマスターを選択し、右クリックして を選択しReset、次にHard option-> [OK ] を選択します。
  5. TortoiseGit -> Create Branch. 名前を入力してボックスにチェックを入れますSwitch to new branch-> OK
  6. TortoiseGit -> Stash list. 保存したスタッシュを選択 - > OK
  7. さまざまなファイルのリストが表示されます。ファイルごとに相違点を比較し、変更内容を新しくリセットされたファイルに再度適用します。
  8. 完了したら、ローカル フォルダー内を右クリックします。Git Commit -> "BranchName" ...上記が表示さTortoiseGitれます。最初のを選択してください
  9. コミットするファイルを確認し、適切な説明を入力します -> OK
  10. これで準備完了pushです。TortoiseGit -> Push、ローカル ブランチが選択した名前であることを確認します。そうでない場合は、5. でブランチを切り替えるのを忘れており、6. から続行する必要があります。

これが他の人に役立つことを願っています。覚えておくべきこと:新しい機能/マイナーでない変更を開始するときは、新しいブランチに切り替えてください

于 2012-04-27T09:36:59.260 に答える