Как использовать git "touch" cmd в PowerShell для создания файла .ignore?

1876
Mr. Kennedy

Как я могу использовать touchкоманду для создания файла ".ignore" из PowerShell?

Я могу использовать команду в Git Bash (MINGW64)

me@my_computer MINGW64 ~/stuff (master) $ touch .gitignore 

... но было бы здорово остаться в PowerShell и обойти Windows, чтобы не иметь имен файлов, начинающихся с точки. Страницы справки / man / info Bash не распознают touch. FWIW, я следую этому руководству и провел некоторое исследование со ссылками в ответах здесь, но не нашел ответа. Когда я пытаюсь touch .gitignoreв PowerShell, я получаю сообщение об ошибке:

PS C:\Users\_user_name_\stuff> touch .gitignore The term 'touch' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the spelling of the name, or if a path was included, verify that the path is correct and try again. At line:1 char:6 + touch <<<< .gitignore + CategoryInfo : ObjectNotFound: (touch:String) [], CommandNotFoundException + FullyQualifiedErrorId : CommandNotFoundException 
1
`new-item .gitignore -itemtype file`, кажется, работает, но довольно неудобно для ввода Mr. Kennedy 7 лет назад 0
Как я могу создать псевдоним, который принимает -itemtype? `new-alias -name touch -value new-item -itemtype file` не работает ... Mr. Kennedy 7 лет назад 0
Просто `new-item .gitignore` работает, он предполагает, что вам нужен файл, когда вы находитесь на жестком диске. Ƭᴇcʜιᴇ007 7 лет назад 1
@ Ƭᴇcʜιᴇ007 да, да, но было бы неплохо просто ввести два слова. Я изучаю, как создать функцию PS, чтобы я мог добавить псевдоним «touch» в свой профиль, который предполагает тип: file , Благодарю. Mr. Kennedy 7 лет назад 0
Чем «новый элемент .gitignore» отличается от «touch .gitignore»? Поскольку теперь вы знаете, что вам не нужен «-itemtype», вы можете просто использовать псевдоним new-item как «touch». Сказав это, у "new-item" уже есть псевдоним: "ni". Так что `ni .gitignore` должно отлично работать для того, что вы просите, и это даже короче. :) Ƭᴇcʜιᴇ007 7 лет назад 1
@ Ƭᴇcʜιᴇ007 "ni" ce :) приятно знать! Единственное отличие состоит в том, что для `ni` или` new-item` требуется либо `-itemtype file`, либо ответ на запрос` Type: `- просто больше нажатий клавиш - это все. Я новичок в PS, так что частично я просто пытаюсь научиться этому. Я думаю, у меня есть простая функция, которую я могу использовать сейчас: tho: `function touch_file new-alias -name touch -value touch_file`, и я могу просто ввести` touch .filename`. Добавил его в мой профиль и похоже на работу! Ура! Mr. Kennedy 7 лет назад 0
Чтобы обойти Windows, не желая начинать имя файла с точки, добавьте второй конец к концу, в этом случае назовите файл `.gitignore`. Windows распознает, что это означает, что вы уверены, что вы хотите, чтобы имя начиналось с точки, и создаст файл как `.gitignore` без второго периода. Moshe Katz 7 лет назад 0
@MosheKatz приятно знать! Это работает нормально, но все же требует подробного включения `-itemtype file` с командой или ответа на запрос типа, когда команда вводится без флага спецификации. Mr. Kennedy 7 лет назад 0

1 ответ на вопрос

0
Mr. Kennedy

Добавление этого кода в мой профиль .ps1 помогает: C: \ Users \ user_name \ Documents \ WindowsPowerShell \ Microsoft.PowerShell_profile.ps1

<# The following function and alias assignment are for use with git to create files which start with a period, e.g. .gitignore #> function touch_file  new-alias -name touch -value touch_file 

И теперь я могу войти touch .gitignoreв командную строку PowerShell и не иметь Windows balk по моему имени файла, начиная с точки или спрашивая, какой тип объекта он создает:

PS C:\Users\user_name> touch .gitignore Directory: C:\Users\user_name Mode LastWriteTime Length Name ---- ------------- ------ ---- -a--- 8/16/2016 11:41 PM 0 .gitignore 

На шаг ближе к тому, чтобы заставить мою бестолковую адекватно ответить «Делай, что я хочу!» :)