我正在尝试使用linux将整个存储库克隆到我的机器上.我用了
git clone <url>
Run Code Online (Sandbox Code Playgroud)
然后我进入了下载和输入的文件夹
git branch
Run Code Online (Sandbox Code Playgroud)
在终端.它只显示我的主人,而不是显示在远程存储库中的其他分支.如何克隆所有分支?
我知道对于遥控器中的每个分支我都可以单独使用
git checkout -b <name of local branch> origin/<name of remote branch>
Run Code Online (Sandbox Code Playgroud)
但除此之外有什么办法吗?
当我git clone在存储库或使用时我在BitBucket上托管git pull origin master并且git pull origin myBranch它确实第二次拉,但是当我列出分支时git branch -v我只看到master.做git status什么也没什么.
如何将网络仓库中的所有分支机构拉到我的本地仓库?
可能是因为我更改了计算机并更改了git设置上的名称所以它只能让我得到master它因为它是默认分支而另一个只能由创建它的人访问吗?
如何将所有远程分支拉到我自己的存储库?
如果我输入:
git branch -a
Run Code Online (Sandbox Code Playgroud)
我得到了很长的分支列表,但如果我输入:
git branch
Run Code Online (Sandbox Code Playgroud)
我只看到其中的两个.
如何将所有分支拉入本地列表?
我知道我能做到:
git checkout --track origin/branch-name
Run Code Online (Sandbox Code Playgroud)
但是,它一次只能拉出并检出一个分支.有没有什么方法可以一次性完成所有这一切,而不需要git checkout --track origin/branch-name一遍又一遍地运行这些繁琐乏味的工作?
PS.我尝试了以下命令,没有一个命令使远程分支出现在我的git branch列表中:
git fetch --all
git remote update
git pull --all
Run Code Online (Sandbox Code Playgroud) 我从不期望重命名git repo,更具体地说,它是顶级文件夹保存项目,会非常困难.是的,项目包含一些子模块,但它是需要重命名的顶级文件夹,而不是子模块文件夹.Git似乎在其子模块机制中记录了一些奇怪的绝对路径.
让我们假设一下
/tmp.proj_master和proj_mod.porj_master,proj_ALL然后克隆prom_mod为其中的子模块.proj_ALL为proj_onebillion.然后黑魔法发生了.以下步骤将重现我提到的问题.我使用的git版本是:
$ git --version
git version 1.7.9.5
Run Code Online (Sandbox Code Playgroud)
初始化proj_master.
$ cd /tmp
$ mkdir proj_master; cd proj_master
$ git init .
$ touch README
$ git add .; git commit -m "hello proj_master"
Run Code Online (Sandbox Code Playgroud)初始化proj_mod.
$ cd /tmp
$ mkdir proj_mod; cd proj_mod
$ git init .
$ touch …Run Code Online (Sandbox Code Playgroud)我在Github上有一个有2个分支的存储库:master和develop.
当我克隆存储库并运行$ git branch它时只显示master分支.
如果我跑,$ git branch -a我可以看到所有的远程分支.
现在,如果我做了$ git checkout develop,我收到消息:
分支机构开发设置跟踪远程分支从原点发展.
切换到新的分支'发展'
究竟发生了什么?develop当我跑步时$ git clone remote-url,或者当我跑步时,是否从远程分支获取了提交:$ git checkout develop或者两者都没有?
$ git pull origin develop退房后我要做一个develop,或者它已经完成了吗?
请帮助我了解clone遥控器上有多个分支时的工作原理.
我读了这个问题的答案,git fetch origin应该取得所有原始分支.在我的情况下,它似乎并没有给我任何分支.这是我做的:
最初,一个名为origin的远程有7个分支.我克隆了它.git branch然后只返回master.我做了git fetch origin,git branch仍然只是表演master.如何在不单独获取的情况下获取其他6个分支?
我在bitbucket有回购.它有2个分支master和Branch9_Artiflex但是当我通过源代码树(源树中的克隆克隆)将这个repo克隆到我的本地repo时,我只能看到master分支.
在我的本地计算机上创建新分支Branch9_Artiflex并从远程Branch9_Artiflex中提取所有数据不起作用,因为它们具有不同的提交历史记录
就在我以为我得到了git checkout -b newbranch - commit/commit/commit - git checkout master - git merge newbranch - git rebase -i master - git push工作流在git中,某些东西爆炸了,我看不出任何理由.
这是一般工作流程,过去对我有用:
# make sure I'm up to date on master:
$ git checkout master
$ git pull # k, no conflicts
# start my new feature
$ git checkout -b FEATURE9 # master @ 2f93e34
Switched to a new branch 'FEATURE9'
Run Code Online (Sandbox Code Playgroud)
...工作,提交,工作,提交,工作,承诺......
$ git commit -a
$ git checkout master
$ git merge FEATURE9
$ git …Run Code Online (Sandbox Code Playgroud) 我在当地有2个分支,例如:
- FirstApp
- SecondApp
如何将它们都推送到远程仓库?我还需要在远程创建两个分支吗?
非常感谢!
我曾经在我的私人git服务器上创建一个repo
git init --bare
Initialized empty Git repository in /home/poc/git_repo/local_display_multi_langs .git/
Run Code Online (Sandbox Code Playgroud)
然后我试着add remote在我的mac上工作.
git remote add origin ssh://poc@172.19.16.101/home/poc/git_repo/local_display_multi_langs.git
Run Code Online (Sandbox Code Playgroud)
执行以下命令
514 git flow init
519 git flow feature start read_xml
524 git ci -am "first ci"
Run Code Online (Sandbox Code Playgroud)
然后尝试将所有分支推送到我的私有git服务器的repo并获得如下例外
[src] $ git push origin feature
poc@172.19.16.101's password:
error: src refspec feature does not match any.
error: failed to push some refs to 'ssh://poc@172.19.16.101/home/poc/git_repo/local_display_multi_langs.git'
Run Code Online (Sandbox Code Playgroud)
我错过或误用了一些步骤吗?
如何将我的工作副本上的所有分支推送到远程服务器?
然后当我从我的git服务器克隆项目时.
如何获得新的克隆项目和原始项目是完全相同的.
感谢@VonC
现在,我可以将本地工作副本上的所有分支推送到远程服务器
git push origin --all
但是当我ssh://poc@172.19.16.101/home/poc/git_repo/local_display_multi_langs.git
在另一个文件夹下执行git clone时.
[local_display_multi_langs] $ git …Run Code Online (Sandbox Code Playgroud)