git添加远程分支

时间:2012-06-29 17:40:58

标签: git

我想添加一个遥控器,以及该遥控器的一个分支。

我做了git remote add <newname> <url>,然后我做了git fetch --all但是git branch -a没有显示远程的任何分支。我的.git / config显示添加的遥控器。

有人可以帮帮我吗?

6 个答案:

答案 0 :(得分:240)

我不确定您是否尝试从本地分支创建远程分支,反之亦然,因此我概述了两种方案,并提供了有关合并远程和本地分支的信息。

创建一个名为“github”的遥控器:

git remote add github git://github.com/jdoe/coolapp.git
git fetch github

列出所有远程分支:

git branch -r
  github/gh-pages
  github/master
  github/next
  github/pu

从github的远程分支(pu)创建一个新的本地分支(测试):

git branch test github/pu
git checkout test

将来自github的远程分支(pu)的更改与本地分支(测试)合并:

git fetch github
git checkout test
git merge github/pu

从本地分支更新github的远程分支(pu)(测试):

git push github test:pu

在远程上创建新分支使用与更新远程分支相同的语法。例如,在本地分支(测试)的github上创建新的远程分支(beta):

git push github test:beta

从github删除远程分支(pu):

git push github :pu

答案 1 :(得分:17)

您可以检查您的远程设置是否正确并且具有

的适当权限
git ls-remote origin

如果您调用了远程“原点”。如果您收到错误,可能无法正确设置安全性,例如将公钥上传到github。如果设置正确,您将获得远程引用的列表。现在

git fetch origin

将禁止任何其他问题,例如拔下的网络电缆。

完成后,您可以使用

获得上述命令所需的任何分支
git checkout some-branch

这将创建一个与远程分支同名的本地分支并检查它。

答案 2 :(得分:3)

以下是创建本地仓库并将更改推送到新远程分支的完整过程

  1. 创建本地存储库: -

    最初用户可能已经创建了本地git存储库。

    $ git init: - 这将使本地文件夹成为Git存储库,

  2. 关联远程分支 : -

    现在挑战是将本地git存储库与远程 master 分支相关联。

    $ git remote add RepoName RepoURL

    用法:git remote add []

  3. 测试远程

    $ git remote show ---&gt;显示远程名称

    $ git remote -v ---&gt;显示远程分支

  4. 现在推送到远程

    $git add . ----&gt;将所有文件和文件夹添加为git staged'

    $git commit -m "Your Commit Message" - - - &gt;提交消息

    $git push - - - - &gt;将更改推送到上游

答案 3 :(得分:2)

如果远程分支已经存在,那么您(可能)可以摆脱。.

git checkout branch_name

和git会自动设置为跟踪起源上具有相同名称的远程分支。

答案 4 :(得分:0)

我测试了@Samy Dindane在OP的评论中提出的建议。

我相信它可以,请尝试

git fetch <remote_name> <remote_branch>:<local_branch>
git checkout <local_branch>

这里是一个名为foo的虚拟远程存储库的示例,该存储库有一个名为bar的分支,在这里我创建了一个跟踪远程的本地分支bar

git fetch foo bar:bar
git checkout bar

答案 5 :(得分:0)

如果你创建了一个名为 A 的本地分支 你有一个名为 B 的远程分支 并且您希望远程分支 B 跟踪本地分支 A 的变化

在命令行或终端上执行以下操作

git branch --set-upstream-to=origin/B A

这将设置在您本地分支 A 的上游 到远程分支 B

然后运行

git pull 

从 B 拉取更改

然后运行

git push 

将更改推送到 B