web-dev-qa-db-ja.com

gitリポジトリを再起動する方法

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

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

これは簡単に可能ですか、それとも大きな問題を引き起こしますか?バックアップしてから.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が大好きです!

10
JimH

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

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

一部の非常にエキゾチックなセットアップでは、作業ディレクトリの外に.gitフォルダーがある場合があります。ただし、それ以外の場合、.gitフォルダーにはwrtgitにあるすべての情報が含まれます。これを削除すると、すべての履歴、git-metadataなどが削除されます。

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

編集:質問全体を読んでいない可能性がある人のために:警告:これはすべてのgit履歴を削除します

12
berkes

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

rm -rf .git

それから私はします

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

必要なのはそれだけです

14
JohnNY

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

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

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

git init
4
dionyziz