2016-11-30 5 views
1

私の$HOMEgitとバージョン管理していますが、プロンプトが常にgitという情報を表示するわけではありません。リポジトリファイルが `git status`に表示されます

私は私が私の$HOMEgitを使用する場合のエイリアスの設定をしている:

alias gith='git --git-dir=/home/ravi/.githome --work-tree=/home/ravi' 

リポジトリディレクトリ.githome自体はgith statusに現れてすべきではありませんが、それは次のとおりです。

~$ git --git-dir=/home/ravi/.githome --work-tree=/home/ravi status -s 
M .dotfiles 
M .githome/COMMIT_EDITMSG 
M .githome/index 
M .githome/index.lock 
M .githome/logs/HEAD 
M .githome/logs/refs/heads/master 
M .githome/refs/heads/master 
M .local/share/fzf 
M bin 
M lib 
M prj/sample_app 

ディレクトリ.githomeを次のように無視しようとしています。

~$ grep .githome .gitignore 
/.githome/ 
~$ cat .githome/.gitignore 
* 
件の

質問:

  1. 私の二つが作業ファイルを除外していないのはなぜ?
  2. なぜリポジトリディレクトリを明示的に除外する必要がありますか?
+1

これは、あなたが間違った場所にあなたのGitリポジトリを初期化し、またはその内側があったべきではないフォルダがあったかもしれないように聞こえます。 '.gitignore'がうまくいかない理由について、これらのフォルダ/ファイルをあなたのリポジトリに既にコミットしていれば、' .gitignore'はその事実の後には動作しません。 –

答えて

2

gitignoreがリポジトリからファイルを削除できないため、すでにgithomeをコミットしていないことを確認してください。

git rm -rf --cached . 
git add . 

これを実行します。あなたのリポジトリは、gitignoreファイルに関してすべてをクリアして引き出すことで、再び動作します。

+0

ありがとう、歓迎! –

+0

@TomHaleありがとう! :D私はずっとそれを使ってきましたが、私はいくつかの質問に答える時が来たと決めました。 –

+0

それは人間の知識の発展に捧げられた素晴らしいコミュニティです。おかげであなたの部分を遊んでください:) –

1

.githomeが前のコミットですでに追加されていたことが判明しました。 @ティムさんのコメントにしてKingAlandyDyの答え@基づき

は、私は次のことをやった:

gith rm -r --cached .githome/ 
+2

「時間を遡って」(古いコミットをチェックアウト)してください。あなたが古いコミットをチェックアウトしたためにファイルがインデックスに戻ったら、(あなたの通常の「マスター」に戻って)「時間内に進む」ように頼むと、Gitは、 "ああ、私は現在のバックインタイムコミットではなく、新しいコミットでこれらのファイルを持っているので、今私は作業ツリーから削除する必要があります。リポジトリ内のすべてのコミットを再ハッシュする場合は、filter-branchおよびBFGのhttp://stackoverflow.com/q/307828/1256452の回答を参照してください。 – torek

関連する問題