7

リポジトリに完了していない変更を誤ってコミットしました。ローカルの変更を失いたくないのですが、リポジトリ内のファイルを、変更をコミットする前の場所に戻したいと思います。

4

5 に答える 5

9

これを行う機能があるかどうかわからない。しかし、私がすることは

  1. ファイルを取得して、別のディレクトリ(デスクトップなど)にコピーします。

  2. SVNディレクトリで、その特定のファイルを以前のバージョンに戻します。
  3. そのバージョンをコミットして、HEADバージョンにします。
  4. デスクトップからファイルを取得してコピーし直し、上書きしてチェックインしないでください
于 2010-06-21T20:05:16.937 に答える
2

唯一の選択肢は、変更をバックアップしてからサーバーで逆マージを実行してから、変更を作業コピーにコピーして戻すことです。

于 2010-06-21T20:04:34.500 に答える
0

SVNで「switch」コマンドを使用します。それは簡単で、知っておく価値のあるトリックです。

  1. 初めての場合は、ディレクトリ全体を安全な場所にコピーするか、WinZipを使用します(ディレクトリ構造を保持するにはオプションを使用します)。
  2. プライベートブランチ(プライベートブランチはありますか?ない場合は作成します)で、リポジトリブラウザを使用して問題のブランチのコピーを作成します。
  3. PCで「スイッチ」(TortoiseSVNでは「スイッチ」と呼ばれます)を実行して、ローカルフォルダーがプライベートブランチを指すようにします。
  4. チェックインしてください。
  5. 元のブランチに切り替えます。
  6. 元に戻します。
于 2010-06-22T01:21:29.057 に答える
0

コミットした特定のファイルを外部フォルダーに保存することをお勧めします。次に、リポジトリ内のファイルを元に戻してコミットします。これにより、コミットする前の状態になります。次に、保存したファイルを取得して置き換え、コピーにローカルの変更が含まれるようにします。

于 2010-06-21T20:05:38.227 に答える
0

アップストリームリポジトリの履歴を編集する以外に(この場合は実行できますが、編集しないでください)、これを実現する最も簡単な方法は次のとおりです。

  1. ローカルで変更を元に戻す
  2. 取り消された変更をコミットする
  3. ローカルで変更をやり直す

偶発的なコミットがあったと仮定しましょう(またはを$REV使用して調べることができます)。次に、次の手順を実行します。svnversionsvn log

svn merge -c -$REV .
svn ci -m "Revert r$REV"

最後のコマンドの最後の行には、新しいリビジョン番号が表示されます。

Committed revision $NEW_REV.

以下を使用して、変更をローカルで復元します。

svn up # Necessary if your repository has mixed revisions (e.g. due to externals).
svn merge -c $NEW_REV .

通常 $NEW_REVは単に$REV+1である必要があります。)

終わり。

于 2019-01-04T11:01:12.463 に答える