Действительно ли возможно продвинуть притон мерзавца в удаленный репозиторий?

В основном при компиляции функций C с компилятором C++, он искажает имена функций и использует ABI C++.

при использовании *.cpp или *.mm расширения Вы используете компилятор C++.

то, Что Вы хотите сделать, вынудить компилятор генерировать функции C с именами неискажений и использованием ABI C.

можно сделать это также:

  • Компиляция с компилятором C.
  • Компиляция с компилятором C++, но удостоверяется, что Вы снабжаете префиксом объявления функции экстерна "C"

фаворит А способ настроить заголовочный файл, так, чтобы тот же файл мог быть включен и от C и от исходных файлов C++:

#ifndef HEADER_GUARD_1_H
#define HEADER_GUARD_1_H

#ifdef __cplusplus
extern "C" {
#endif

// Declare C function interface here.
int myFunc(int x,char*);

#ifdef __cplusplus
}
#endif

#endif 
189
задан Andrew Grimm 10 October 2009 в 23:36
поделиться

3 ответа

Невозможно получить его через fetch или около того, ссылка на зеркало fetch = + refs / *: refs / * , и хотя тайник равен refs / stash , он не отправляется. Явное указание refs / stash: refs / stash тоже не имеет никакого эффекта!

В любом случае это только сбивает с толку, поскольку при этом будут извлечены не все тайники, а только последний; список тайников - это журнал ссылок ссылки ссылок / тайников .

60
ответ дан 23 November 2019 в 05:40
поделиться

Я бы выбрал второй подход, хотя не знаю, почему вы не можете зафиксировать его в ветке master / Feature. Можно и собирать вишню.

9
ответ дан 23 November 2019 в 05:40
поделиться

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

Я работаю над функцией в отдельной ветке. Ветка не объединяется с мастером и не отправляется до тех пор, пока не будет завершена или пока я не совершу коммитов, которые мне удобно показывать публике. Итак, что я делаю, когда хочу перенести неэтапные изменения на другой компьютер:

  • Сделайте фиксацию с сообщением фиксации вроде « [non-commit] ТОЛЬКО ДЛЯ ПЕРЕДАЧИ "с содержанием, которое вы хотите передать.
  • Войдите на другой компьютер.
  • Затем выполните:

    git pull ssh + git: // @ / path / to / project / rb: lb

    URL-адрес может отличаться для вас, если вы входите в свой репозиторий в по-другому. Это перенесет изменения из этого URL-адреса из удаленной ветви «rb» в локальную ветвь «lb».Обратите внимание, что у меня есть ssh-сервер, работающий на моем собственном компьютере, и я могу получить доступ к репозиторию таким образом.

  • git reset HEAD ^ (подразумевает - смешанный )

    Это сбрасывает HEAD, чтобы он указывал на состояние перед фиксацией «[non-commit]».

Из git-reset (1): " - смешанный : сбрасывает индекс, но не рабочее дерево (т. Е. Измененные файлы сохраняются, но не помечаются для фиксации) [ ...] "

Таким образом, в конечном итоге у вас будут свои изменения в файлах, но никаких коммитов в мастеринг не делается, и нет необходимости в тайнике.

Это, однако, потребует от вас git reset --hard HEAD ^ в репозитории, в котором вы сделали «[non-commit]», поскольку эта фиксация является мусором.

31
ответ дан 23 November 2019 в 05:40
поделиться
Другие вопросы по тегам:

Похожие вопросы: