Як конвертувати існуючий не порожній каталог у робочу директорію Git та пересилати файли у віддалений сховище


644
  1. У мене є не порожній каталог (наприклад, / etc / something) з файлами, які неможливо перейменувати, перемістити чи видалити.

  2. Я хочу перевірити цей каталог на місці git.

  3. Я хочу мати можливість перенести стан цього сховища у віддалене сховище (на іншій машині) за допомогою "git push" або чогось подібного.

Це тривіально за допомогою Subversion (зараз ми робимо це за допомогою Subversion), використовуючи:

svn mkdir <url> -m <msg>
cd <localdir>
svn co <url> .
svn add <files etc>
svn commit -m <msg>

Що таке еквівалент git?

Чи можу я "git clone" в порожній каталог і просто перемістити каталог .git і все працювати?


5
Можливо, я просто не розумію, але ви не можете просто запустити git initвсередині локального каталогу?
Філіп

Ви маєте на увазі, що у вас є репо, десь інше, і ви хочете додати до цього репо весь вміст цього іншого каталогу, який не є репо? Або ви просто намагаєтесь створити нове репо в цьому каталозі?
Каскабель

У ряді відповідей згадується github, але саме питання стосується gitub. github - це не git, і він не є центром всесвіту git.
vfclists

Відповіді:


1056

З огляду на те, що ви встановили демон git <url>та порожнє сховище:

cd <localdir>
git init
git add .
git commit -m 'message'
git remote add origin <url>
git push -u origin master

12
Як видається, вказівки abyx працюють. Я зараз запускаю: git config branch.master.remote originі git config branch.master.merge refs/heads/master що я закінчу, буде точно таким же, як якщо б я клонував віддалене сховище? тобто git pullі git pushбуде просто працювати ?
HMW

34
Це працювало і для мене. Я мав спочатку створити проект AppNameу GitHub. Мені не було зрозуміло з якими саме <url>засобами. Тож для тих, хто з тим самим питанням, ми просто використовуємо GitHub.com, ми не запускаємо репо, і тоді, <url>як використовується в 5-му рядку, виглядало приблизно так:https://github.com/CompanyName/AppName
Барт

12
Якщо ви налаштовуєте сховище, яке не знаходиться на GitHub, не забудьте використовувати "git --bare init" для встановлення порожнього віддаленого сховища, а не "git init" (як я це робив), інакше натиск не вдасться.
jdusbabek

3
Просто хотів би додати, що я не міг натиснути , поки я не зробив: мерзотник тягнути --rebase
Artemix

6
Якщо git відхиляється, оскільки віддалений містить незначні зміни (.README, .gitignore тощо), спробуйте git pull origin master --allow-unrelated-historiesзробити об'єднання.
karlisup

80

Так я і роблю. Я додав пояснення, щоб зрозуміти, що, до біса.

Ініціалізуйте локальний сховище

  • спершу ініціалізуйте Git з

    git init

  • Додайте всі файли для контролю версій за допомогою

    git add.

  • Створіть комісію з повідомленням на ваш вибір

    git commit -m 'ДодаванняBaseCode'

Ініціалізуйте віддалене сховище

  • Створіть проект на GitHub та скопіюйте URL-адресу свого проекту. як показано нижче:

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

Пов’язати віддалене репо з локальним репо

  • Тепер скопіюйте URL-адресу скопійованого, щоб зв’язати місцеве репо з віддаленим репо GitHub. Коли ви клонуєте сховище за допомогою git clone, він автоматично створює віддалене з'єднання, яке називається початком, вказує назад на клонований сховище. Команда дистанційного використовується для управління набором відстежуваних сховищ.

    git remote add origin https://github.com/hiteshsahu/Hassium-Word.git

Синхронізувати

  • Тепер нам потрібно об'єднати локальний код з віддаленим кодом. Цей крок є критично важливим, інакше ми не зможемо надіслати код на GitHub. Ви повинні зателефонувати "git pull", перш ніж натискати свій код.

    git pull origin master - дозволити неспоріднені історії

Введіть свій код

  • Нарешті натисніть на всі зміни на GitHub

    git push -u походження майстер


1
Я виконав "git pull", як описано в цій публікації, і отримав помилку. Я продовжив "git push", який було прийнято, і коли я переходжу до сервера Bonobo Git, я тепер бачу зміни. Дякуємо за цей пост із чіткими поясненнями команди GIT.
schlebe

Що це означає: "і скопіюйте URL-адресу свого проекту та скопіюйте URL-адресу проекту." Це помилка введення тексту чи ви намагаєтесь поговорити про дві різні URL-адреси, чи?
gwideman

То в друкарні помилки, просто скопіювати URL проекту , як показано на знімку екрана
Hitesh Sahu

2
Це правильна відповідь і повинна бути прийнятою. У прийнятій відповіді відсутній ваш крок "Синхронізувати".
Ілан

28

Ось моє рішення:

git init
git remote add origin PATH/TO/REPO
git fetch
git checkout -t origin/master

Гарне рішення, коли ви встановлюєте віддалений репо з .gitignore&README.dm
Hattori Hanzō

12

У випадку, якщо віддалений сховище не порожнє (це так, якщо ви використовуєте IBM DevOps на hub.jazz.net), вам потрібно використовувати таку послідовність:

cd <localDir>
git init
git add -A .
git pull <url> master
git commit -m "message"
git remote add origin <url>
git push

РЕДАКТИРУЙТЕ 30 січня


Вищезазначені команди викреслили всі мої існуючі версії :( Будьте обережні, перш ніж робити вищезазначені кроки
Selenium Framework

7

Коли сховище github не порожнє, як-от .gitignore та ліцензія

Використовуйте тягнути - дозволити не пов'язані історії та натисніть - примусово з орендою

Використовуйте команди

git init
git add .
git commit -m "initial commit"
git remote add origin https://github.com/...
git pull origin master --allow-unrelated-histories
git push --force-with-lease

1
Мені потрібно було змінити цю останню заяву, щоб більше нагадуватиgit push -u origin master --force-with-lease
cfont

2

Найпростіший спосіб зробити це, який я вважаю корисним, наведений нижче.

Це може бути не офіційним шляхом, але це працює добре.

Припустимо, у вас XYZна ПК є проект під назвою " ". Тепер ви хочете зробити git repo цього проекту на github та використовувати його функції.

Крок 1 : перейдіть до " www.github.com"

Крок 2. Створіть сховище з README.mdфайлом " " (назвіть його так, як вам подобається)

Крок 3 : клонуйте сховище на ваш ПК.

Крок 4 : У клонованій папці ви отримаєте дві речі: " .git" папку та " README.md" файл. Скопіюйте ці два у папку проекту " XYZ".

Крок 5 : Видаліть клонований репо.

Крок 6 : додайте, введіть і натисніть всі файли та папки вашого проекту.

Тепер ви можете просто використовувати ваш проект XYZяк сховище git.


0

У мене була схожа проблема. Я створив нове сховище, НЕ В ДИРЕКТОРІ, ЩО Я ХОЧУЛИ ЗРОБИТИ РЕПОЗИТОРІЮ . Потім я скопіював файли, створені в каталог, в якому хотів зробити сховище. Потім відкрийте наявне сховище за допомогою каталогу, в який я просто скопіював файли.

ПРИМІТКА. Я використовував робочий стіл github для створення та відкриття вихідного сховища.


0

Ось моє рішення, якщо ви створили сховище з деяким типом readme fileабоlicense

git init
git add -A
git commit -m "initial commit"   
git remote add origin https://<git-userName>@github.com/xyz.git //Add your username so it will avoid asking username each time before you push your code
git fetch
git pull https://github.com/xyz.git <branch>
git push origin <branch> 
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.