Скажем, у вас есть папка 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, чтобы я мог отменить все изменения в рабочей копии, даже если я в данный момент нахожусь в подкаталоге (например, когда процесс завершится, я все равно останусь в том же подкаталоге)?