Вставить существующий проект в Github


224

У меня есть папка с исходниками моего проекта. Как я могу вставить этот проект в репозиторий Github?

Я попытался с помощью этих шагов:

  1. Я создал пустой репозиторий на GitHub.
  2. Я запустил git-bash и набрал текст git init, поэтому внутри корня проекта появилась .gitпапка.
  3. Я добавил некоторые файлы в систему контроля версий, используя git add sourcesFolderName
  4. Я добавил файлы, добавленные в предыдущем шаге, используя git commit -m "initial commit"
  5. Я указал удаленный репозиторий, используя git remote add MyProject <url>
  6. Наконец git push, но ничего не отправляется в удаленное хранилище ... (нет ошибки авторизации)

Итак, как я могу перенести существующие источники в недавно созданный репозиторий github?


4
Что именно было на выходе git push?
1615903

1
@ user1615903 Я уверен, что у меня неправильная последовательность шагов. Я думаю, что мне нужно что-то подобное git clone. Я не помню выход от git push, но я думаю, что это не существенно. Потому что проблема в другом месте
MyTitle

Ты сделал git push MyProject master?
Феликс Клинг

Этот пост может помочь любому, кто хочет выполнить эту задачу. Все шаги описаны просто и подробно. samranga.blogspot.com/2015/07/...
Samitha Chathuranga

1
Небольшой совет, попробуйте использовать приложение SourceTree. Пользовательский интерфейс очень приятный.
Мухаммед Фарид

Ответы:


340
git init
git add .
git commit -m "Initial commit"
git remote add origin <project url>
git push -f origin master

-fВариант на git pushсилы толчка. Если вы не используете его, вы увидите такую ​​ошибку:

To git@github.com:roseperrone/project.git
 ! [rejected]        master -> master (fetch first)
error: failed to push some refs to 'git@github.com:roseperrone/project.git'
hint: Updates were rejected because the remote contains work that you do
hint: not have locally. This is usually caused by another repository pushing
hint: to the same ref. You may want to first merge the remote changes (e.g.,
hint: 'git pull') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.

5
Это решило мою проблему, но я не мог сделать команду 4, git remote add origin <project url>говоря command syntax not correct. Я проигнорировал это, и это сработало
Халил Халаф

4
Просто примечание: если вы не хотите когда-либо использовать веб-сайт GitHub, вы можете добавить это после третьего шага: curl -u 'USER' https://api.github.com/user/repos -d '{"name":"REPO"}'заменив USER своим именем пользователя, а REPO - именем создаваемого репозитория.
MD XF

1
Кроме того, я думаю, что вы больше не можете просто сделать git add ., вы должны изменить это на cat "# reponamehere" >README.mdи тогда git add README.md. Вот как документация GitHub говорит , чтобы сделать это
MD XF

2
Я верю, что -fфлаг заставит исчезнуть удаленную историю? Кажется, опасный оператор.
ван Абель

112

В менее технических условиях

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

После создания репо на github у них есть инструкции. Вы можете следовать за ними. Но вот несколько дополнительных советов, потому что я знаю, как неприятно начинать с git.

Допустим, вы уже начали свой проект локально. Сколько у вас есть не имеет значения. Но давайте представим, что у вас есть проект php. Допустим, у вас есть index.php, contact.php и папка ресурсов с изображениями, css и шрифтами. Вы можете сделать это так (легко), но есть много вариантов:

Опция 1

Войдите в свою учетную запись github и создайте репо.

введите описание изображения здесь

На следующем экране вы можете скопировать его туда, где вам нужно, если вы нажмете кнопку (правая часть экрана), чтобы «клонировать на рабочем столе».

введите описание изображения здесь

Вы можете (или сделать это по-другому), а затем скопировать содержимое вашего существующего проекта в ваш новый репозиторий. Используя приложение github, вы можете просто зафиксировать его с помощью графического интерфейса пользователя (это означает, что вы просто нажимаете кнопки в приложении). Конечно, вы вводите свои заметки для коммита.

Вариант 2

  • Создайте репо на GitHub, как упоминалось выше.
  • На вашем компьютере перейдите в каталог с помощью терминала. с помощью команды Linux линии вы кд в каталог. Отсюда вы запускаете следующие команды, чтобы «подключить» существующий проект к вашему репозиторию на github. (Предполагается, что вы создали репо на github, и в настоящее время он пуст)

сначала сделайте это для инициализации git (контроля версий).

git init

затем сделайте это, чтобы добавить все ваши файлы для «мониторинга». Если у вас есть файлы, которые вы хотите игнорировать, вам нужно добавить, .gitignoreно для простоты, просто используйте этот пример для изучения.

git add .

Затем вы фиксируете и добавляете примечание между ""«первым коммитом» и т. Д.

 git commit -m "Initial Commit"

Теперь, здесь вы можете добавить свой существующий репо

git remote add github <project url>

Но не буквально печатать <project url>, а собственный URL проекта. Как ты это понял? Перейдите по ссылке, где находится ваш репозиторий на github, затем скопируйте ссылку. В моем случае одним из моих репозиториев является https://github.com/JGallardo/urbanhistorical, поэтому в результате URL-адрес этой команды просто добавит .git после этого. Так что здесь было бы

git remote add github https://github.com/JGallardo/urbanhistorical.git

Тест, чтобы увидеть, что это работает, делая

git remote -v

Вы должны увидеть, с чем связано ваше репо.

введите описание изображения здесь

Затем вы можете отправить свои изменения в GitHub

git push github master

или

git push origin master

Если вы по-прежнему получаете сообщение об ошибке, вы можете вызвать его с помощью -f. Но если вы работаете в командной среде, будьте осторожны, чтобы не форсировать, иначе вы можете создать больше проблем.

git push -f origin master

3
Твое лучшее объяснение. Для тех, кто читает это: я сначала создал свой репозиторий на github, чтобы он не давал мне толкаться. Я должен был> github pull <url проекта>, а затем github push. После этого все было хорошо.
филолог

1
Спасибо тебе большое за это! Вариант 1 спас мне жизнь после того, как все остальные варианты потерпели неудачу! : D
Сара Инес Кальдерон

2
Отличное объяснение! Однако я бы добавил следующие строки: git remote add origin <url проекта>, а затем git push -f origin master. Без -f будет ошибка
Javiar Sandra

1
пожалуйста, добавьте опцию -f к последней команде, чтобы ваш ответ был лучшим
Jacobo Koenig

1
Это действительно помогло! Я случайно инициализировал репозиторий github с помощью README, затем он не сработал. Я сделал это снова с пустым репо, и это сработало.
Верена

36

вам нужно будет указать, какая ветка и какая удаленная при нажатии:

➤ git init ./
➤ git add Readme.md
➤ git commit -m "Initial Commit"
➤ git remote add github <project url>
➤ git push github master

Будет работать как положено.

Вы можете установить это по умолчанию, выполнив:

➤ git branch -u github/master master

что позволит вам сделать git pushиз мастера без указания удаленного или филиала.


1
Верный. Вы также можете пропустить /masterчасть, так как она избыточна.
Габриэле Петронелла

1
"git add Readme.md" неверно. Если он уже существует, добавлять не нужно. Если он не существует, команда не выполняется. В любом случае, это не правильно.
Митч

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

9

Если вы работаете на Mac (и это, вероятно, работает на ПК), вот очень простой способ сделать это. Как ни странно, я посмотрел высоко и низко для этого простого процесса и никогда не нашел его.

  • Ничего не делайте на Github (кроме наличия учетной записи и неиспользования всех доступных репозиториев).
  • Скачайте GitHub для Mac и установите. Выполните настройку учетной записи и т. Д. НЕ создавайте репозитории для существующего проекта.
  • «Добавить новый локальный репозиторий» в репозитории.
  • Выберите вашу существующую папку. Он спросит, хотите ли вы это сделать, скажите «да».
  • После этого вы увидите список всех ваших файлов и т. Д. Зафиксируйте их.
  • Перейдите в раздел Репозитории и Публикация (это создаст для вас новый репозиторий на GitHub, если вы правильно настроили свою учетную запись).
  • Перейдите в репозитории и нажмите (вы увидите, что «ничего не выдвигать», или он отправит ваши файлы / изменения в недавно сделанное автоматически хранилище).
    • Интересно, почему вы не можете найти этот простой процесс в другом месте?

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


Сдается мне, если приложение GitHub позволяет пользователю делать это таким образом, то это должно быть хорошо.
Джонниб


5

Я буду следовать предыдущему комментарию от Rose P. Мне потребовалось много времени, чтобы найти решение, поэтому я публикую репост (надеюсь на простом английском), что сработало для меня ...

Шаг 1. Создайте свой новый репозиторий на Github.com (пропустите, если он у вас уже есть)

шаг 2: закрыть XCode ... не требуется

шаг 3: откройте новое окно терминала (да, вы должны использовать терминал ... я пробовал все другие способы ... ничего не получалось)

Шаг 4. Использование команды cd для поиска местоположения вашей папки в вашем проекте (проект, который вы хотите добавить в свой существующий или новый репозиторий)

Шаг 5: наберите git init, вы получите что-то вроде этого. Реинициализировать существующий Git-репозиторий в / {текущем каталоге}

шаг 6: наберите git add. после этого шага ничего не происходит, но введите его и переходите к следующему шагу.

шаг 7: наберите git commit -m «Initial commit», вы получите следующее: # На master master ничего не коммитите, рабочий каталог уберите

или

некоторое объяснение конфигурации, а затем список файлов, которые изменились.

шаг 8: введите git remote add origin {url проекта} URL проекта можно найти на Github.com. Это URL-адрес клонирования HTTPS ... вы можете просто скопировать и вставить в окно терминала. Если система сообщит вам, что источник уже существует, создайте другое имя или используйте имя вашего проекта (что-то другое)

Шаг 9: перейдите в приложение GitHub на своем Mac и нажмите кнопку «Sync Branch» (даже если нет ожидающих изменений). Я думаю, что потребуется некоторое время, чтобы он действительно зафиксировался, но если вы вернетесь в локальную папку репозитория, вы должны увидеть свой новый проект. Мне пришлось заново создать родительскую папку, но это просто вопрос перемещения ваших файлов. Перейдите на GitHub.com и обновите ваш браузер, и ваши новые файлы также должны быть там.

Надеюсь, это поможет.


5
Follow below gitbash commands to push the folder files on github repository :-
1.) $ git init
2.) $ git cd D:\FileFolderName
3.) $ git status
4.) If needed to switch the git branch, use this command : 
    $ git checkout -b DesiredBranch
5.) $ git add .
6.) $ git commit -m "added a new folder"
7.) $ git push -f https://github.com/username/MyTestApp.git TestBranch
    (i.e git push origin branch)

4
git init

Добавьте файлы в ваш новый локальный репозиторий. Это ставит их на первый коммит.

git add .

Добавляет файлы в локальный репозиторий и размещает их для фиксации. Чтобы удалить файл, используйте «git reset HEAD YOUR-FILE».

Зафиксируйте файлы, которые вы создали в вашем локальном хранилище.

git commit -m "First commit"
# Commits the tracked changes and prepares them to be pushed to a remote

репозиторий. Чтобы удалить этот коммит и изменить файл, используйте 'git reset --soft HEAD ~ 1', зафиксируйте и снова добавьте файл. Скопируйте поле URL удаленного репозитория. В верхней части страницы быстрой настройки вашего репозитория GitHub щелкните, чтобы скопировать URL удаленного репозитория.

В командной строке добавьте URL-адрес для удаленного репозитория, куда будет помещен ваш локальный репозиторий.

git remote add origin remote repository URL
# Sets the new remote
git remote -v
# Verifies the new remote URL

Отправьте изменения в вашем локальном репозитории на GitHub.

git push origin master
# Pushes the changes in your local repository up to the remote repository you 

указано в качестве источника


4
  1. Из командной строки перейдите в локальный каталог репозитория.
  2. Создайте новый репозиторий в GitHub, он предоставит вам ссылку, которая заканчивается на .git.
  3. в cmd run: git remote add origin [your_GitHub_Repository_link](помните, что ссылка должна заканчиваться на .git)
  4. затем запустите: git push -u origin master

Надеюсь, это было полезно.


4

Создать новый репозиторий

git clone <url>
cd "repositoryName"
touch README.md
git add README.md
git commit -m "add README"
git push -u origin master

Существующая папка

cd existing_folder
git init
git remote add origin <url>
git add .
git commit -m "Initial commit"
git push -u origin master

Существующий Git-репозиторий

cd existing_repo
git remote rename origin old-origin
git remote add origin <url>
git push -u origin --all
git push -u origin --tags

в чем разница между коммитом и пушем? что такое «происхождение» и «хозяин» в толчке? отделение?
ealeon

2

Сначала создайте новый репозиторий на Github с именем вашего проекта. Затем выполните следующие шаги.

1)git init
2)git add *
3)git commit -m "first commit"
4)git remote add origin https://github.com/yuvraj777/GDriveDemo.git
5)git push -u origin master

2

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

  1. Создайте репозиторий на git, и вы получите ssh || https, где вы собираетесь удаленно добавить свой исходный код.
  2. В вашем терминале идите по пути вашего проекта.
  3. Бегать git init (здесь вы инициируете проект как git).
  4. Бегать git add * (здесь вы добавляете все файлы и папки из вашего проекта).
  5. Выполнить git commit -m "Initial Commit."(здесь вы фиксируете свои файлы и папки, добавленные на шаге №4; не забывайте, что вы не можете отправить свои изменения без их фиксации).
  6. Запустите git remote add origin https://your_username@bitbucket.org/your_username/project-name.git(здесь вы добавляете удаленный проект, куда ваш источник будет перемещен; замените мою ссылку на ваш ssh || https из шага # 1).
  7. Run git push -u origin master(здесь вы толкаете свой источник в репозиторий).

Примечание. Это простые шаги для добавления вашего источника в основную ветку.


2

Ненавижу добавлять еще один ответ, но мой конкретный сценарий здесь не совсем описан. У меня было локальное репо с историей изменений, которые я хотел сохранить, и непустое репо, созданное для меня на Github (то есть с README.md по умолчанию). Да, вы всегда можете заново создать репозиторий Github как пустой репо, но в моем случае у кого-то еще есть разрешения на создание этого репо, и я не хотел беспокоить его, если был простой обходной путь.

В этом случае вы столкнетесь с этой ошибкой при попытке git pushпосле установки удаленного источника:

 ! [rejected]        master -> master (fetch first)
error: failed to push some refs to 'git@github.com:<my repo>.git'
hint: Updates were rejected because the remote contains work that you do
hint: not have locally. This is usually caused by another repository pushing
hint: to the same ref. You may want to first integrate the remote changes
hint: (e.g., 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.

Как указывает на ошибку, мне нужно было сделать git pullпосле установки удаленного источника, но мне нужно было указать --allow-unrelated-historiesопцию. Без этой опции git pullжалуется warning: no common commits.

Итак, вот точная последовательность команд, которые работали для меня:

git remote add origin <github repo url>
cp README.md README.md-save
git pull origin master --allow-unrelated-histories
mv README.md-save README.md
git commit -a
git push

У меня та же проблема, но ваши шаги приводят к какой-то странной вещи в текстовом редакторе
Джон Ктехик

Ах, я предполагаю, что вы обычно используете пользовательский интерфейс и обычно не делаете коммиты из командной строки (в этом нет ничего плохого, я использую интерфейс SourceTree). Выявившийся редактор - это, скорее всего, редактор vi, интерфейс которого сам по себе является целой темой, поэтому я не буду вдаваться в подробности.
Джонатан Фишер

2

По состоянию на 29.07.2009 Github предоставляет пользователям инструкции по выполнению этой задачи при создании репо, предлагая несколько вариантов:

создать новый репозиторий в командной строке

git init
git add README.md
git commit -m "first commit"
git remote add origin https://github.com/novomotus/vitaprice.git
git push -u origin master

выдвинуть существующий репозиторий из командной строки

git remote add origin https://github.com/novomotus/vitaprice.git
git push -u origin master

импортировать код из другого хранилища

нажмите importкнопку для инициализации процесса.

Для визуальных учеников там:

введите описание изображения здесь


1

Другой вариант, если вы хотите уйти от командной строки, это использовать SourceTree .

Вот некоторые дополнительные ресурсы о том, как настроить:


это конкретно не решает проблему, с которой сталкиваются в вопросе
JGallardo


0

Я обнаружил, что стимулирование обновления в «естественной» последовательности было более простым путем, чем принудительные действия.

Предположим, что репозиторий уже создан на github, и вы, возможно, также поместили некоторые вещи в README.md.

  1. На вашем компьютере откройте терминал и git clone [repo URL]

  2. Вы увидите, что будет создана новая папка с именем вашего репо. Не стесняйтесь переименовать его - не имеет значения.

  3. Переместите свой код, файлы и т. Д. В эту папку. Отредактируйте файл README.md, если необходимо.

  4. Теперь откройте Терминал / командную строку, зайдите в эту папку и делайте так, как будто вы делаете следующее обновление для репозитория:

git add .
git commit -m "v2"
git push origin master

Примечание: команда commit может отклонить команду git, попросив сначала настроить адрес электронной почты и пароль пользователя. Следуйте инструкциям на экране, затем снова введите команду commit.

  1. И эти три команды - то, что вы делаете сейчас, каждый раз, когда вы хотите отправить еще одно обновление.
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.