отправляю это здесь так, а не WebApps StackExchange, потому что я знаю , что она относится к git
, но я не уверен, что она включает в себя GitHub
, а также.Почему `` GIT дифф автозаполнения на ветку, а не файл
Предположим, у меня есть репо foo
на моей машине по адресу /home/user/foo
, который является моим текущим рабочим каталогом, и у меня есть файл в репо: /home/user/foo/main.sh
.
Я работаю над веткой master
(хотя я не уверен, что имеет значение, в какой ветке я веду), и я вношу некоторые изменения в main.sh
. Я хочу, чтобы увидеть изменения, которые я сделал только к этому файлу, поэтому я ввожу:
$ git diff ma<tab>
Почему это автозаполнение для master
, а не main.sh
? На самом деле, более разумно, я не думаю, что он должен автозаполняться вообще, потому что всего 2 буквы ma
, это неоднозначно. Я просмотрел описание на странице руководства git diff
, но я ничего не вижу, если у кого-то есть приоритет над другим.
Ничего общего с GitHub. Подключение к Git немного слабо: все автозаполнение bash выполняется в bash. Это зависит от того, кто пишет автозаполнение, чтобы решить, как его реализовать. В ответе на xbonez ниже показано, что они использовали '-', чтобы решить, следует ли рассматривать следующий аргумент как имя ветки (которое является допустимым селектором фиксации) или имя пути. – torek