4

私はgitが初めてです。

git 上のプロジェクトの履歴の一部を誤って削除してしまいました。ここで、ヘッドを最新の安定版リリースに設定したいと思います。問題は、HEADを設定したいツリーにコマンドからアクセスできないことですが、ブラウザからアクセスできます。

SHA を使用して特定のツリーを複製する方法を知っている人はいますか?

git reset SHA を試しましたが、SHA が認識されません。も試しgit clone -b SHA repo.gitましたが、どちらもうまくいきませんでした。

4

2 に答える 2

7

さまざまな概念を混同します。

複製するたびに、リポジトリ全体を複製します。(特定の「ツリー」を複製する方法はありません。)

リポジトリは主に多くのコミットで構成されています。それらはあなたがチェックアウトできるものです。各コミットは、その親コミットを認識しています。これにより、履歴ツリーが形成されます。

コミット自体には、すべてのファイルを含むディレクトリツリーが含まれています。


通常、「中央」リポジトリをホストするある種のサーバーがあります。

最初にリポジトリをクローンします。これにより、ホスト上にその中央リポジトリの完全なコピーが作成されます。(すべてのブランチとコミットを含む。)

その後、通常はローカル リポジトリとのみ対話します。


あなたのエラー メッセージ (残念ながら一部のコメントにのみ隠されています) から、あなたのプロジェクトはサブモジュールを使用しているようです。(プロジェクトに完全に異なるリポジトリを含める方法。)

これは少しトリッキーになる傾向があります。http://git-scm.com/book/en/Git-Tools-Submodulesをご覧ください。

于 2013-10-26T07:42:12.760 に答える
4

この「最新の安定版リリース」はすでにサーバーにプッシュされていますか? git fetchはいの場合は、 aおよびを実行できますgit checkout SHA

この特定のコミットがローカル履歴のみにある場合は、 agit reflogを実行してコミットを特定します。次に、目的のコミットをチェックアウトします。

于 2013-10-26T05:35:57.487 に答える