2016-09-07 16 views
0

FYI:私はgitを(私はあまり重要ではない)に押し込むためにbitbucketを使用しています。git checkout古いコミット、さらに新しいコミットを作成する

私は変更を加えたプロジェクトに取り組んでいましたが、マスターにいくつかの大きなバグがあることを認識するために、元のブランチで特定の古いコミットをチェックしました。

git checkout commit_name

はその後、私はさらに作業を開始し、現在、私は次の新しいコミットを保つだけでなく、それ以前(バギー)マスターを失わないためにどのように失われています、追加およびコミット続けました。基本的にはトラックに戻る方法。

P.S.私はgit push -u origin masterを使ってみましたが、Everything up-to-dateを返し、何もbitbucketにプッシュされません。

+0

方法に関する詳細な情報を見つけることができますか? 'git push -force -u origin master'? – VinayVeluri

+0

@VinayVeluriこれはコミットを上書きしないと思っていますね。 –

+0

@VinayVeluriはまだ動作しません、私は 'git push --force -u origin master'を試しました、同じ出力を与えます。 –

答えて

1

あなたはdetached headにいると思います。 git checkout commit_nameを実行したときに、commit_nameのコードをチェックアウトするためにローカルリポジトリを更新しましたが、あなたはどのブランチにもありません。あなたはフリースタイルであり、限られた行動しかできません。 masterブランチに戻る必要があります。

  1. git checkout -b branch_tmpbranch_tmp
  2. に以前と現在行わコミットであなたの masterブランチを更新するために、マスター
  3. git checkout master
  4. git merge branch_tmpの上にあなたの最後のコミットを適用するために、新しい作成したブランチbranch_tmp
  5. git rebase masterに移動します
  6. git push origin master
  7. git branch -d branch_tmp t oあなたのリポジトリをきれいにしてください

どのステップでも、実行された別のアクションを理解するために履歴を記録することをお勧めします。

あなたは力push` `について切り離さヘッドthere

関連する問題