2016-10-21 1 views
0

Я разветвил проект из GitHub.Как я могу изменить дистанционное (размещенное) репо, на которое моя рабочая станция (локальная) репо выводит информацию?

С моей рабочей станции, я хочу, чтобы иметь возможность выдвинуть на мой Gitlab, т.е.

git push 

Вот что я получаю на моей рабочей станции до сих пор:

$ git remote -v 
origin https://github.com/OWASP/railsgoat.git (fetch) 
origin https://github.com/OWASP/railsgoat.git (push) 

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

$ git remote -v 
origin https://github.com/OWASP/railsgoat.git (fetch) 
origin https://gitlab.com/myName/railsgoat.git (push) 

Я попытался посмотреть документацию, однако решение как еще уклоняется меня:

git remote set-url [--push] <name> <newurl> [<oldurl>] 
git remote set-url --add [--push] <name> <newurl> 
git remote set-url --delete [--push] <name> <url> 

ответ

3

На самом деле, это довольно неудобно иметь отдельные выборки и push-адреса для одного и того же пульта (вы можете это сделать, но это не типичный способ добиться того, что вы просите). Обычно вы добавляете еще один пульт, а затем нажимаете на этот пульт.

git remote set-url origin https://gitlab.com/myName/railsgoat.git 
git remote add upstream https://github.com/OWASP/railsgoat.git 

, то вы будете использовать

git fetch upstream 

, чтобы получить изменения от верхнего репо и

git push origin 

нажать на вилку.

Названия upstream и origin не установлены в камне, хотя это типичные имена, используемые сообществом. Вы можете назвать upstream что-то еще, это всего лишь идентификатор. origin - это имя удаленной передачи, присвоенное той, с которой вы первоначально клонировали.

Конвенция заключается в использовании origin за то, что вы контролируете (ваша вилка), и upstream за то, что вы не контролируете (центральное репо).

Затем следующая концепция - это «восходящая ветка» для данной ветви (именование путается).

В принципе, git push должен знать, с какой веткой вы хотите нажать от и до (git чрезмерно гибкий в этом случае, который может быть сложным в начале).

Допустим, вы хотите, чтобы подтолкнуть от master к origin/master, и вы всегда хотите git push в будущем (когда в master), чтобы сделать то же самое, вы могли бы сделать:

git push -u origin master 

(-u является обобщающим для --set-upstream, который вы можете позже редактировать через --set-upstream-to, что заставляет git помнить, что ветка, на которую вы нажимаете прямо сейчас, является ветвью по умолчанию, которая будет использоваться в будущем).

После этого, вы можете в будущем использования только

git push 

Еще одно замечание, если по какой-то причине вы используете Git 1.x до сих пор, рекомендуется выполнить этот

git config --global push.default simple 

изменить поведение какой git push делает (далее here)


Чтобы сделать то, о чем вы просили, вы бы сделали

git remote set-url --push origin https://gitlab.com/myName/railsgoat.git 
+0

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

+0

Я действительно переработал ответ –

1

вы должны добавить новый удаленный узел с

git remote add newHostName https://gitlab.com/myName/railsgoat.git 

, а затем

git push newHostName branchname 
+0

Привет, что новогоHostName? Это Гитлаб? – CodeWalrus

+0

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