Как следить за файлом в git - PullRequest
7 голосов
/ 16 мая 2011

Я пару раз удалял файл в git, но он продолжает появляться снова, когда другие ветви объединяются;Я думаю, что-то вроде этого:

                      o--  a topic  --o
                     /                 \
o-- [create file] --o-- [delete file] --o-- [file exists again]

Мне особенно трудно понять, что происходит, так как мы работаем с git, используя "внутренние релизы", то есть я создаю ветки релизов, которые я нажимаю, которые тянет наш менеджер релизови сливается с мастером, и я вытаскиваю его мастера.

Как я могу узнать, где я (или кто-то еще) удалил файл и какие слияния (я), которые повторно представили файл?Спасибо!

Ответы [ 2 ]

2 голосов
/ 16 мая 2011

Когда вы удаляете файл в ветви, а затем объединяетесь с другой ветвью, которая содержит файл, файл остается удаленным.Теперь, даже если вы удалили файл в ветви и слили эту ветку с другой, она все равно будет удалена.

git merge: удаление файлов, которые я хочу сохранить!

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


Есть --follow в git log

- следуйте

Continue listing the history of a file beyond renames (works only for a single file).

Но я не уверен, что это то, чтоВы ищете здесь.Вы также можете просмотреть History Simplification в git log руководстве - http://git -scm.com / docs / git-log

0 голосов
/ 16 мая 2011

Происходит следующее: когда вы объединяете ветку topic, она содержит блоб / объект, которого нет в ветке main, поэтому при слиянии будет создан файл, содержащий состояние, в котором он находился в ветке topic. Чтобы остановить это поведение, я бы слил другой способ (слияние main в topic) или перебазировал topic в main. Проблема возникает, если вы измените файл в topic, тогда он попытается применить изменения к main, что приведет к восстановлению файла.

...