0

ここの開発者は、gitの使用に推奨される手順を実行し、サブモジュールのコミットを失いました。このエラーは、彼女がスーパープロジェクトをプッシュしたが、サブモジュールはプッシュしなかったことを意味することを理解していますが、彼女はこれを拒否し、彼女が私に見せたコマンドの履歴を持っています。これを引き起こしたと思われる手順は次のとおりです。将来これを避けるように彼女に言う方法を理解したいと思います。

  • 彼女はサブモジュールとスーパープロジェクトにコミットしました。
  • 彼女は自分の枝に最新のものを入れました。これにより、サブモジュールの競合が発生し、実際のコンテンツの競合は発生しませんでした
  • 彼女はそれを解決するためにスーパープロジェクトでgitcommit-aを実行しました。(このタイプの競合についても理解しておくと役立ちます)。
  • 彼女は別のブランチからマージを実行し、両方の場所でコミットしました。
  • 彼女は、各サブモジュールにcdし、プッシュを実行してから、スーパープロジェクトでプッシュを実行するグ​​ローバルプッシュを実行しました。

この時点で、サブモジュールの元のコミットでコミットされた彼女の作業はから消えましたgit log

4

1 に答える 1

1

彼女がサブモジュールの競合を解決したときにコミットが失われたと思います。この質問の指示に従って取得できます。

または実行

gitk --all $( git fsck --no-reflog | awk '/dangling commit/ {print $3}' )

(これはこの質問からです)

元のリポジトリでのみ実行し(git cloneぶら下がっているコミットを削除します)、前にバックアップを作成します。

于 2011-07-14T15:45:38.253 に答える