Підштовхнути існуючий проект до 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 repo?


4
Що саме було результатом git push?
1615903

1
@ user1615903 Я впевнений, що у мене неправильна послідовність кроків. Я думаю, що мені потрібно щось подібне git clone. Я не пам'ятаю результатів git push, але я думаю, що це не суттєво. Тому що проблема в іншому місці
MyTitle

Ви робили git push MyProject master?
Фелікс Клінг

Ця публікація в блозі може допомогти всім, хто хоче виконати це завдання. Всі етапи описані просто і докладно. samranga.blogspot.com/2015/07/…
Саміта Чатхуранга

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 на ім'я створеного сховища.
МД XF

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

2
Я вірю, що -fпрапор змусить віддалену історію зникнути? Це здається небезпечним оператором.
van abel

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 <проект 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 repo з 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з master, не вказуючи віддалений або гілку.


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

1
"git add Readme.md" невірна. Якщо воно вже існувало, додавати не потрібно. Якщо його не існувало, команда не працює. Так чи інакше, це не правильно.
Мітч

1
@Mitch Це не таємне магічне виклик, який раптом змусить ваш комп'ютер робити те, що ви хочете. Це приклад, щоб дати людям та уявити, що вони повинні робити. Я очікую, що люди зрозуміють команди, які вони набирають у свою машину.
брич

9

Якщо ви на Mac (і це, мабуть, працює так само на ПК), ось дуже простий спосіб зробити це. Як не дивно, я виглядав високо і низько для цього простого процесу і не знайшов його.

  • Не робіть нічого в Github (крім того, щоб мати обліковий запис і не використати всі наявні репости).
  • Завантажте GitHub для Mac та встановіть. Пройдіть налаштування облікового запису тощо. НЕ створюйте жодних сховищ для вашого існуючого проекту.
  • "Додати новий локальний сховище" у сховищах.
  • Виберіть наявну папку. Він запитає, чи хочете ви це зробити, скажіть так.
  • Після цього ви побачите список усіх своїх файлів тощо. Зробіть їх.
  • Перейдіть у сховища та опублікуйте (це створить нове репо в GitHub для вас, якщо ви правильно налаштували свій обліковий запис).
  • Перейдіть до сховищ і натисніть (ви побачите або "нічого не натискати", або вони підштовхнуть ваші файли / зміни до нещодавно зробленого репо).
    • Цікаво, чому ви не могли знайти цього простого процесу ніде більше.

Я знаю, що папка проекту не рекомендується використовувати як папку repo. Я роблю це постійно, це завжди працює, це робить просте, і я ніколи не маю з цим ніяких проблем.


Мені здається, якщо програма GitHub дозволяє користувачеві робити це так, це повинно бути добре.
johnnieb


5

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

крок 1: Створіть новий репозиторій на Github.com (пропустіть, якщо у вас вже є)

крок 2: Закрийте XCode ... не потрібно

крок 3: Відкрийте нове вікно терміналу (так, ви повинні використовувати термінал ... Я спробував усі інші способи ... нічого не працювало)

крок 4: Використання команди cd для пошуку місця папки у вашому проекті (проект, який ви хочете додати до свого існуючого чи нового сховища)

крок 5: введіть git init, ви отримаєте щось подібне. Повторне ініціалізація існуючого сховища Git у / {поточному каталозі}

крок 6: введіть додавання git. після цього кроку нічого не відбувається, але введіть його та перейдіть до наступного кроку.

крок 7: введіть git commit -m "Initial commit", ви отримаєте наступне: # На майстер гілки нічого не потрібно робити, робочий каталог очистити

або

пояснення щодо конфігурації, а потім список файлів, які змінилися.

крок 8: введіть git remote add origin {project url} URL-адресу проекту можна знайти на Github.com. URL-адреса клонування HTTPS ... ви повинні мати можливість просто скопіювати та вставити у вікно терміналу. Якщо система скаже вам, що походження вже існує, створіть інше ім’я або використовуйте назву проекту (щось інше)

крок 9: перейдіть до програми GitHub на вашому mac та натисніть кнопку "Синхронізувати гілку" (навіть якщо змін не очікує). Я замислююсь на деякий час, я думаю, щоб це фактично здійснилося, але якщо ви повернетесь до своєї локальної папки сховища, ви повинні побачити ваш новий проект. Мені довелося заново створити батьківську папку, але це лише питання переміщення ваших файлів. Перейдіть на 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 пробігу: 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. Запустіть git push -u origin master(тут ви натискаєте своє джерело у сховище git).

Примітка. Це прості кроки для переміщення вашого джерела в головну гілку.


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

У мене така ж проблема, але ваші кроки призводять до якоїсь дивної редакції тексту
Джон ktejik

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

2

Станом на 29.07.2019 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

Примітка. У команді команда git може відхилити, попросивши спочатку налаштувати електронну пошту та пароль користувача. Виконайте дії, наведені на екрані, після чого запустіть команду фіксації ще раз.

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