我想在默认情况下推拉所有分支,包括新创建的分支。
我可以为它定义一个设置吗?
否则,当我在本地添加一个新分支时,我想从服务器中获取它,最简单的方法是什么?
我创建了一个具有相同名称的新分支,并试图拉,但它不起作用。要求我提供分支机构的所有远程配置。怎么设置呢?
我想在默认情况下推拉所有分支,包括新创建的分支。
我可以为它定义一个设置吗?
否则,当我在本地添加一个新分支时,我想从服务器中获取它,最简单的方法是什么?
我创建了一个具有相同名称的新分支,并试图拉,但它不起作用。要求我提供分支机构的所有远程配置。怎么设置呢?
当前回答
首先将远程git添加到您的loacl with中
git remote add remote_name remote_address
而之后你只需要用下面的命令就可以了
git push --all remote_name
其他回答
我使用下面的命令将所有分支迁移到新的存储库。
~$ git clone --mirror <url_of_old_repo>
~$ cd <name_of_old_repo>
~$ git remote add new-origin <url_of_new_repo>
~$ git push new-origin master
~$ git push new-origin --mirror
注意:当从Atlassian Stash克隆一个repo到AWS CodeCommit(空白repo)时,我不得不使用第二个最后(即推主第一个)命令。我不确定原因,但在push (git push new-origin——mirror) default branch指的是master以外的一些其他分支。
如果你正在将分支从旧的回购转移到新的回购,并且没有所有的旧回购分支都在本地,你将需要首先跟踪它们。
for remote in `git branch -r | grep -v '\->'`; do git branch --track $remote; done
然后添加新的远程回购:
git remote add bb <path-to-new-repo>
然后你可以使用这个命令来推送所有:
git push -u bb --all
或者,如果您一次没有这样做,或者只想移动本地分支,您可以使用这里其他响应中提到的git配置命令配置repo。
重要的是,其他响应只推送所有LOCAL分支。如果分支只存在于一个备用的REMOTE存储库中,那么在没有首先跟踪它们之前,它们将不会移动。这里给出的for循环将帮助解决这个问题。
对我来说,转移所有分支和标签的完整过程是,结合@vikas027和@kumarahul的答案:
~$ git clone <url_of_old_repo>
~$ cd <name_of_old_repo>
~$ git remote add new-origin <url_of_new_repo>
~$ git push new-origin --mirror
~$ git push new-origin refs/remotes/origin/*:refs/heads/*
~$ git push new-origin --delete HEAD
最后一步是因为一个名为HEAD的分支由于通配符出现在新的远程中
要查看所有没有使用git branch -a的分支,你应该执行:
for remote in `git branch -r`; do git branch --track $remote; done
git fetch --all
git pull --all
现在你可以看到所有的分支:
git branch
要推动所有的分支试试:
git push --all
首先将远程git添加到您的loacl with中
git remote add remote_name remote_address
而之后你只需要用下面的命令就可以了
git push --all remote_name