23

クリーンなバージョン管理されていないコードを既存のgitリモートリポジトリに関連付ける必要があります。

私は自分の状況をよりよく説明します。私のプロジェクトはsvnからgitに移動されました。新しいgitリポジトリと同期する必要がある古いコード(コミットするものは何もありません)を含むsvnローカル作業コピーがあります。リポジトリのクローンを作成することはできますが、無視された多くの構成ファイルを手動で復元する必要があり、それを回避します。

そこで、すべての.svnディレクトリを削除し、gitリモートリポジトリを使用してコードを追跡しました。

それを行う方法はありますか?

4

4 に答える 4

34

フェッチする前に、作業ディレクトリが履歴に存在することを確認するために、作業ディレクトリをコミットします。(プロジェクトのルートフォルダーにいることを確認してください)

git init
git add -A
git commit -m "my latest'

今、私たちはそれを持っています

git remote add origin url-to-your-remote
git fetch origin

今、私たちはリモートからの歴史を持っています

git reset origin/master

現在のコミットはリモートからの最新のものです

git add -A
git commit -m "Committed my state"

次に、現在の作業ディレクトリを次のコミットのスナップショットとして使用します。

git push -u origin master

変更をプッシュアップして、ブランチを追跡します。

キーはオプションresetのないコマンドです。--hardリモートから取得したものにブランチを向けている間、作業フォルダを同じに保ちます。

于 2012-10-24T16:55:36.770 に答える
15

OK、 AdamDymitrukEugeneSajineの回答に基づいて、私の質問に対する正しい回答を投稿します。サポートしてくれてありがとう:)

  • .svnまず、作業コピーディレクトリ内のすべてのディレクトリを削除します。
  • 作業コピーディレクトリの新しいgitリポジトリを初期化します

    cd /path/to/my/project
    git init
    
  • gitリモートリポジトリを追加してフェッチします

    git remote add origin url-to-your-remote
    git fetch origin
    
  • 作業コピーをリモートリポジトリにリセットする

    git reset --hard origin/master
    

最後に、ローカルリポジトリはリモートリポジトリと同期されます。

于 2012-11-13T14:03:44.040 に答える
3

あなたが本当にあなたが言っていることを意味するならば、シーケンスは次のようになります:

cd {your-project}
git init
git remote add {remote_name} {address}
git fetch {remote_name}

次に、リモートにあるブランチの1つからローカルブランチを作成できます。たとえば、次のようになります。

git branch master {remote_name}/master

次に、コードを追加できます。

git add {files}

また

git add .
git commit

アップデート:

OPは、問題のコードが古く、コミットするものがないことを指定しているため、理由もなく状況全体が過度に複雑になっているようです。OPは、新しいリポジトリのクローンを作成し、それを使用する必要があります。無視する構成は、プロジェクトポリシーに従ってやり直す必要があります(.gitingoreがリポジトリに保存されているかどうかなど)

于 2012-10-24T15:22:29.050 に答える
0

次のように動作しますか?私は自分のプロジェクトの1つでそれを試しましたが、うまくいきました。

1)バージョン管理されていないコードを含むディレクトリとは別の場所にgitリポジトリのクローンを作成します。

2)(1)の結果として作成されたディレクトリから、バージョン管理されていないコードを含むディレクトリに.gitフォルダをコピーします。

これは、AdamDymitrukが上記の回答で行ったことを効果的に達成しました。

于 2018-04-13T16:36:48.183 に答える