Удаление файлов (вообще из проекта).




Можно удалить руками (длинный путь):

$ 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

 

Напоследок. Если ваши изменения закоммичены, то можно с высокой долей вероятности сказать, что ваши данные можно восстановить (разумеется, если вы просто не удалили всю папку с репозиторием).

 



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2022-11-01 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: