0

よし、これがシナリオだ。

私はかなり悪い初心者の間違いを犯しました。私はいくつかのコードに取り組んでいましたが、開発でチェックアウトしてテストするための開発ブランチを作成しませんでした。だから私は自分のマシンのマスターブランチにこれらの変更をすべて加えましたが、それらはまだ壊れています (開発中)。上司は、本番環境でアプリにいくつかの変更を加えることを望んでいます。

これを行う方法についての私の考えは次のとおりです。

  1. プロジェクトのディレクトリの名前を変更して、バックアップを作成します
  2. git clone 最後のリモート バージョンを自分のマシンに戻します
  3. 彼が望むわずかな変更を行い、再デプロイ/コミットします
  4. アプリの古いバージョンで変更したものを整理し、新しく複製した master ブランチの dev ブランチに入れます。

これについて何か考えはありますか?私は今、本番環境を台無しにしたくありません。また、コードが安定していた場所に戻すために追跡するにはあまりにも多くの変更を加えました。

4

2 に答える 2

1

そんなに苦労する必要はありません:

git checkout master              # get the 'bad' version
git branch bad-master            # make a new branch called 'bad-master', cut off master's current state
git fetch                        # make sure you're up to date with the remote
git reset --hard origin/master   # reset your master branch to origin/master's state
<work work work>
git checkout bad-master          # when you're ready to work on bad-master again

git reset --hard origin/masterチェックインしていない作業ツリー内の作業は破棄されることに注意してください...まだコミットしていない作業がある場合は、必ずgit stashそれを行ってください。

于 2013-04-16T17:10:18.107 に答える
0

これは完全に正常な状況であり、簡単に回復できます。

あなたがする必要があるのは次のとおりです。

  1. 現在のバージョンのマスターを指す新しいブランチを作成します

    git checkout -b my-feature-branch
    
  2. マスターをオリジン/マスターと同じものにリセットします

    git checkout master
    git reset --hard origin/master
    

それでおしまい。これで、マスターは機能開発を行う前と同じになり、後で開発を再開するためにチェックアウトできる機能ブランチが確保されました。

于 2013-04-16T17:10:05.777 に答える