如何在本地和远程创建新分支?GIT

57

我是这样创建新分支的:

git branch dev-itt-9

然而,这只在本地创建了一个新分支:

git branch -a
* dev-itt-9 master testing
remotes/origin/HEAD -> origin/master remotes/origin/development remotes/origin/master remotes/origin/testing

如何正确创建一个既在本地又在远程的新分支呢?

我对git还很陌生,请原谅我的愚蠢问题。


对你的分支进行一些更改,然后提交并推送到源! - Deepak Biswal
git add .git commit -m "your message"git push origin dev-itt-9 - Deepak Biswal
2个回答

82
首先,您在本地创建分支:
git checkout -b <branch-name>

当您将其推送到远程服务器时,远程分支将自动创建。因此,当您准备好时,只需执行以下操作:
git push <remote-name> <branch-name>

<remote-name> 通常为 origin,这是git给你克隆的远程库的名称。您的同事只需拉取该分支,它就会自动在本地创建。

来源:此答案是https://dev59.com/J3I_5IYBdhLWcg3wHfSr#1519032的副本。


我可以使用“remotes/origin”而不是纯粹的“origin”吗?有什么区别? - chipbk10
1
远程名称是origin。基本上根据您的问题,您需要执行:git push origin dev-itt-9。这将在您的远程创建origin/dev-itt-9。 - Deepak Biswal
1
@DeepakBiswal 看起来你从 https://dev59.com/J3I_5IYBdhLWcg3wHfSr#1519032 复制了这个答案。你在使用别人的作品而没有给作者以功劳。这是剽窃行为,在 Stack Overflow 上是不受欢迎的。记得在使用其他来源时始终添加显著的归属。谢谢! - MrFregg

35
假设您已经创建了本地分支(使用git branch <branch-name>git checkout -b <branch-name>),并且您正在要推送的分支上(例如使用git checkout <branch-name>),则可以使用以下命令:
git push -u origin <branch-name>

说明:

  • -u = --set-upstream :将此新远程分支设置为跟踪分支。
  • origin :您的远程代码库的名称

explications:

  • -u = --set-upstream:将此新的远程分支设置为跟踪分支。
  • origin:您的远程仓库的名称。

我的分支名称是dev-itt-9,对吧?那为什么不用“git push -u remotes/origin dev-itt-9”呢? - chipbk10
不确定“remotes/origin”会产生什么副作用。git push origin dev-itt-9 可以为您完成;如果想要跟踪(新的)远程分支,则添加 -u - Chris Maes
我认为你应该从这个答案中删除git branch <branch-name>方法 - 当在其他分支上时,无论如何都必须先进行检出,对吗? - Line
有争议的。我做了一些修改,可能会使我的答案更清晰。 - Chris Maes

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接