Git checkout для отмены изменений, запущенных из подкаталога, со всей областью проекта? - PullRequest
1 голос
/ 28 июня 2019

Скажем, у вас есть папка git repo, на /path/to/myrepo_git. Допустим, вы внесли изменения в рабочую копию в /path/to/myrepo_git/a.txt, /path/to/myrepo_git/b.txt и /path/to/myrepo_git/subdir/c.txt.

Теперь, скажем, вы хотите отменить эти изменения. Если вы находитесь в корневом каталоге git repo (здесь /path/to/myrepo_git), то это просто:

user@PC:/path/to/myrepo_git $ git checkout -- .

Однако, если вы находитесь в подкаталоге папки git repo, я предполагаю, что сначала вам нужно добраться до корня git repo, прежде чем вы сможете использовать git checkout, чтобы избавиться от всех изменений, в противном случае git checkout избавится только от изменений в подкаталоге - например, вы должны сделать:

user@PC:/path/to/myrepo_git/subdir $ cd "$(git rev-parse --show-toplevel)"
user@PC:/path/to/myrepo_git $ git checkout -- .
user@PC:/path/to/myrepo_git $ cd subdir/  # to go back to where I was before

Итак, мой вопрос - есть ли одна команда git, чтобы я мог отменить все изменения в рабочей копии, даже если я в данный момент нахожусь в подкаталоге (например, когда процесс завершится, я все равно останусь в том же подкаталоге)?

1 Ответ

4 голосов
/ 28 июня 2019

Вы можете использовать любой путь для команды git checkout, чтобы вы могли сделать

git checkout -- "$(git rev-parse --show-toplevel)"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...