2015-06-02 3 views
2

Я новичок в git, и я пытаюсь изучить некоторые новые вещи.Две параллельные независимые ветви в том же репо в git

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

Показательный пример:

Давайте представим, что мы имеем репо, хранящуюся в [email protected]. Под ~/git/ У меня есть много каталогов (myDir1, myDir2, myDirN ...) проведение код, который я получил делать:

  1. git clone [email protected]:my-repo-1
  2. git clone [email protected]:my-repo-2 и так далее ...

Теперь я хочу переместить ~/git/myDir1/scripts в ~/scripts/, потому что я хочу сохранить эти сценарии отдельно от исходного кода, хранящегося в ~/git/myDir1

Я перехожу к ~/scripts и выполняю git init, поэтому я создаю локальное репо для этих скриптов.

И вот я застрял.

Вопросы:

  1. Как подтолкнуть этот локальный репозиторий для [email protected]:my-repo-1?
  2. Как получить содержимое ~/scripts (новодвижная ветка) в ~/someScripts на другом компьютере?

Извините заранее, если я злоупотреблял терминологией git, я все еще пытаюсь узнать, что такое ветка, отдаленный, происхождение и т. Д.

ответ

2

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

В же репо, что называется orphaned branch, но это не то, что вы делаете в вашем вопросе.
Вы пытаетесь разделить репо на две части, удаляя историю папки из одного репозитория (~/git/myDir1, папки scripts/) и импортировать свою историю во второй новый репо (~/scripts)

Как подтолкнуть этот локальный репозиторий до [email protected]:my-repo-1?

cd ~/scripts 
git remote add origin [email protected]:my-repo-1 

Но вам нужно будет иметь по крайней мере один совершить, прежде чем быть в состоянии сделать git push -u origin master

Для этого, см Splitting a subfolder out into a new repository

Как получить содержимое ~/scripts (новодвижная ветка) в ~/someScripts на моем другом ПК?

Одним из решений является compress your ~/scripts into one file, пачкой, скопировать его на другой компьютер и клон из этого git bundle.
Это кажется более простым (как быстрая победа), чем попытка запустить слушателя на вашем другом ПК (git daemon, sshd, httpd), чтобы git push с одного ПК на другой: просто скопируйте один файл.

+0

Не могу ли я получить содержимое ~/скриптов (вновь нажатой ветви) в ~/someScripts на моем другом ПК_, выполнив операцию 'git clone'? – cross

+0

Если оба ПК видят друг друга, например, с общей папкой, то да, возможен клон git. – VonC

+0

Какая бы точная команда? – cross

Смежные вопросы