13

私はgitの初心者ですが、.gitignoreへの変更はリポジトリに対して「遡及的に」処理されず、将来の「gitadd*」コマンドなどに影響を与えることに気づきました。ファイルがリポジトリに追加されたら、手動で削除する必要があります。

この時点で、このリポジトリを完全に削除して、最初からやり直します(構成の保存など)。

これは簡単に可能ですか、それとも大きな問題を引き起こしますか?バックアップしてから.gitフォルダーを削除して、最初からやり直すことはできますか?

また、gitを始めたばかりの他の初心者には、このビデオをご覧になることをお勧めします。gitの使い方ではなく、内部でgitがどのように機能するかを説明しているので、目を見張るものがあります。4歳以上の場合はgitというタイトルです。 http://blip.tv/open-source-developers-conference/git-for-ages-4-and-up-4460524

解像度:

皆様のご意見、ご指導に感謝申し上げます。

.gitディレクトリを削除して再起動しようとしました。方法はわかりませんが、最初からやり直そうとすると、その履歴を完全に認識して起動し、要するに、以前のすべてのコミットと追跡を含めるように再作成されました。

私はそれを放っておいた-そして再編成とリストラと掃除に着手した。フォルダ構造を変更すると(不要なプロジェクトやフォルダなどが削除されます)、その過程で、追跡したくない(ただしツリーに存在させたい)ファイルを削除するために何ができるかがわかりました。

私はすべてのフォルダーなどを効果的に移動しました。これをコミットすると、gitは移動/削除されたファイルの追跡を削除しました。しかし、私が今持っていた.gitignoreのために、移動されたフォルダー内のファイルを取得または追跡しませんでした。

私が行っていたことの多くは、まったく新しいgitリポジトリを開始するための準備でした。プロセスの後半で、私は気づきませんでした-追跡したくないもののほとんどは、レポのために効果的に削除されました。それで、起こったことを取り、さらにいくつかの調整を行いました。そして今はすべてうまくいっています。

もう一度-ありがとう。私はgitが大好きです!

4

3 に答える 3

17

私はいつもこれをしています。作業ディレクトリに入り、LinuxまたはMacで

rm -rf .git

それから私は

git init
git add .
git commit -m "first time load"

それはあなたが必要とするすべてです

于 2013-03-06T12:57:09.003 に答える
15

バックアップしてから .git フォルダーを削除して、最初からやり直すことはできますか?

はい。これですべてです。

非常に風変わりなセットアップでは、作業ディレクトリの外に .git フォルダーがある場合があります。それ以外の場合、.git フォルダーには git に関するすべての情報が含まれます。それを削除すると、すべての履歴、git-metadata などが削除されます。

リモートがある場合、同じ .git フォルダーに保存されているため、それらへのリンクは失われます。たとえばGitlabサーバーのリモート自体は、明らかになくなっていません。したがって、クリーンな環境に同じリモートを再度追加すると、履歴が再表示され、マージの競合が発生する可能性があります。

編集: 質問全体を読んでいない可能性がある人のために:警告: これにより、すべての git history が削除されます

于 2013-03-06T10:43:00.967 に答える
4

これを処理する最善の方法は、git archiveコマンドを使用することです。これにより、バージョン管理されていないバージョンのツリーが tar アーカイブにエクスポートされます。エクスポートするブランチを選択し、リポジトリ内で次を実行します。

git archive master | tar -x -C ~/target/directory

その後、リポジトリ フォルダーを完全に削除し、アーカイブを抽出して新たに開始できます。最後に、次のように、解凍したフォルダーに新しいリポジトリを作成できます。

git init
于 2013-03-06T10:46:20.457 に答える