私の質問に対する同様の答えを見つけることができませんでした。
状況:
ローカルで GIT を使用 (git バージョン 1.7.3.1.msysgit.0)
リモート リポジトリは SVN (バージョンがわからない)
問題:
SVN リポジトリのクローンを作成し、フォルダーを追加し、それを git と SVN にコミットし、フォルダーの名前を変更し (git に通知せずに)、git にコミットし、SVN にコミットできなくなります。
問題の手順 (SVN リポジトリには、ルート フォルダーに main.as というファイルが 1 つあります)
- SVN リポジトリからのクローンブランチ (現在、ローカルに 1 つのファイルがあります)
- ローカルで git にコミット
git add .
します (を含む) - ファイルを含む oldFolderを作成する
- ローカルで git にコミット
git add .
します (を含む) - SVNにコミットする
- oldFolderの名前を変更-> newFolder (IDE または手動で名前を変更 - しない
git-mv
) - ローカルで git にコミット
git-add .
します (を含む) - SVN へのdcommit (SVN への変更をコミットしているのは私だけなので、SVN リベースは必要ありません)
問題: git-svn dcommit が応答します:
oldFolder/file.txt: needs update
update-index --refresh: command returned error: 1
私が試したこと:
- stash、commit、dcommit、stash apply (同じこと: 更新が必要)
- stash、rebase、stash apply、commit、dcommit (同じこと: 更新が必要)
- stash、rebase、stash apply、commit、stash、dcommit (同じこと: 更新が必要)
半機能したものは、次のように呼び出すことでした:
svn rm -r oldFolder
しかし、これはSVNで終わりました...名前を変更するか削除したいoldFolder
のですが(この場合、履歴を失うことは気にしません)。newFolder
oldFolder
ローカルの git マスター/ブランチを反映するために SVN リポジトリが必要です...
git コマンドを使用せずにファイルの名前を変更するのはなぜですか?
私は大きなファイル構造を扱っており、古いコードのリファクタリングに使用している IDE は、複数のフォルダーとファイルの名前を変更して、上記のシナリオを引き起こしています。削除されたすべてのフォルダーを追跡して git rm を呼び出すことはできません。