Вы предполагаете, что разные части вашего рабочего дерева могут быть проверены по-разному. Это неверно.
(Вы можете использовать git checkout
для обновления определенных файлов рабочего дерева в соответствии с версией из другого коммита, но это не меняет того, какая версия извлечена; это просто означает, что у вас есть незафиксированные изменения в этом файле, которые в случае фиксации приведет к тому, что этот файл будет соответствовать версии другого коммита.)
Данная ветвь (или, в состоянии отдельного заголовка, данный коммит) извлекается для всего репо. .gitignore
не имеет к этому никакого отношения, и независимо от того, куда вы идете в своем рабочем дереве, оно будет одинаковым. Если вы видите ситуацию, когда cd
изменяет то, в какой ветке вы находитесь, это потому, что вы изменили свое рабочее дерево.
Не используйте sed, используйте сокращение.
grep .... | cut -c 1-N
, Если НЕОБХОДИМО использовать sed:
grep ... | sed -e 's/^\(.\{12\}\).*/\1/'
Строго с sed:
grep ... | sed -e 's/^\(.\{N\}\).*$/\1/'
также не нужно использовать grep
пример:
sed -n '/searchwords/{s/^\(.\{12\}\).*/\1/g;p}' file