我在GitHub上创建了一个repo,到目前为止只有一个$this->container->get('security.context')->isGranted('ROLE_SUPER_ADMIN')
分支。我的本地工作副本与GitHub上的远程/来源master
完全一致。
我现在想在GitHub上创建一个master
分支,以便团队中的其他人可以开始将更改推送到development
(而不是直接推送到development
)并提交PR,请求代码评论等。
所以我尝试在本地创建一个新的master
分支并推送它:
development
但是git只是说git checkout -b development
git push origin development:master
。所以我问:
如果我当前使用Everything up-to-date
,我该如何创建一个包含master
精确副本的远程development
分支? < / p>
答案 0 :(得分:37)
当你这样做时
$ git push origin development:master
实际发生的是git正在<local>:<remote>
并将<remote>
更新为<local>
分支。
自从git checkout -b development
执行master
后,您的本地development
已完成所有提交master
;因此它表明一切都是最新的。
你可以做到
$ git checkout -b development
$ git push origin development
推送新分支
答案 1 :(得分:10)
您可以像这样列出所有当前分支:
git branch -a
这将显示所有本地和远程分支。假设只有一个master
分支,您将看到以下内容:
* master
remotes/origin/master
*
表示当前分支。
要创建一个名为developer的新分支,请使用以下命令:
git checkout -b develop
-b
标志创建分支。现在列出分支应该显示:
* develop
master
remotes/origin/master
您不应直接将任何内容提交到master
分支。而是在develop
分支上完成所有工作,然后在有新的公共发行版时将开发合并到master
中。
您已经在自己的develop分支中,但是如果不在,切换方式如下:
git checkout develop
这与创建分支的方式相同,但没有-b
。
进行更改时,请照常添加并提交:
git add .
git commit -m "whatever"
第一次将其推入遥控器时,方法如下:
git push -u origin develop
-u
标志代表--set-upstream
。第一次之后,您只需要这样做:
git push
一旦您的develop
准备合并到master
中,您就可以这样做:
首先切换到您的本地主分支:
git checkout master
要将开发合并为主,请执行以下操作:
git merge develop
然后将本地主机中的更改推送到远程主机:
git push
完成。
如果您不再需要develop
分支,或者只想删除它并重新开始,则可以执行以下操作:
删除远程开发分支:
git push -d origin develop
然后删除本地分支:
git branch -d develop
-d
表示删除。
答案 2 :(得分:4)
您也可以使用git flow。这将自动创建具有正确命名约定的分支,这是一个好习惯。
git flow init
然后按下
git push --set-upstream origin develop
答案 3 :(得分:3)
这对我有用
git push origin development