コミット履歴がないgitリポジトリを、履歴を保存したリポジトリにマージします

アギロー

git://www.calatk.org/calatk.gitgitリポジトリクローンを作成する代わりに、C ++プロジェクトのソースコードダウンロードしまし

このソースコード(git履歴なし)を使用して、gitリポジトリを作成し、しばらくの間コードに取り組み、すべての作業/ブランチをhttps://github.com/agirault/CalaTKのgithubにプッシュしました

ここで、コードをcalatk.gitの元のgitリポジトリマージするプルリクエストを作成したいと思います

リポジトリに以前のコミットからのトラックがないので、どうすればこれを実行できるのか疑問に思いました。それ以降、calatk.orgのこのリポジトリは更新されていないはずです。つまり、最後のコミットは、githubで利用できる最初のコミットと同じになります。

クリス

公開されたGitHubリポジトリを、元のプロジェクトの履歴を含むリポジトリに置き換えてもかまわないと仮定して†、これが私が試すことです。

  1. アップストリームリポジトリを2番目のリモートとして追加します。

    git remote add upstream <clone-url>
    
  2. アップストリームからフェッチ:

    git fetch upstream
    

    これにより、を含む新しいブランチポインタが生成されますupstream/masterupstream/master既存のコミットと履歴を共有しないでください。つまり、2つのルートコミットがあります。1つはアップストリームプロジェクトからのもので、もう1つはフォークからのものです。

  3. 作業をアップストリームコミットにリベースします(master心配する必要があるだけだと仮定します)。

    git checkout master
    git rebase upstream/master
    

    この時点で、ルートコミットは1つだけにする必要があります。1つはアップストリームプロジェクトからのものです。古いルートコミットのハッシュ(ルートコミットではなくなったはず3cee904です)は、アップストリームプロジェクト()に表示されているものと一致する必要があります。

    のようなものを使用git show 3cee904して、コミットが正しいことを確認できます。

  4. 新しい履歴をGitHubに強制的にプッシュします。

    git push --force origin master
    
  5. 貢献ガイドラインに従って、変更をアップストリームリポジトリに送信します。

    GitHubまたはBitBucketにないため、プルリクエストを受け入れることができない可能性があります(これは独自の機能です)。git format-patchただし、プッシュアクセスまたは使用を要求できるはずです。アップストリームのメンテナはfetch、パブリックGitHubリポジトリから取得することもできます。

重要な注意: GitHubプロジェクトに共同編集者がいる場合、これは最善の選択肢ではない可能性があります。Gitで共有コミットを変更することは一般的に推奨されていません。あなたのGitHubリポジトリは事実上個人のリポジトリであるように思われるので、私はそれをお勧めします。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

Gitリポジトリを新しいリポジトリに複製する-コミット履歴なし

分類Dev

履歴なしでgitリポジトリを複製する

分類Dev

gitは、数回のコミット前に削除された大きなサブディレクトリをリポジトリ履歴から削除します

分類Dev

すべての履歴コミットを保持しながら、GitリポジトリをtfsGitに移行します

分類Dev

コミット履歴を保持しながらgitリポジトリを元に戻すにはどうすればよいですか?

分類Dev

git:あるリポジトリの履歴を別のリポジトリのディレクトリにコピー(チェリーピック)します

分類Dev

履歴を破壊せずに、リポジトリをそのまま(マージせずに)コミットしてプッシュします

分類Dev

履歴のないgitリポジトリをコピーする

分類Dev

履歴を保持しながら、特定のファイルをあるgitリポジトリから別のgitリポジトリにコピーする方法

分類Dev

古いgit履歴を新しいリポジトリに追加する

分類Dev

コミットを保持しながら、残りの履歴を集約しながら、ブランチを別のリポジトリに移動します

分類Dev

履歴が異なる別のリポジトリからコミットをリベースする方法は?

分類Dev

2つのGitリポジトリをマージし、履歴を保持します

分類Dev

コミット履歴が異なるリポジトリ全体にパッチを適用する

分類Dev

フォルダからサブモジュールリポジトリを作成し、そのgitコミット履歴を保持します

分類Dev

git履歴を書き換えて、リポジトリを新しいトップレベルディレクトリに保存します

分類Dev

git履歴を書き換えて、リポジトリを新しいトップレベルディレクトリに保存します

分類Dev

単一のブランチとその履歴を新しいリポジトリにコピーします

分類Dev

巨大なGitリポジトリから履歴を削除する

分類Dev

リモートリポジトリからタグをマージし、タグ履歴を保持しますか?

分類Dev

リポジトリ履歴に関連する適切な Git マージ

分類Dev

コミット履歴が異なるパブリック/プライベートgitリポジトリ

分類Dev

履歴をgitリポジトリからサブツリーに移動します

分類Dev

Git:ファイルの履歴をあるリポジトリから別のリポジトリにコピーします

分類Dev

最近の履歴のみを新しいGitリポジトリにプッシュする

分類Dev

リポジトリに存在しなくなったファイルの履歴からコミットを削除する方法

分類Dev

ファイルの履歴やリリースを壊すことなく、2つのGitリポジトリをマージします

分類Dev

ローカルのコミット履歴を破棄し、オリジンのコミット履歴に置き換えます

分類Dev

新しいGitリポジトリを古いリポジトリに追加して、両方の履歴を結合します

Related 関連記事

  1. 1

    Gitリポジトリを新しいリポジトリに複製する-コミット履歴なし

  2. 2

    履歴なしでgitリポジトリを複製する

  3. 3

    gitは、数回のコミット前に削除された大きなサブディレクトリをリポジトリ履歴から削除します

  4. 4

    すべての履歴コミットを保持しながら、GitリポジトリをtfsGitに移行します

  5. 5

    コミット履歴を保持しながらgitリポジトリを元に戻すにはどうすればよいですか?

  6. 6

    git:あるリポジトリの履歴を別のリポジトリのディレクトリにコピー(チェリーピック)します

  7. 7

    履歴を破壊せずに、リポジトリをそのまま(マージせずに)コミットしてプッシュします

  8. 8

    履歴のないgitリポジトリをコピーする

  9. 9

    履歴を保持しながら、特定のファイルをあるgitリポジトリから別のgitリポジトリにコピーする方法

  10. 10

    古いgit履歴を新しいリポジトリに追加する

  11. 11

    コミットを保持しながら、残りの履歴を集約しながら、ブランチを別のリポジトリに移動します

  12. 12

    履歴が異なる別のリポジトリからコミットをリベースする方法は?

  13. 13

    2つのGitリポジトリをマージし、履歴を保持します

  14. 14

    コミット履歴が異なるリポジトリ全体にパッチを適用する

  15. 15

    フォルダからサブモジュールリポジトリを作成し、そのgitコミット履歴を保持します

  16. 16

    git履歴を書き換えて、リポジトリを新しいトップレベルディレクトリに保存します

  17. 17

    git履歴を書き換えて、リポジトリを新しいトップレベルディレクトリに保存します

  18. 18

    単一のブランチとその履歴を新しいリポジトリにコピーします

  19. 19

    巨大なGitリポジトリから履歴を削除する

  20. 20

    リモートリポジトリからタグをマージし、タグ履歴を保持しますか?

  21. 21

    リポジトリ履歴に関連する適切な Git マージ

  22. 22

    コミット履歴が異なるパブリック/プライベートgitリポジトリ

  23. 23

    履歴をgitリポジトリからサブツリーに移動します

  24. 24

    Git:ファイルの履歴をあるリポジトリから別のリポジトリにコピーします

  25. 25

    最近の履歴のみを新しいGitリポジトリにプッシュする

  26. 26

    リポジトリに存在しなくなったファイルの履歴からコミットを削除する方法

  27. 27

    ファイルの履歴やリリースを壊すことなく、2つのGitリポジトリをマージします

  28. 28

    ローカルのコミット履歴を破棄し、オリジンのコミット履歴に置き換えます

  29. 29

    新しいGitリポジトリを古いリポジトリに追加して、両方の履歴を結合します

ホットタグ

アーカイブ