web-dev-qa-db-ja.com

ローカルブランチをgithubの状態に戻すにはどうすればよいですか?

ローカルリポジトリの間違ったブランチに対して少し開発を行いました。次にgit branchを実行せずにgit checkoutを実行しました。コマンドは次のようになります。

#On branch development
git branch release-v0.2.0b
# changes and several commits
git Push Origin release-v0.2.0b

そして、それは私が間違ったブランチに取り組んでいることに気づいたときです。私のgithubリポジトリは適切な状態ですが、ローカルリポジトリは適切な状態ではありません。開発からの変更をrelease-v0.2.0bにマージしましたが、開発をgithubリポジトリの状態にリセットしたいと思います。これについて行くための最良の方法は何ですか?

19
Jason Baker

状況を確実に理解するために、リリースブランチを作成しましたが、チェックアウトしなかったため、コミットはローカルリポジトリの開発ブランチにあります。変更をrelease-v0.2.0bブランチにマージしたとのことですが。

その場合、保存する必要のある開発ブランチに他のコミットがない場合は、開発ブランチのローカルコピーを削除して、Originから再度チェックアウトしてください。

まず、現在のブランチと現在のブランチを確認します。

git branch -av

次に、開発ブランチから切り替えて、削除できるようにします。

git checkout Origin/development
git branch -D development

それは実際にはブランチにあなたを残しません、しかしあなたがオリジンからそれを再びチェックアウトするときあなたはブランチに戻るでしょう:

git checkout Origin/development -b development

スナップショット内のファイルが不必要にかき回されないように、オリジン/開発をチェックすることをお勧めします。

15
Jamey Hicks

さらに迅速に、ローカルブランチを特定のリモートにリセットできます。

git reset --hard remote/branch

リモコンの名前を「リモート」する場所
リモートブランチの名前を「ブランチ」する場所

69
Thanasis Pap

変更するローカルリリースブランチに戻り、githubからプルします。

git checkout local-branch-that-refers-public-v0.2.0b
git pull Origin release-v0.2.0b

次に、元に戻したい以前のコミットにコミットしたローカルブランチのブランチポインタをリセットします。

git checkout release-v0.2.0b
git reset HEAD^
2
Lakshman Prasad