有人将一个名为testwith 的分支推git push origin test送到共享存储库.我可以看到分支git branch -r.
现在我正试图检查远程test分支.
我试过了:
git checkout test 什么都不做
git checkout origin/test给* (no branch).这令人困惑.我怎么能在"没有分支"?
如何查看远程Git分支?
我克隆了一个Git存储库,它包含大约五个分支.但是,当我这样做时,git branch我只看到其中一个:
$ git branch
* master
Run Code Online (Sandbox Code Playgroud)
我知道我可以git branch -a看到所有分支,但是我如何在本地拉出所有分支,所以当我这样做时git branch,它显示以下内容?
$ git branch
* master
* staging
* etc...
Run Code Online (Sandbox Code Playgroud) 我有一个名为'skeleton'的本地Git存储库,用于存储项目框架.它有一些分支,用于不同类型的项目:
casey@agave [~/Projects/skeleton] git branch
* master
rails
c
c++
Run Code Online (Sandbox Code Playgroud)
如果我想查看一个新项目的主分支,我可以做
casey@agave [~/Projects] git clone skeleton new
Initialized empty Git repository in /Users/casey/Projects/new/.git/
Run Code Online (Sandbox Code Playgroud)
一切都是我想要的.具体来说,新的主分支指向骨架主分支,我可以推拉以移动对基本项目设置的更改.
但是,如果我想要克隆另一个分支,那么什么不起作用.我无法得到它,所以我只拉动我想要的rails分支,例如分支,然后新的存储库有一个master分支,rails默认情况下推送到骨架存储库的分支并从中拉出.
这有什么好办法吗?或者,也许这不是Git想要我构建事物的方式,我当然对此持开放态度.也许我应该有多个存储库,Ruby on Rails骨架存储库跟踪主骨架存储库?任何克隆Ruby on Rails骨架存储库的单个项目.
我的问题与切换分支时的致命Git错误有关.
我尝试使用该命令获取远程分支
git checkout -b local-name origin/remote-name
Run Code Online (Sandbox Code Playgroud)
但我收到此错误消息:
致命:git checkout:更新路径与切换分支不兼容.
您是否打算签出无法解析为提交的"origin/remote-name"?
如果我手动创建一个分支然后拉远程分支,它就可以工作,就像创建一个新的克隆并检查分支一样.
为什么它不适用于我使用的存储库?
我一直在推动远程bitbucket回购,最近一位同事将他创建的新分支推到了同一个回购中.
我正在尝试获取他上传的更改.
$ git branch -a
* master
localbranch1
localbranch2
remotes/origin/master
Run Code Online (Sandbox Code Playgroud)
$ git branch -r
origin/master
在用于bitbucket的web ui中,我可以看到他所创建的分支.任何帮助/建议/方向将是最受欢迎的.谢谢.
您需要的任何进一步信息.
编辑1
$ git fetch bitbucket
Password for 'https://xxxxx@bitbucket.org':
From https://bitbucket.org/user/repo
* branch HEAD -> FETCH_HEAD
Run Code Online (Sandbox Code Playgroud)
如果他创建的分支名为new_branch_b,我应该期待看到:
$ git branch -r
origin/master
origin/new_branch_b
Run Code Online (Sandbox Code Playgroud)
编辑2
$ git remote update
Fetching bitbucket
Password for 'https://xxxxx@bitbucket.org':
From https://bitbucket.org/user/repo
* branch HEAD -> FETCH_HEAD
$ git branch -r
origin/master
Run Code Online (Sandbox Code Playgroud)
编辑3
[remote "bitbucket"]
url = https://user@bitbucket.org/user/repo.git
Run Code Online (Sandbox Code Playgroud)
我打电话给远程bitbucket而不是原点(至少这是我记得的,我刚刚设置它)
编辑4
我按照kan的回答更新了bitbucket远程配置.
$ git config -e
[remote "bitbucket"] …Run Code Online (Sandbox Code Playgroud) 克隆远程存储库后,它不会通过-a选项显示任何远程分支.可能是什么问题呢?怎么调试呢?在此片段中,未显示两个远程分支:
$ git clone --depth 1 git://git.savannah.gnu.org/pythonwebkit.git
$ cd pythonwebkit
$ git branch -a
* master
remotes/origin/HEAD -> origin/master
remotes/origin/master
$ git --version
git version 1.8.3.1
Run Code Online (Sandbox Code Playgroud)
在另一台机器上尝试相同的命令,它运作良好:
$ git clone --depth 1 git://git.savannah.gnu.org/pythonwebkit.git
Receiving objects: 100% (186886/186886), 818.91 MiB | 3.44 MiB/s, done.
$ cd pythonwebkit/
$ git branch -a
* master
remotes/origin/HEAD -> origin/master
remotes/origin/debian
remotes/origin/master
remotes/origin/python_codegen
$ git --version
git version 1.7.1
Run Code Online (Sandbox Code Playgroud)
尝试克隆另一个回购,它运作良好.虽然我可以在这台机器上再试一次,但最好知道什么是错的.
任何建议或提示都将受到欢迎.
编辑:答案摘要:从git版本1.8.3.2开始,需要同时使用"--depth"和"--no-single-branch"来获得与以前相同的行为.这被视为错误修复.
我设置了一个远程存储库,我可以对它进行新的更改,但我无法从中获取,我总是得到(相当神秘的)错误消息:
fatal: Refusing to fetch into current branch refs/heads/master of non-bare repository
fatal: The remote end hung up unexpectedly
Run Code Online (Sandbox Code Playgroud)
这是什么意思?我该怎么做才能获取?
(请注意,此远程仓库仅用作备份仓库,因此它应该是我本地存储库的精确副本.我真的无法理解为什么我可以推送它但不能从中获取...)
我的配置看起来像:
[remote "origin"]
url = ssh://blablablah
fetch = +refs/*:refs/*
mirror = true
Run Code Online (Sandbox Code Playgroud) 我在我的git repo中有一个名为xyz的文件.巧合的是,我还有一个名为xyz的分支.目前我在掌握,但我想结帐分支xyz.要使用的命令很简单
$ git checkout xyz
Run Code Online (Sandbox Code Playgroud)
但这会将文件签出xyz到当前的HEAD.如何将分支更改为分支xyz?
我有一个我正在处理的本地存储库,它的远程服务器托管在GitHub上.我最近创建了一个分支并开始研究它,进行了几次提交,现在希望将分支推送到GitHub并能够将其拉到另一个克隆的存储库.
要做到这一点需要做些什么?
如果使用GitHub无法做到这一点,我很乐意知道如何正常使用它.
当我git clone在存储库或使用时我在BitBucket上托管git pull origin master并且git pull origin myBranch它确实第二次拉,但是当我列出分支时git branch -v我只看到master.做git status什么也没什么.
如何将网络仓库中的所有分支机构拉到我的本地仓库?
可能是因为我更改了计算机并更改了git设置上的名称所以它只能让我得到master它因为它是默认分支而另一个只能由创建它的人访问吗?
我想开始在我的项目网站上使用GitHub Pages.这只需要gh-pages在repo中命名的分支(子树),并提供其内容.问题是网站的一部分(手动,更改日志,下载页面......)是由构建系统自动生成的,所以我想找到gh-pages在主要仓库保持打开时将这些更改提交到分支的最佳方法master(或任何地方).
为了提交gh-pages分支,我可以编写一个脚本,将repo克隆到一个临时目录中,进行修改,提交它们,然后将它们推回到主repo.但这听起来像一个容易出错的过程,所以我希望有一个更简单的方法.
一位朋友建议我可以将gh-pages分支作为子模块添加到主存储库中.我做了一个小实验,但它不太有效:
$ git init main
Initialized empty Git repository in /tmp/main/.git/
$ cd main
$ touch main.txt
$ git add .
$ git commit -m'Initial commit in main branch.'
[master (root-commit) 1c52a4e] Initial commit in main branch.
0 files changed, 0 insertions(+), 0 deletions(-)
create mode 100644 main.txt
$ git symbolic-ref HEAD refs/heads/gh-pages
$ rm .git/index
$ git clean -fdx
Removing main.txt
$ touch index.html …Run Code Online (Sandbox Code Playgroud) 我有一个项目,我是唯一的开发人员.然后,一位新的开发人员加入了该项目,并创建了他
我想创建一个单独的位置并下载此分支并从该新位置运行该分支,因此绝对没有冲突.
我在我的本地计算机上创建了一个新目录.我正在考虑做这个命令:
git checkout -b branch-name origin/branch_name
Run Code Online (Sandbox Code Playgroud)
但我知道这有点不对,因为我需要检查新的主干和分支,我猜?我很困惑这样做的正确做法是什么.有人可以向我解释一下这是如何做到的?
谢谢!