Как сделать так, чтобы мои локальные изменения отображались в репозитории github? - PullRequest
0 голосов
/ 14 мая 2019

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

так вот что я сделал после клонирования репозитория

git checkout -b private
git remote add private git@github.com:<github-username>/<repositoryname>.git
git push private -u master

однако это всегда будет неудачно, когда я попробую снова, это сработало, но показало это

Enumerating objects: 42, done.
Counting objects: 100% (42/42), done.
Delta compression using up to 8 threads
Compressing objects: 100% (36/36), done.
Writing objects: 100% (42/42), 22.55 KiB | 7.51 MiB/s, done.
Total 42 (delta 15), reused 0 (delta 0)
remote: Resolving deltas: 100% (15/15), done.
remote: 
remote: Create a pull request for 'master' on GitHub by visiting:
remote:      https://github.com/<githubusername>/<repositoryname>/pull/new/master
remote: 
To https://github.com/<githubusername>/<repositoryname>
 * [new branch]      master -> master
Branch 'master' set up to track remote branch 'master' from 'private'.

это былоя должен сказать, что private -> master, так что я знаю, что что-то не так

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

РЕДАКТИРОВАТЬ: когда я хочу нажать, он говорит мне использовать этот первый

git push -set-upstream origin private

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

Ответы [ 4 ]

0 голосов
/ 14 мая 2019

Указанная вами ссылка выше не работает должным образом.Как вы сказали Если вы не хотите просто передавать свои локальные изменения на удаленный, вы можете сделать это с мастера.

git push origin master

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

git pull origin master

Тогда вы увидите там некоторое окно процесса.закройте его и нажмите код еще раз.

Case2: Если вы находитесь в ветке создания, вы можете просто сделать это следующим образом:

git checkout -b <branch name>

Затем вы работаете над этой веткой коммит над этой веткой.Затем снова перейдите к мастеру с помощью

git checkout master

Если есть какие-либо коммиты, которые вы хотите получить от удаленного мастера, получите их по

git pull origin master

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

git rebase master

Затем переходите к мастеру и снова выполняйте ребаз с ответвлением на

git rebase <branch name>

Затем вы можете простонажмите ваш код на удаленный мастер

0 голосов
/ 14 мая 2019

-u требуется только при создании новой ветви.В противном случае, вы должны просто сделать git push private master или как сокращение git push.

0 голосов
/ 14 мая 2019

Все, что я вижу в вопросе, в порядке. Ошибок нет, локальная ветка master успешно отправлена ​​на удаленную master. Ваше ожидание увидеть private -> master неверно: private - это имя удаленного, git использует его для получения своего URL из конфигурации. Но git подталкивает ветви, так что master к master, и вы видите master -> master.

Если у вас есть ветвь с именем private, вы должны нажать ее отдельно: git push private -u private. Если вы хотите, чтобы ветвь private была отправлена ​​на удаленный master: git push private -u private:master, но я рекомендую, чтобы имена локальных и удаленных ветвей имели одинаковые имена.

Что касается ошибки

! [rejected] private -> private (fetch first)
error: failed to push some refs to 'github.com/vdorozco/roster'
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.

см. Невозможно перейти на GitHub - постоянно повторяется необходимость слияния

Вам необходимо обновить локальный репозиторий с помощью git pull [--rebase] private master.

https://stackoverflow.com/search?q=%5Bgit%5D+update+were+rejected

0 голосов
/ 14 мая 2019

Вы создали ветку с именем private (запустив git checkout -b private), но затем вы только выдвинули ветку master (запустив git push private master).Помните, что синтаксис команды push:

git push <remote> <refspec>

Этот первый параметр указывает имя удаленного, а не имя ветви.

Если вы хотите нажатьЛокальная ветвь private на ваш пульт с именем private, вы должны написать:

git push -u private private

Если вы хотите переименовать вашу локальную ветвь private на master на пульте, вы должны написать:

git push -u private private:master
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...