после "git rm", почему этот файл все еще присутствует, когда сотрудник тянет? - PullRequest
0 голосов
/ 13 октября 2009

Я хочу удалить файл в проекте, и я хочу, чтобы этот файл был удален для всех остальных, также работающих над проектом, когда они тянут.

Когда мы начинаем, все сотрудники имеют файл «testfile» в своем дереве и находятся в одной ветви.

Если я удаляю файл с:

% git rm testfile
% git commit -a
% git push

Тогда мой коллега тянет этот коммит:

% git pull
% ls testfile
TestFile

Почему этот файл все еще здесь и что я могу сделать, чтобы избавиться от него. Die!

Ответы [ 2 ]

9 голосов
/ 13 октября 2009

Я должен сказать «это работает для меня». Я думаю, вам нужно опубликовать более подробную информацию о вашей настройке, точном использовании и любых выводах или сообщениях об ошибках, которые вы получаете, потому что это должно работать.

$ git --git-dir=common.git init --bare
Initialized empty Git repository in /rmtest/common.git/

$ git clone common.git a
Initialized empty Git repository in /rmtest/a/.git/
warning: You appear to have cloned an empty repository.

$ git clone common.git b
Initialized empty Git repository in /rmtest/b/.git/
warning: You appear to have cloned an empty repository.

$ cd a
$ touch testfile
$ git add testfile
$ git commit -m initial
[master (root-commit) be09b47] initial
 0 files changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 testfile

$ git push origin master
Counting objects: 3, done.
Writing objects: 100% (3/3), 213 bytes, done.
Total 3 (delta 0), reused 0 (delta 0)
Unpacking objects: 100% (3/3), done.
To /rmtest/common.git
 * [new branch]      master -> master

$ cd ../b
$ git pull
remote: Counting objects: 3, done.
remote: Total 3 (delta 0), reused 0 (delta 0)
Unpacking objects: 100% (3/3), done.
From /rmtest/common
 * [new branch]      master     -> origin/master

$ git rm testfile
rm 'testfile'

$ git commit -m "removed testfile"
[master 53b13de] removed testfile
 0 files changed, 0 insertions(+), 0 deletions(-)
 delete mode 100644 testfile

$ git push origin master
Counting objects: 3, done.
Writing objects: 100% (2/2), 202 bytes, done.
Total 2 (delta 0), reused 0 (delta 0)
Unpacking objects: 100% (2/2), done.
To /rmtest/common.git
   be09b47..53b13de  master -> master

$ cd ../a
$ git pull
remote: Counting objects: 3, done.
remote: Total 2 (delta 0), reused 0 (delta 0)
Unpacking objects: 100% (2/2), done.
From /rmtest/common
   be09b47..53b13de  master     -> origin/master
Updating be09b47..53b13de
Fast forward
 0 files changed, 0 insertions(+), 0 deletions(-)
 delete mode 100644 testfile

$ ls
.git/
2 голосов
/ 13 октября 2009

У меня было такое же поведение при работе с неправильной веткой. Убедитесь, что вы продвигаетесь к той же ветке, с которой тянет ваш коллега. Попробуйте "git branch -a", чтобы показать локальные и удаленные ветви и в конечном итоге удалить неправильные (удаленные или локальные) ветви (git branch -r -d для удаления удаленной ветви)

Если ничего не помогает и вы не можете найти решение, клонируйте новый репозиторий из вашего (или ваших коллег) рабочего репозитория и протестируйте его снова.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...