Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
git-启动新功能分支的正确工作流程_Git_Branch - Fatal编程技术网

git-启动新功能分支的正确工作流程

git-启动新功能分支的正确工作流程,git,branch,Git,Branch,我需要为github上的项目创建一个新功能。我有权使用这个帐户。我在母版上创建了一个名为“myBranch”的新分支。然后,在终端中,我运行了git clonehttps://github.com/test/example.git。现在,如果我运行git branch-a,我会看到我在master上签出,并且我新创建的分支是红色的 在github上创建新分支是错误的吗?因为现在它是一个远程分支,我真正想要的是开始在本地开发新功能 我的问题有两个方面。我应该通过克隆远程repo,然后运行git b

我需要为github上的项目创建一个新功能。我有权使用这个帐户。我在母版上创建了一个名为“myBranch”的新分支。然后,在终端中,我运行了git clonehttps://github.com/test/example.git。现在,如果我运行git branch-a,我会看到我在master上签出,并且我新创建的分支是红色的

在github上创建新分支是错误的吗?因为现在它是一个远程分支,我真正想要的是开始在本地开发新功能


我的问题有两个方面。我应该通过克隆远程repo,然后运行git branch'someNewBranch'在本地创建分支吗。在这种情况下,我只需签出该分支并开始处理项目,然后按正常方式提交,而不是推送?这会在github上创建一个新的远程分支,它是我新的本地分支的副本吗?或者,考虑到我已经通过github的接口创建了一个远程分支,有没有一种通用的方法可以简单地开始处理该分支

我不认为把它作为远程分支是错误的。保存您在github上所做的事情的历史记录是正确的做法

谢谢你的提问。如果您首先克隆并创建了一个分支,那么它还没有远程等价物。但是,当您尝试推送时,无论如何都必须创建一个远程分支。Git永远不会自动创建远程分支(使用默认设置)。它将发出以下信息:

fatal: The current branch blob has no upstream branch.
To push the current branch and set the remote as upstream, use

git push --set-upstream origin <yourbranchname>
然后您可以再次安全地删除它:

   git branch -d <mybranch>
git分支-d

然后您知道,当您将功能合并到您的开发分支中时,如果您在github上创建了分支,也就是您所说的远程分支,那么您的分支列表将不会增长。现在,您只需在本地获取它:

git fetch origin
此时,您将拥有功能分支的本地副本

通过执行以下操作开始工作:

git checkout your-feature-branch
如果您先在本地创建分支,则可以在github上创建分支并推送:

git push --set-upstream-to origin your-feature-branch

谢谢你的回答。你是说在我克隆了远程repo/目录之后,我可以在本地计算机上创建一个新的分支。进行一些更改,添加一个特性并提交-m“newFeature”。那么,当我去推的时候,我需要设置一个上游?我不明白。上游不是已经设置为我从中克隆的github吗?我的意思是,当你创建了一个远程分支(比如通过github branch菜单),你可以创建一个同名的本地分支,而无需拉动,然后在那里做一些工作,并通过设置原点来推动它。那就行了。当然,通过拉你已经得到了它们。我会把答案修改得更清楚。啊,我误解了你的问题。实际上,您也可以使用push将代码推送到存储库的其他副本。因此需要原产地。Origin只是您从中克隆的回购协议的别名。
    git tag feature/<myfeaturename>
   git tag -s feature/myfeature 
   git branch -d <mybranch>
git fetch origin
git checkout your-feature-branch
git push --set-upstream-to origin your-feature-branch