Git команды, ссылки на файлы по индексу состояния вывода? - PullRequest
1 голос
/ 08 июня 2011

Иногда Git может быть довольно утомительным, если есть много похожих имен файлов.Например:

# On branch 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)
#
#       modified:   FormRegion1.Designer.cs
#       modified:   FormRegion1.cs
#       modified:   FormRegion1.resx
#       modified:   OptionPage.Designer.cs
#       modified:   OptionPage.cs
#       modified:   OptionPage.resx
#
no changes added to commit (use "git add" and/or "git commit -a")

Я бы предпочел набрать git diff 1 вместо git diff FormRegion1.Designer.cs (даже с завершением табуляции).В настоящее время я делаю что-то вроде этого:

git diff $( ~/gitstatn 1 )

, где ~/gitstatn содержит:

git status -s | head -n$1 | tail -n1 | cut -c 4-

, что не лучше.

Как я могу напечатать что-то вродеgit add 3 или git diff 5 и означает git add FormRegion1.resx или git diff OptionPage.cs соответственно?

Я использую Cygwin в Windows.

.

Редактировать - согласно adymitruk Совет, я остановился на псевдониме gpick к сценарию:

#!/usr/bin/bash

if [ -z $1 ]; then
    echo 'no git command specified'
elif [ -z $2 ]; then
    git $1
else
    git $1 $( git ls-files -m | head -n$2 | tail -n1 )
fi

, что достаточно для моих нужд.

Ответы [ 2 ]

0 голосов
/ 14 декабря 2011

Проверить GIT-номер . Я написал это специально для этого варианта использования .

0 голосов
/ 08 июня 2011

Вместо этого используйте git ls-файлы.Вам не нужно резать.Вам нужно будет сценарий.Вы можете использовать параметр -p для добавления, но мне нравится ваш скрипт.заставьте скрипт принять нужную команду:

gpick diff 1
gpick add 3

Возможно, вы захотите сделать что-нибудь и для неотслеживаемых файлов.

Надеюсь, это поможет

...