Я хочу передать все файлы, кроме одного файла. Могу ли я это сделать с помощью клиента GitHub для Windows или мне нужно использовать командную строку? Если мне нужно использовать командную строку, как ее использовать?
Как скопировать весь файл, кроме одного в GitHub для Windows
Ответ 1
Насколько я знаю, это невозможно без использования командной строки git. В git Shell у вас есть несколько вариантов. Все они дают несколько иной результат.
-
Если вы хотите просто исключить файл на некоторое время (возможно, одно коммит) и добавить его в будущую фиксацию, вы можете выполнить следующие команды:
git add . git reset filename git commit -m "commit message"Первая команда добавляет все файлы в промежуточную область. Затем вторая команда удаляет один файл из промежуточной области. Это означает, что файл не добавляется в коммит, но изменения в нем сохраняются на вашем локальном диске.
-
Если файл уже привязан к репозиторию, но вы только спорадически хотите зафиксировать дальнейшие изменения файла, вы можете использовать
git update-index --assume-unchangedтаким образом:`git update-index --assume-unchanged filename`Если вы затем измените файл локально, он не будет добавлен в промежуточную область, когда вы выполните что-то, чтобы добавить все файлы, например
git add .. Когда через некоторое время вы захотите снова зафиксировать изменения в файле, вы можете запуститьgit update-index --no-assume-unchanged filename, чтобы остановить игнорирование изменений. -
Вы можете использовать файл
.gitignore, если вы вообще не хотите отслеживать файл. Чтобы игнорировать файл с именемfilename, вы создаете или редактируете файл с именем.gitignore. Поместитеfilenameв отдельной строке, чтобы игнорировать этот файл. Теперь файл не добавляется в промежуточную область при выполненииgit add .. Примечание. Если файл уже проверен, вам нужно удалить его из хранилища, чтобы он фактически начал игнорировать его. Для этого выполните следующие действия:`git rm --cached filename`Параметр
--cachedуказывает, что файл должен быть удален только из индекса. Локальный файл, независимо от того, изменился он или нет, останется тоже самое. Вы можете добавить файл.gitignoreи зафиксировать, чтобы файл проигнорировался на других машинах с тем же репозиторием. -
Если вы хотите игнорировать файл без следа, но не хотите делиться этим игнорированием с другими вкладчиками репозитория, вы можете поместить имена проигнорированных файлов в файл
.git/info/exclude. Каталог.gitобычно скрыт, но вы можете сделать его видимым, изменив параметры папки. Как и в файле.gitignore, вы должны выполнитьgit rm --cached filename, если файл уже был проверен предыдущей фиксацией.
Некоторые примечания:
- Измените
filenameна фактическое имя файла, который вы хотите исключить. - Вместо исключения одного файла вы также можете исключить полный каталог. Вы можете сделать это, просто заменив имя каталога вместо
filename. - Простым способом запуска оболочки git является запуск GitHub для Windows, щелчок правой кнопкой мыши по проекту, в котором вы хотите исключить/проигнорировать файл и выбрать опцию
Open in Git Shell. Теперь вы находитесь в корне репозитория git, и вы можете приступить к выполнению команд, которые показаны и описаны в этом ответе.
Ответ 2
Я бы сделал следующее:
git add .
git checkout filename
git commit -m "commit message"
Первая строка добавляет все файлы в список, а вторая строка удаляет указанный вами файл, где "filename" должно быть именем файла, который вам не нужен в вашей фиксации.
или
git checkout filename
git commit -am "commit message"
git commit -am добавляет файлы и одновременно делает сообщение фиксации.
И если вам нужно УДАЛИТЬ изменения, внесенные в последний файл:
git stash -u