Git pull并不遵守.gitignore

时间:2015-09-25 16:31:32

标签: git

我对服务器的拉动有点困惑,因为我有一个.gitignore,设置为忽略用户生成的文件。基本上我是开发和推送到github,然后使用pull进行部署,但我一直在删除用户生成的内容。

.gitignore看起来像这样:

audio/*/*/*.mp3
audio/*/*/*.wav
audio/*/*/*.ogg

videos/*/*/*.mp4
videos/*/*/*.mov
videos/*/*/*.mpeg

images/*/*/*.jpg
images/*/*/*.jpeg
images/*/*/*.png
images/*/*/*.gif
images/*/*/*.bmp

images/*/*/*/*.jpg
images/*/*/*/*.jpeg
images/*/*/*/*.png
images/*/*/*/*.gif
images/*/*/*/*.bmp

我对git并不是特别了解,所以我知道我做错了什么。

我做错了什么?

2 个答案:

答案 0 :(得分:3)

.gitignore用于在您尝试提交文件时忽略文件。从存储库中提取时不会看到它。

答案 1 :(得分:0)

我没有观察到你所说的喋喋不休的行为:

环境1:

$ mkdir test
$ cd test
$ git init .
Initialized empty Git repository in /*****/test/.git/
$ cat > .gitignore <<'EOF'
> audio/*/*/*.mp3
> audio/*/*/*.wav
> audio/*/*/*.ogg
> 
> videos/*/*/*.mp4
> videos/*/*/*.mov
> videos/*/*/*.mpeg
> 
> images/*/*/*.jpg
> images/*/*/*.jpeg
> images/*/*/*.png
> images/*/*/*.gif
> images/*/*/*.bmp
> 
> images/*/*/*/*.jpg
> images/*/*/*/*.jpeg
> images/*/*/*/*.png
> images/*/*/*/*.gif
> images/*/*/*/*.bmp
> EOF
$ touch test.txt
$ mkdir -p audio/one/two/
$ touch audio/one/two/three.mp3
$ touch audio/one/two/three.txt
$ git add -A :/
$ git commit -m "Initial commit"
 3 files changed, 19 insertions(+)
 create mode 100644 .gitignore
 create mode 100644 audio/one/two/three.txt
 create mode 100644 test.txt
$ git remote add origin https://***********@bitbucket.org/***********/testrepo.git
$ git push -u origin --all

环境2:

$ git clone https://***********@bitbucket.org/***********/testrepo.git
$ cd testrepo
$ touch test2.txt 
$ git add -A :/
$ git commit -m "Commit two."
$ git push

环境1:

$ touch audio/one/two/three.wav
$ git pull
$ ls -l audio/one/two/
total 0
-rw-r--r--  1 ***********  staff  0 Sep 25 11:37 three.mp3
-rw-r--r--  1 ***********  staff  0 Sep 25 11:37 three.txt
-rw-r--r--  1 ***********  staff  0 Sep 25 11:57 three.wav

文件仍在那里。