0

私は git でいくつかのことを試してみたいと思っていますが、作業リポジトリで何も台無しにしたくありません。

物事を安全に保つために、私が作業しているベアレポのコピーを作成しました。このレポから、すべてのプッシュとタグ付けを行うつもりです。私が使用した:

cp --preseve -r original.git copy_of_original.git

悪いコミットなどを元に戻すことができることは理解していますが、これらすべての元に戻されたコミットをリポジトリに残したくないし、リファクタリングもしたくないため、複製された裸のリポジトリから作業したいだけです。

問題は、次を実行することです。

git diff --name-only master@{"5 day ago"} master

そして戻ってきます:

warning: Log for 'master' only goes back to Fri, 15 Feb 2013 20:42:43 -0500.

私が触れたくない元のレポには、実際に5日前に変更されたファイルがあります。

コピーしたリポジトリで実行するgit logと、これらの 5 日前の変更の記録はすべて残っています。

ここで何が起こっているのですか?

リポジトリの独立したコピーを作成するより良い方法はありますか?

更新 1

私は自分の質問が不正確であることに気づきました。私は走った:

git diff --name-only master@{"5 day ago"}

以下から生成されたディレクトリ内:

git clone copy_of_original.git clone_of_copy
4

3 に答える 3

1

構文は、以下に引用されているgit-rev-parseドキュメントのセクションで説明されているように、 reflogからの@{5 days ago}情報に依存しています。Reflogはリポジトリに対してローカルであり、クローン、フェッチ、またはプッシュによって転送されることはありません。or オプションを使用しない限り、これはによって表示される情報ではありません。git log-g--walk-reflogs

ベアリポジトリは通常、reflogを保持しないため、リポジトリのコピーにもその情報は含まれません。

<refname>@{<date>}, e.g. master@{yesterday}, HEAD@{5 minutes ago}
    A ref followed by the suffix @ with a date specification enclosed in a brace pair
    (e.g.  {yesterday}, {1 month 2 weeks 3 days 1 hour 1 second ago} or {1979-02-26
    18:30:00}) specifies the value of the ref at a prior point in time. This suffix may
    only be used immediately following a ref name and the ref must have an existing log
    ($GIT_DIR/logs/<ref>). Note that this looks up the state of your local ref at a
    given time; e.g., what was in your local master branch last week. If you want to
    look at commits made during certain times, see --since and --until.
于 2013-02-16T02:17:15.810 に答える
0

各クローンには、.gitディレクトリ内にリポジトリの完全なコピー(単一のブランチ、マスターがある場合)が含まれています。各コピーは他のコピーから独立しており、ローカルコミットによって、または他のリポジトリからプルしたときに変更されます。

したがって、再帰コピーは完全に問題ありません。

表示される内容については、詳細と、実行するコマンドのより完全なリストを提供する必要があります。

于 2013-02-16T02:12:18.837 に答える
0

のクローンを作成すると、ものの一部のみがコピーされます。コピーすると、元のリポジトリと同じバージョンになります。それはうまくいきgitます; バックアップと復元などを行うことができます。

于 2013-02-16T02:46:23.297 に答える