2016-10-06 2 views
1

В моем хранилище, я добавил подмодуль поКак предотвратить мерзавец просит меня совершить изменения подмодуля

git submodule add -b master https://something.something.git something 

Теперь, когда я слышу есть обновление в субмодуля (удалено) я

git submodule update --remote 

И подмодуль обновляется локально. И если я где-то клонирую свое репо, сразу получаю подмодуль в его последнем состоянии.

Но если я бег git status на моем хранилище после того, как я обновил подмодуль, я получаю

$ git status 
On branch master 
Your branch is up-to-date with 'origin/master'. 
Changes not staged for commit: 
    (use "git add <file>..." to update what will be committed) 
    (use "git checkout -- <file>..." to discard changes in working directory) 
    (commit or discard the untracked or modified content in submodules) 

     modified: something (new commits, modified content) 

no changes added to commit (use "git add" and/or "git commit -a") 

Почему мне нужно совершить, что некоторые изменения произошли в подмодуле, когда я отслеживание последней ветви в любом случае ? Как я уже сказал, если я буду клонировать репо где-то еще, я все равно получаю обновленные подмодули, так что это сообщение о статусе?

Есть ли способ сделать git игнорировать, что произошли изменения в подмодуле?

ответ

3

Git фактически игнорирует изменения в подмодуле, , но записывает, какая версия субмодуля подходит для этой фиксации.

Например, если вы находитесь на ветке v1 вашего репо и v1 подмодуля, тогда идите вперед и сделайте v2 подмодуля и v2 вашего репо (которое только совместимо с v2), тогда, если бы вы были для возврата вашего репо обратно в v1, также нужно будет вернуться к использованию v1 подмодуля. Git не отслеживает фактические изменения, которые произошли до v1 и v2 подмодуля, но просто фиксирует указатель, на который выполняется подмодуль.

+0

После некоторого тестирования я понимаю, что ошибался в том, как это работает. – gromit190

0

см

git help status 

попробовать

git status --ignore-submodules=all 

Смотрите документацию для других опций '--ignore-подмодуль'

Но, чтобы получить выгоду от SuperRepository, вы должны скопируйте изменения в подмодули, как и файлы. Таким образом, записи фиксации, которые подписали подмодуль, были активны вместе с файлами SuperRepository.

Таким образом, если вам нужно вернуть SuperRepos, подмодуль может также вернуться к той же точке.

Смежные вопросы