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

时间:2016-01-11 19:46:27

标签: git branch

我需要在github上为项目创建一个新功能。我有权访问该帐户。我在主人身上创建了一个名为“myBranch'”的新分支。在终端我跑git clone https://github.com/test/example.git。现在,如果我运行git branch -a,我看到我在master上签出,我新创建的分支是红色的。

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

我的问题有两个问题。我是否应该通过克隆远程仓库然后运行git branch 'someNewBranch'在本地创建分支。在那种情况下,我只是检查该分支并开始处理项目并提交正常而不是推送?这会在github上创建一个新的远程分支,它是我新的本地分支的副本吗?或者,鉴于我已经通过github接口创建了一个远程分支,是否有一种简单的方法可以简单地开始在该分支上工作?

2 个答案:

答案 0 :(得分:0)

我不认为将它作为远程分支是错误的。你应该保留你在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 checkout <branchname> 

开始分支并开展工作的最简单方法是:

git branch <yourbranchname>
git checkout <yourbranchname>

然后你做了一些提交:

git push --set-upstream origin <yourbranchname>

但是为功能设置远程分支并没有错。这样其他开发人员也可以查看它。

如果您已完成分支机构的工作,可以将其与master(或您的开发分支)合并:

    git checkout develop
    git merge <branchname>

然后使用功能名称对其进行标记:

    git tag feature/<myfeaturename>

如果你有一个gpg密钥,你甚至可以签名说明你是所有者:

   git tag -s feature/myfeature 

然后你可以再次安全删除它:

   git branch -d <mybranch>

然后你知道,当你将你的功能合并到你的开发分支并保持你的分支列表不增长

答案 1 :(得分:0)

如果你在github上创建了分支,就像你说的那样,是一个远程分支。现在你只需要在本地获取它:

git fetch origin

此时,您将拥有功能分支的本地副本。

通过执行以下操作开始处理:

git checkout your-feature-branch

如果您首先在本地创建分支,则执行此操作以在github上创建它并按下:

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