Подтвердить что ты не робот

Как вытащить один файл из репозитория сервера в Git?

Я работаю на сайте с сервером под управлением Git. Я использую Git для развертывания (не GitHub). Это было настроено до моего участия с использованием метода ловушки, и я обратился к этому вопросу и ввел команды ниже, но это не сработало.

Как мне вытащить один файл с сервера? Например, если я хочу обновить свой локальный файл index.php? git pull index.php?

4b9b3361

Ответ 1

Это можно сделать (в развернутом репозитории):

git fetch
// git fetch will download all the recent changes, but it will not put it in your current checked out code (working area).

С последующим:

git checkout origin/master -- path/to/file
// git checkout <local repo name (default is origin)>/<branch name> -- path/to/file will checkout the particular file from the downloaded changes (origin/master).

Ответ 2

git fetch --all
git checkout origin/master -- <your_file_path>
git add <your_file_path>
git commit -m "<your_file_name> updated"

Предполагается, что вы вытаскиваете файл из источника/мастера.

Ответ 3

Это может быть решением:

git fetch

git checkout origin/master -- FolderPathName/fileName

Благодарю.

Ответ 4

Этот сценарий возникает, когда вы - или вынуждаете больше, чем вы - искали файл в вашем локальном репо, и вы просто хотите восстановить свежую копию его последней версии из репо. Простое удаление файла с помощью /bin/rm (не git rm) или переименование/скрытие его, а затем выполнение git pull не будут работать: git замечает отсутствие файла и предполагает, что вы, вероятно, хотите, чтобы он вышел из репозитория (git diff покажет все строки удалены из отсутствующего файла).

git pull не восстанавливает локально отсутствующие файлы, всегда разочаровывал меня в git, возможно, так как на меня влияли другие системы контроля версий (например, svn update, который, я считаю, восстановит файлы, которые были локально скрыты).

git reset --hard HEAD - это альтернативный способ восстановить интересующий файл, так как он отбрасывает любые незафиксированные изменения, которые у вас есть. Однако, как отмечено здесь, git reset является потенциально опасной командой, если у вас есть другие незафиксированные изменения, которые вас волнуют.

Стратегия git fetch... git checkout, отмеченная выше @chrismillah, является хорошим хирургическим способом восстановления файла, о котором идет речь.

Ответ 5

Попробуйте использовать:

git checkout branchName -- fileName

Пример:

git checkout master -- index.php

Ответ 7

Этот пакет Windows работает независимо от того, включен он или нет на GitHub. Я использую его, потому что он показывает некоторые серьезные предостережения. Вы заметите, что операция медленная и занимает сотни мегабайт данных, поэтому не используйте этот метод, если ваши требования основаны на доступной пропускной способности /RW памяти.

sparse_checkout.bat

pushd "%~dp0"
if not exist .\ms-server-essentials-docs mkdir .\ms-server-essentials-docs
pushd .\ms-server-essentials-docs
git init
git remote add origin -f https://github.com/MicrosoftDocs/windowsserverdocs.git
git config core.sparseCheckout true
(echo EssentialsDocs)>>.git\info\sparse-checkout
git pull origin master

=>

C:\Users\имя пользователя \Desktop> sparse_checkout.bat

C:\Users\имя пользователя \Desktop> pushd "C:\Users\имя пользователя \Desktop \"

C:\Users\имя пользователя \Desktop>, если не существует. \Ms-server-essentials-docs mkdir.\Ms-server-essentials-docs

C:\Users\имя пользователя \Desktop> pushd.\Ms-server-essentials-docs

C:\Users\имя пользователя \Desktop\ms-server-essentials-docs> git init Инициализированный пустой репозиторий Git в C: /Users/имя пользователя /Desktop/ms-server-essentials-docs/.git/

C:\Users\имя пользователя \Desktop\ms-server-essentials-docs> git remote add origin -f https://github.com/MicrosoftDocs/windowsserverdocs.git Обновление источника удаленного: перечисление объектов: 97, выполнено. Удаленный: Подсчет объектов: 100% (97/97), сделано. удаленный: сжатие объектов: 100% (44/44), сделано. удаленный: всего 145517 (дельта 63), повторно использованный 76 (дельта 53), повторно использованный пакет 145420 Прием объектов: 100% (145517/145517), 751,33 МиБ | 32,06 МБ/с, готово. Разрешение дельт: 100% (102110/102110), сделано. С https://github.com/MicrosoftDocs/windowsserverdocs * [новая ветка]
1106-конфликт → происхождение /1106-конфликт * [новая ветвь]
FromPrivateRepo → origin/FromPrivateRepo * [новая ветвь]
PR183 → origin/PR183 * [новый филиал]
конфликт → источник/конфликт * [новая ветка]
eross-msft-patch-1 → origin/eross-msft-patch-1 * [новая ветвь]
master → origin/master * [новая ветка] patch-1
→ origin/patch-1 * [новая ветка] repo_sync_working_branch → origin/repo_sync_working_branch * [новая ветка]
shortpatti-patch-1 → origin/shortpatti-patch-1 * [новая ветка]
shortpatti-patch-2 → origin/shortpatti-patch-2 * [новая ветка]
shortpatti-patch-3 → origin/shortpatti-patch-3 * [новая ветка]
shortpatti-patch-4 → origin/shortpatti-patch-4 * [новая ветка]
shortpatti-patch-5 → origin/shortpatti-patch-5 * [новая ветка]
shortpatti-patch-6 → origin/shortpatti-patch-6 * [новая ветка]
shortpatti-patch-7 → origin/shortpatti-patch-7 * [новая ветка]
shortpatti-patch-8 → origin/shortpatti-patch-8

C:\Users\имя пользователя \Desktop\ms-server-essentials-docs> git config core.sparseCheckout true

C:\Users\имя пользователя \Desktop\ms-server-essentials-docs> (echo EssentialsDocs) 1 >>. Git\info\sparse-checkout

C:\Users\имя пользователя \Desktop\ms-server-essentials-docs> мастер создания git pull
С https://github.com/MicrosoftDocs/windowsserverdocs
* Мастер ветки → FETCH_HEAD