相关疑难解决方法(0)

git clone --mirror和git clone --bare之间的区别是什么

git clone帮助页面有这样的说法--mirror:

设置远程存储库的镜像.这意味着--bare.

但是没有详细说明--mirror克隆与克隆的不同之处--bare.

git git-clone

447
推荐指数
8
解决办法
27万
查看次数

Git:在裸存储库中更改Active Branch的正确方法?

我有一个裸存储库,用作我项目的中央存储.所有开发人员都git clone <repo>愿意与之分享.当他们进行克隆时,他们会检查主分支(除非他们这样做git clone -n)因为repo.git/HEAD包含ref: refs/heads/master,使其成为活动分支.

问题是,如何正确更改活动分支?我可以简单地直接破解repo.git/HEAD文件,但这看起来很讨厌,而且,哈哈.

我尝试git checkout <otherbranch>在repo .git目录中做,但是因为我不在工作树中而失败了.

我试过git update-ref HEAD refs/heads/otherbranch但是刚刚更新的refs/heads/master与refs/heads/otherbranch相同(好吧,我在虚拟存储库中做了那个,而不是我的生产!)

我试过git update-ref --no-deref HEAD refs/heads/otherbranch,这几乎奏效了.它更新了HEAD文件,但它将其设置为指向的提交的SHA1 refs/heads/otherbranch.

我正在使用git版本进行测试1.7.0.2.msysgit.0.

我猜测没有办法做到这一点git push,因为允许所有和各种更改你的默认分支似乎有点不安全(!),但肯定有一个更好的方法在repo .git目录中执行它比直接黑客HEAD文件.

git

185
推荐指数
2
解决办法
5万
查看次数

跟踪所有远程git分支作为本地分支

将单个远程分支作为本地分支进行跟踪非常简单.

$ git checkout --track -b ${branch_name} origin/${branch_name}
Run Code Online (Sandbox Code Playgroud)

将所有本地分支推送到远程,根据需要创建新的远程分支也很容易.

$ git push --all origin
Run Code Online (Sandbox Code Playgroud)

我想反过来.如果我在一个源上有X个远程分支:

$ git branch -r 
branch1
branch2
branch3
.
.
.
Run Code Online (Sandbox Code Playgroud)

我是否可以为所有远程分支创建本地跟踪分支,而无需手动创建每个分支?说出类似的话:

$ git checkout --track -b --all origin
Run Code Online (Sandbox Code Playgroud)

我用google搜索和RTM,但到目前为止已经上传了.

git branch

160
推荐指数
8
解决办法
7万
查看次数

Git:什么是跟踪分支?

有人可以解释一个"跟踪分支",因为它适用于git?

这是git-scm.com的定义:

Git中的"跟踪分支"是连接到远程分支的本地分支.当您按下并拉动该分支时,它会自动推送并拉到与其连接的远程分支.

如果您始终从同一个上游分支拉入新分支,并且您不想明确使用"git pull",请使用此选项.

不幸的是,对于git和来自SVN的新手来说,这个定义对我来说绝对没有意义.

我正在阅读" Git的实用指南 "(顺便说一句好书),他们似乎建议跟踪分支是一件好事,并且在创建第一个遥控器(原点,在这种情况下)后,你应该将您的主分支设置为跟踪分支,但遗憾的是,它不包括为什么跟踪分支是一件好事,或者通过将主分支设置为原始存储库的跟踪分支而获得的好处.

有人可以赐教(英文)吗?

git version-control branch

144
推荐指数
5
解决办法
9万
查看次数

gitosis与gitolite?

我正在寻找安装一个git服务器来与我的团队共享项目.我不想在服务器上为每个需要git访问权限的开发人员创建具有SSH访问权限的用户帐户.似乎有两个并发的解决方案可以解决这个问题:gitosis和gitolite.

我找不到两种解决方案之间的任何比较.它们之间的主要区别是什么?还有其他类似的解决方案?

git gitosis gitolite

138
推荐指数
4
解决办法
8万
查看次数

将Git远程HEAD更改为指向除master之外的其他东西

如何将Git遥控器的HEAD引用设置为指向除"master"之外的其他内容?

我的项目有一个不使用"主"分支的策略(所有分支都有有意义的名称).此外,规范主存储库只能通过ssh://访问,没有shell访问权限(如GitHub或Unfuddle).

我的问题是远程存储库仍然有一个HEAD引用refs/heads/master,但我需要它指向一个不同的分支.这导致两个问题:

  1. 克隆回购时,有这个,

    警告:远程HEAD是指不存在的ref,无法结帐.

    这令人困惑和不方便.

  2. 基于Web的代码浏览器依赖于HEAD作为浏览树的基础.我需要HEAD指向一个有效的分支,然后.

git git-remote git-branch

120
推荐指数
8
解决办法
17万
查看次数

很难理解git-fetch

我很难理解git-fetch的细微差别.我知道做一个fetch,将远程refs提取到本地跟踪分支.

我有几个问题:

  1. 是否有可能本地跟踪分支不存在?如果是,那么它会自动创建吗?

  2. 如果我执行fetch并指定非跟踪分支作为目标,会发生什么?

  3. git-fetch的手册页指定:

    git-fetch <options> <repository> <refspec>
    
    Run Code Online (Sandbox Code Playgroud)

我如何使用refspec从远程主站获取内容到其远程跟踪分支?我相信如果我现在的HEAD在主人身上并且我跑了,这可能是可能的

git fetch origin master

但是,我可以使用<+?src:dest>refspec来实现同样的目的吗?我认为这将有助于我更好地理解这些概念.

还有一个问题:

我的.git/config文件有以下行用于获取(仅显示相关行):

fetch = +refs/heads/*:refs/remotes/origin/*
Run Code Online (Sandbox Code Playgroud)

有人可以解释这条线的确切含义吗?

git git-fetch

52
推荐指数
3
解决办法
3万
查看次数

删除git branch -a列出的分支

该命令git branch -a列出了一堆不在存储库上的分支,而不是本地分支.怎么能删除这些?

* develop
  master
  remotes/origin/cloner
Run Code Online (Sandbox Code Playgroud)

例如,remotes/origin/cloner曾经存在于repo中,但它已被删除,我希望它在输入时不会出现git branch -a.

git

19
推荐指数
1
解决办法
4402
查看次数

git bundle:捆绑标签和头

我在几台机器上开发.我想为每个开发机器上的每个项目都有一个存储库,我想让它们保持同步而不使用我可以推送的远程存储库.(目前我买不起专用机器).

我认为git bundle是适合这项工作的工具.当我在机器A上完成工作时,我只是简单地捆绑我的仓库,并在机器B上解开捆绑.这让我有了这样的问题:

是否可以在包中嵌入有关标签和分支的信息?特别是,我如何捆绑标签对象?

编辑:只是一个注释 - 我希望尽可能自动化这个工作流程.我不想将捆绑视为远程.而不是那样,我想将捆绑包复制到我的存储库中 - 即添加提交和标记,快进现有分支并在分支不存在时添加新分支.

git bundle

6
推荐指数
1
解决办法
4394
查看次数

你为什么需要Gitosis或Gitolite?

对不起我的无知 - 但是获得Gitosis或Gitolite会有什么好处.

我有一台Synology NAS服务器在运行,但我不能只在NAS上的任何文件夹上创建一个"裸"吗?

问候

git gitosis gitolite

3
推荐指数
1
解决办法
4151
查看次数

在git中显示每个分支的最新提交

有没有办法在git中显示每个分支的最新提交?

我在git中有一个代码库,我已经设置了一段时间.它有几个分支用于不同的功能.我需要进入并更新/解决一些代码然而我选择将它们命名为太一般,现在我无法分辨我最后一个工作,甚至哪个具有我的功能.

理想情况下,我希望在每个分支中看到最后一次提交,以便概述我上次遗留的内容.有命令这样做吗?我只需要看看我上次工作的地方.我想避免切换到每个分支并查看其日志.

git

3
推荐指数
1
解决办法
150
查看次数