2014-02-24 138 views
0

在我正在开发的项目的DEV环境中,我正在Mac上运行虚拟机以模拟应用程序搅动的Visual Studio。虚拟机已安装到我的Mac上,并且已经创建并配置了Git环境。我想通过将它重命名为其他名称来区分我开始工作的分支的版本(当前的本地分支称为“主”)。同时,我想确保远程“主”分支受到保护,因为这是他人的分支。重命名分支并将“新建”分支推送到远程

据我了解,我应该用

git branch -m my-new-branch-name 

重命名我的本地分支,然后我可以做一个拉 - >推我的新的分支将是方便和我的工作分支机构/远程它的名字将是'我的新分支名称'。

这是正确的行为吗?

回答

1

如果您从主的当前位置的一个分支,当地的一个将被命名为my-new-branch-name,并推后,远程版本将origin/my-new-branch-name,假设你的遥控器被命名为origin(我相信它,是默认值)。

master应该是主分支。如果您正在与另一个需要在单独分支上工作的其他人一起工作,那么他们也应该分支出master。当然,这一切都取决于您的团队用于版本控制的模式。

Coding Horror有一篇很好的文章解释了如何在版本控制中使用分支的最常用模式。我建议阅读并确定你的团队使用哪种模式,或者最适合你的团队。

例如,在我的工作中,我们在每个任务中使用一个分支,将它们合并到master以便在部署到生产之前进行测试。有时我们会直接对master进行小的(1-2行)或时间要求严格的更改,但我们始终要求同事在提交更改前审查更改。

至于git具体去,你的计划听起来是正确的,除了你的远程分支是origin/my-new-branch-name而不是只是my-new-branch-name

0

是的。你做的是正确的事情。这就是简短的答案。

但是,如果您是git的新手,可能会被抓住或卡住,所以我会在这里引导您完成此过程。

如果您还没有提交改变,你可以做遥控器上的以下内容:

git stash 
git checkout -b my-new-branch-name master 
git stash apply 
git add . 
git commit -m 'committing new changes' 
git push origin my-new-branch-name 

的混帐藏匿命令只存储变更暂时所以你可以放心地结帐,然后混帐藏匿申请重新应用它们。这仅适用于未提交的更改。

如果您已将您的更改提交给master,您只需要按照原始帖子所述的方式创建分支,但是您可能还想从本地master分支中删除您的更改。

git branch my-new-branch-name master 
git reset --hard origin/master 

这将创建一个新的分支新的提交,然后你本地的master分支重置无论是在远程主分支。

现在完成了,你可以去你的本地机器(或任何其他克隆相同的回购),并拉下那个分支。

git fetch 
git checkout my-new-branch-name