3

サードパーティのプロジェクトを追跡されていないファイル (.git フォルダーなし) としてダウンロードし、その中で新しい git リポジトリを開始し$git initて、変更を追跡しました。

後で、このプロジェクトには、ダウンロードした裸のファイルと同じ状態の公開 git リポジトリが既にあることがわかりました (最初のコミットと同じです)。

私がすべきだったこと:

リモートリポジトリを複製し、新しいローカルブランチを作成してからリモートにプッシュしました。

私が実際にしたこと:

ファイルを取得し、その中でクリーンなローカル git リポジトリ (マスター) を開始し、いくつかのコミットを行いました。

私がしたいこと:

ローカルの初期コミットをリモート リポジトリのブランチに変更し (その親を変更)、既に行った変更を保持します。

これは可能だと思いますが、Git について十分な知識がありません。

ありがとう!

4

2 に答える 2

3

さて、次のことを試すことができます(あなた次第で、 以外の名前を使用したいかもしれませoriginん):

  1. git remote add origin url_of_project_repository
  2. git fetch origin
  3. git rebase FETCH_HEAD

git が実際にベースを把握し、新しいリモートが実際には同じファイルのセットであり、変更以外をスキップすることで偽のマージ競合を解決する可能性が非常に高くなります。

それが適切に機能しない場合は、「実際の」リポジトリを別の場所にクローンし、その上に変更を再適用することもできます (非常に手動の DIY の方法からいくつかの方法まで、これを行う方法は無数にあります)。より自動化された手段)。

于 2012-04-20T13:05:19.263 に答える
2

リポジトリをリモートとして元のリポジトリに追加し、コミットを取得して、リベースを試みることができます。

于 2012-04-20T13:05:21.890 に答える