Имеет ли значение текущий путь для некоторых операций git? - PullRequest
1 голос
/ 09 октября 2011

Скажем, у меня есть мое git repo (папка .git), расположенное в ~/my_project/. Предположим также, что папка моего проекта собрана так:

my_project
      |
      |____src
            |
            |__com
            |
            |__org

И наконец, предположим, что я бы хотел разместить папку com для коммита. Я могу сделать это как минимум двумя способами:

  • albus@hogwarts:~/my_project$ git add src/com
  • albus@hogwarts:~/my_project/src$ git add com

Будет ли какая-то разница между этими двумя вызовами? А как насчет git format-patch или git am? Они зависят от текущего пути?

Люди могут смеяться над моим вопросом, но правда в том, что мой коллега сказал, что у них были проблемы с применением некоторых исправлений, то есть они должны были применять их из разных каталогов на пути проекта. Они также рекомендовали мне сделать все команды git из самой верхней папки проекта (т.е. my_project в этом примере). Я никогда не думал, что в этом может быть правда, но я не эксперт, где git входит в картину, и поэтому я спрашиваю это здесь.

Спасибо!

1 Ответ

3 голосов
/ 09 октября 2011

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

Но разные команды ведут себя по-разному, что также зависит от применяемых к ним флагов.

Например, git diff имеет флаг --relative:

- относительный [= <path>]

При запуске из подкаталога проекта можно указать исключить изменения за пределамикаталог и показать пути к нему с помощью этой опции.Когда вы не находитесь в подкаталоге (например, в пустом репозитории), вы можете указать, какой подкаталог сделать выводом, указав аргумент a.

...