Можно удалить руками (длинный путь):
$ ls
new.js new2.js README ttt.txt wow.html www.txt
root@mailsrvMINGW64 ~/testdir (master)
$ rm wow.html
root@mailsrvMINGW64 ~/testdir (master)
$ git status
On branch master
Changes not staged for commit:
(use "git add/rm<file>..." to update what will be committed)
(use "git checkout -- <file>..." to discard changes in working directory)
deleted: wow.html
no changes added to commit (use "git add" and/or "git commit -a")
root@mailsrvMINGW64 ~/testdir (master)
$ git add wow.html
root@mailsrvMINGW64 ~/testdir (master)
$ git status
On branch master
Changes to be committed:
(use "git reset HEAD <file>..." to unstage)
deleted: wow.html
… изакоммитить удаление.
А можно удалить файл более коротким способом:
$ gitrm<filename>:
$ gitrmwow.html
rm 'wow.html'
root@mailsrvMINGW64 ~/testdir (master)
$ git status
On branch master
Changes to be committed:
(use "git reset HEAD <file>..." to unstage)
deleted: wow.html
уже готово к коммиту. Если все же решите вернутьфайл, то делаем:
$ gitresetHEAD<filename>
$ gitcheckout --<filename> (можнообъединитьобекомандычерез&&)
Удаление файлов (из отслеживания, файл останется на месте).
$ gitaddfoo.bar
alexandr@ubnt32:~/Documents/myrep$ git status
On branch master
Changes to be committed:
(use "git reset HEAD <file>..." to unstage)
newfile: foo.bar
А потом решили, что ему не место под версионным контролем. Удаляем его из индекса отслеживания:
$ gitrm --cached foo.bar
$/Documents/myrep$ git status
On branch master
Untracked files:
(use "git add <file>..." to include in what will be committed)
foo.bar
Переименование файла в репозитории
$ gitmvlib.dlllib2.dll – переименовать файл lib.dllв lib2.dll
После этого переименование придется закомитить.
Отмена изменений.
Пример 1. Изменить предыдущий коммит.
Если мы напортачили с коммитом, забыли чего-то добавить в индекс, или хотим изменить комментарий к коммиту, или просто не хотим плодить ненужные коммиты, то все что нужно сделать это добавить в индекс всё, что мы забыли добавить (gitadd<filename>) и выполнить команду:
|
$ gitcommit--amend
Мы попадем в диалог создания коммита и нам нужно будет поправить наш комментарий к коммиту, а добавленный файл попадет в этот же коммит. Короче говоря, количество коммитов останется прежним.
Пример2. Убрать файл из индекса.
К примеру, мы добавили не тот файл для отслеживания (индексации). Как удалить его из отслеживания. Сам GIT и подскажет (git reset HEAD):
$ git status
On branch master
Changes to be committed:
(use " git reset HEAD <file>..." to unstage)
new file: www.txt
new file: www2.txt
Можно ресетнуть какой-то файл, чтобы убрать его из индекса. Проделаемэто:
$ gitresetHEADwww2.txt
root@mailsrvMINGW64 ~/testdir (master)
$ git status
On branch master
Changes to be committed:
(use "git reset HEAD <file>..." to unstage)
new file: www.txt
Untracked files:
(use "git add <file>..." to include in what will be committed)
www2.txt
После этого видно, что файл www2.txtизменен (подсвечен красным цветом) но не находится в индексе, то есть в следующий коммит он не войдет.
Пример 2. Отмена изменений в файле.
К примеру, вы изменили файл, но пока не добавили его в индексе:
$ viwww.txt// внесли изменения в редакотре, сохранились..
$ gitstatus
Onbranchmaster
Changesnotstagedforcommit:
(use "git add <file>..." to update what will be committed)
(use "git checkout -- <file>..." to discard changes in working directory)
modified: www.txt
no changes added to commit (use "git add" and/or "git commit -a")
…но потом вы решили, что изменения неверны, и править файл самостоятельно корректируя его в редакторе будем долгим процессом. Есть путь короче. И GITнам сам подсказывает. Можно вернуться к состоянию предыдущего коммита для этого конкретного файла:
$ git checkout -- www.txt
root@mailsrvMINGW64 ~/testdir (master)
|
$ cat www.txt
1st line
И как видим ниже:
$ git status
On branch master
nothing to commit, working tree clean
изменений не стало. ВНИМАНИЕ, изменения внеслись в ваш сохраненный файл, его состояние вернулось к предыдущему коммиту. То есть все, что вы с ним сделали, сотрется из файла и он будет в том же состоянии, что и в предыдущем коммите.
Того же самого можно добиться при помощи команды
$ git checkoutfile1.html file2.css file3.js
Напоследок. Если ваши изменения закоммичены, то можно с высокой долей вероятности сказать, что ваши данные можно восстановить (разумеется, если вы просто не удалили всю папку с репозиторием).