相关疑难解决方法(0)

git push --all --tags:不兼容

当我尝试将所有分支和标签推送到远程时,git 发出以下错误:

# git push origin --all --tags
fatal: --all and --tags are incompatible
Run Code Online (Sandbox Code Playgroud)

但是,这有效:

# git push origin refs/heads refs/tags
Everything up-to-date
Run Code Online (Sandbox Code Playgroud)

问题:

  1. 为什么 git 命名 push-all-branches--all而不是--branchesor --headsgit push origin --all只推送分支,而不是所有引用。这种命名背后的哲学是什么?这是否意味着标签真的是 Git 存储库中的二等公民?

  2. 为什么 git 不允许同时使用--alland --tags


附注。我知道有一个--follow-tags选择。我知道有些人不建议推送所有标签,但此线程与此无关。


man git-push

- 全部

推送所有分支(即 refs/heads/ 下的 refs);不能与其他 <refspec> 一起使用。

--标签

除了在命令行中明确列出的 refspecs 之外,refs/tags 下的所有 refs 都会被推送。

git git-push

11
推荐指数
1
解决办法
2428
查看次数

如何将标签导入Gitlab

我刚刚将我们的存储库从github转换为内部gitlab.我开始得到一个裸的本地存储库,我已经能够获得一个新的master到gitlab.

在我的本地存储库中,git标记显示了我在github上的标记列表.但是没有一个标签出现在gitlab中.

我有GitLab 6.6.0.pre fe6c534.

所以我如何将我的标签导入gitlab?

gitlab

10
推荐指数
1
解决办法
3479
查看次数

为什么git默认不推送标签?

Git的默认行为不是将标记从本地存储库推送到关联的远程存储库.在本回答中,解释了如何为单个存储库更改此行为.

我的问题是,为什么这是Git的设计行为?特别是设置自动推送标签的缺点是什么?

git git-tag

9
推荐指数
1
解决办法
1005
查看次数

使用参数创建git别名

我写了下面的git别名来将我的提交推送到origin并用传递给别名的参数标记它,然后推送标签

pomt = !git push origin master && git tag '$1' && git push --tag
Run Code Online (Sandbox Code Playgroud)

用法:

git pomt myTagGoesHere
Run Code Online (Sandbox Code Playgroud)

但是,这会因错误而失败

致命的'myTagGoesHere'似乎不是一个git存储库

我已经发现还有其他选项可以同时实现这个 推送git提交和标签

但我很好奇我创建的别名有什么问题,并且仍然想知道如何这样做只是为了学习如何使用参数创建别名

这是在Windows上,顺便说一句,如果这对shell脚本有任何影响

git

9
推荐指数
2
解决办法
2979
查看次数

GitPython创建和推送标签

在python脚本中,我尝试在git存储库上创建并将标记推送到origin.我使用gitpython-1.0.2.

我能够检查一个现有的标签,但无法找到如何将新标签推送到远程.

非常感谢

python git gitpython

7
推荐指数
2
解决办法
4211
查看次数

如何将所有新的上游分支与我的 fork 同步?

前段时间我分叉了一个 git repo。从那以后,有几个新的提交到 master 分支。https://help.github.com/articles/syncing-a-fork/解释了如何将上游主分支与本地主分支同步,然后将这些提交推送到我的分支。

但是它没有提到如何同步新的上游分支。当我最初在 github 上 fork 项目时,它看起来像它带来了所有当时的分支。

我看过有关如何一次同步一个分支的解释。有没有办法一次同步所有新旧分支?

I haven't made any commits to my fork. Thus I am looking for a fast forward sync.

Edit: Another way to say this:

I want

git ls-remote origin
Run Code Online (Sandbox Code Playgroud)

to match

git ls-remote upstream
Run Code Online (Sandbox Code Playgroud)

This would include branches and tags.

git github

7
推荐指数
1
解决办法
4946
查看次数

git push --atomic - 没有失败

我一直在尝试对 使用相对较新的--atomic选项git push,但它对我不起作用,即,即使其他引用失败,它仍然允许某些引用更改。

这里的差异看来,远程服务器上也需要一些东西来接受原子标志。虽然这是有道理的,但似乎默认是使用它。

我正在使用 http 协议推送到 BitBucket 服务器实例。服务器上当前的 Git 版本是“git version 2.8.1”。

是否需要在服务器上配置某些内容才能使其正常工作?

编辑:

下面是一个可以复制的例子。

服务器上的配置:

$ git --version
git version 2.8.1

$ git config --get-all --show-origin  receive.advertiseatomic
file:/home/bitbucket/.gitconfig 1
Run Code Online (Sandbox Code Playgroud)

在客户端:

$ git --version
git version 2.8.2.windows.1

$ git push <local-path>/.git HEAD:refs/heads/wwww HEAD:refs/heads/zzz --force-with-lease=zzz --atomic
error: atomic push failed for ref refs/heads/zzz. status: 7

fatal: The remote end hung up unexpectedly
To <local-path>/.git
 ! [rejected]        HEAD -> wwww (atomic push failed)
 ! [rejected] …
Run Code Online (Sandbox Code Playgroud)

git git-push

5
推荐指数
1
解决办法
1579
查看次数

Git GPG错误签名标签

在谈到Git时,我有点像新秀.所以我决定阅读Scott Chacon的Pro Git.BTW好书,强烈推荐它.

无论如何得到了关于签名标签的部分.要使用GPG对标签进行签名,您必须设置私钥.但是,当我跑:

git tag -s v1.6 -m "my signed 1.6 tag"
Run Code Online (Sandbox Code Playgroud)

我得到以下内容:

C:\Users\Name\Desktop\git>git tag -s v1.6 -m "my signed 1.6 tag"
gpg: error loading `iconv.dll': The specified module could not be found.

gpg: please see http://www.gnupg.org/download/iconv.html for more information
gpg: skipped "Name <name@gmail.com>": secret key not available
gpg: signing failed: secret key not available
error: gpg failed to sign the data
error: unable to sign the tag
Run Code Online (Sandbox Code Playgroud)

所以,我完成了错误消息告诉我要做的事情,然后转到链接并按照说明进行操作.我将iconv.dll复制到包含gpg.exe(\ Git\bin)的文件夹中.再次执行命令并得到:

C:\Users\Name\Desktop\git>git tag -s v1.6 -m "my signed 1.6 tag" …
Run Code Online (Sandbox Code Playgroud)

git gnupg

4
推荐指数
1
解决办法
5075
查看次数

git pull - 默认情况下它会在远程获取标签吗?

我知道git fetch --tags会将所有标签从远程获取到本地。

我不确定git pull默认情况下是否会从远程获取标签,所以会吗?

git git-pull git-tag

4
推荐指数
1
解决办法
1500
查看次数

git标签还没有推到远程

在Git中,我创建了一些本地标签,其中只有一些我想推送到原点.

过了一会儿,我想检查推送到遥控器时错过了哪些标签.

我们是否有命令显示本地仓库中的所有标签但尚未推送到远程仓库?

谢谢.

git

2
推荐指数
1
解决办法
904
查看次数

使用所有分支恢复 gitlab 备份存储库捆绑文件

我需要从 gitlab 备份中恢复一些存储库。此备份包含所有存储库的 .bundle 文件。如何恢复包含所有分支的完整存储库?

如果我跑,git bundle list-heads myfile.bundle我可以看到所有的分支。

我想使用所有分支在本地恢复该 repo,以将其推送到新的/空的 gitlab 存储库。

我尝试使用 git clone、git pull 我能找到的所有其他技巧,但这只会导致一个只有 master 分支的 repo。

git gitlab git-bundle

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

标签 统计

git ×10

git-push ×2

git-tag ×2

gitlab ×2

git-bundle ×1

git-pull ×1

github ×1

gitpython ×1

gnupg ×1

python ×1