2017-05-27 11 views
0

githubの私のプロジェクトでは大きな間違いを犯しました。私は開始時に.gitignoreを追加するのを忘れていました。今、私は.gitignoreを追加しました。そこにはたくさんのファイルとディレクトリがあります。これまでに多くのコミットを行いましたが、コマンドgit filter-branch --tree-filter 'rm -f passwords.txt' HEADを使用して、不要なファイルをすべてrepoから削除したいと考えています。このコマンドは、以前のすべてのコミットからpassword.txtを削除しますが、私は2つの質問があります:1).gitignoreにあるすべてのファイルを削除したいのですが? rmの後に書かなければならないものは何ですか? 2)このコマンドを入力すると、 "master branchと 'origin/master'が分岐しています。git pull ...."を使用してください。私はこのコマンドを使用しなかった、ちょうどgit push -uを使用する。私のブランチで何が起こったのか教えてください。なぜそれは発散ですか? P.あなたの.gitignoreリストファイルのみ(いないディレクトリやパターン)コマンドが rm -f `cat .gitignore` は、私はあなたの.gitignoreをコピーすることをお勧めする必要がある場合は、マスター前のコミットからすべてのファイルを削除するgit filter-branch

答えて

0
  1. - 私は私のプロジェクトで、単独で作業し、1つの分岐のみを持っていますgitツリーからファイルを削除して、フィルタ処理中にファイルを変更しないようにします。だから、: - git filter-branch 2番目の質問については cp .gitignore ../gitignore git filter-branch --tree-filter 'rm -f `cat ../gitignore`' rm ../gitignore

  2. (他のコミット-編集コマンドのように - など、リベース、改正)新しいコミットを作成し、全体の新しい枝本当に、あなたはあなただけのフィルタブランチをプッシュすることはできません。 git push -f origin masterまたはgit push origin +masterのいずれかを押す必要があります。

+0

答えてくれてありがとう、私は、Visual Studio .NETプロジェクトを使用して、私は、プロジェクト内の一部のフォルダ '猫../ gitignore' -rf –

+0

RMがあるため、また、ディレクトリを削除するために必要があります。 '-r'は '再帰的'を意味します。 – phd

+0

もう一度感謝しますが、あなたのコマンドは動作しますが、私は前のコミットからすべてのファイルとディレクトリを削除しようとします。コマンドの後に次のhttp://i.imgur.com/wGtYm6g.pngを取得します。また、私はcpコマンドで.gitignoreのコピーをしました –

関連する問題