相关疑难解决方法(0)

删除不再位于远程存储库中的本地git标记

我们在git中使用标签作为部署过程的一部分.有时,我们希望通过从远程存储库中删除它们来清理这些标记.

这非常简单.一个用户在一组命令中删除本地标签和远程标签.我们有一个结合了两个步骤的小shell脚本.

第二个(第3个,第4个......)用户现在拥有不再反映在遥控器上的本地标签.

我正在寻找一个类似于git remote prune origin清除本地跟踪已删除远程分支的分支的命令.

或者,可以使用列出远程标记的简单命令来比较通过返回的本地标记git tag -l.

git git-tag

432
推荐指数
13
解决办法
15万
查看次数

为什么我的Git repo进入了独立的HEAD状态?

我今天最终得到了一个独立的头,同样的问题如下所述:git push说一切都是最新的,即使我有本地更改

据我所知,我没有做任何与众不同的事情,只是从我当地的回购中提交和推送.

那我怎么最终得到一个detached HEAD

git

365
推荐指数
7
解决办法
20万
查看次数

如何在git中列出所有标签以及完整的消息?

我希望git列出所有标签以及完整的注释或提交消息.这样的事情很接近:

git tag -n5
Run Code Online (Sandbox Code Playgroud)

这正是我想要的,除了它只显示标签消息的前5行.

我想我可以使用非常大的数字.我在这里可以使用的最高数字是多少?每台电脑都一样吗?

更新:我有很多时间考虑这个问题,现在我认为如果它非常长,我不一定要展示整个信息.这样的事似乎适合我:

git tag -n99
Run Code Online (Sandbox Code Playgroud)

如果标签消息真的超过99行,我不想看到所有这些.但是Git极其复杂和灵活.在什么情况下,这不是最好的解决方案?我注意到许多已发布的解决方案都使用了-lotion,但这不只是指定要搜索的模式吗?

tags git git-tag

327
推荐指数
8
解决办法
13万
查看次数

如何在git中编辑现有的标记消息?

我们的git存储库中有几个带注释的标签.较旧的标签有伪造的消息,我们想要更新为我们的新风格.

% git tag -n1
v1.0 message
v1.1 message
v1.2 message
v2.0 Version 2.0 built on 15 October 2011.
Run Code Online (Sandbox Code Playgroud)

在此示例中,我们希望使v1.x消息看起来像v2.0消息.有谁知道我们会怎么做?

git git-tag

205
推荐指数
8
解决办法
6万
查看次数

重新创建git标记后,"标记已存在于远程"错误中

运行以下步骤后出现以下错误:

To git@provider.com:username/repo-name.git
 ! [rejected]        dev -> dev (already exists)
error: failed to push some refs to 'git@provider.com:username/repo-name.git'
hint: Updates were rejected because the tag already exists in the remote.
Run Code Online (Sandbox Code Playgroud)
  1. 创建了存储库
  2. 在本地计算机上克隆了repo.
  3. 修改了README文件,提交了更改并推送了提交.
  4. 创建标签dev:git tag dev
  5. 推送标签: git push --tags
  6. 修改了README文件,提交了更改并推送了提交.
  7. 删除标签dev,再次创建并推送标签:

    git tag -d dev
    git tag dev
    git push --tags
    
    Run Code Online (Sandbox Code Playgroud)

为什么会这样?

我在Mac上.我使用Linux(Ubuntu)的朋友没有这个问题.我知道我可以git push --tags -f用来强制标记更新,但这很危险(例如,只在标记中重写提交,而不是在分支中).

git repository git-tag

134
推荐指数
6
解决办法
10万
查看次数

Git:refname'master'含糊不清

我查看了所有其他模棱两可的refname问题,但它们似乎都没有帮助.为什么我收到这个警告?

$ git checkout master
warning: refname 'master' is ambiguous.
$ git show-ref master
eef61c00da690f093063ac5a728e22fd21648104 refs/heads/master
$ git branch -a
  checkers
  exercises
* master
$ git remote -v
$ 
Run Code Online (Sandbox Code Playgroud)

git

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

在git中,如何将我的标签与远程服务器同步?

有没有办法让我的本地git标签与遥控器的标签保持同步?也就是说 - 不仅在创建时获得新标签(像往常一样,在fetch-ing/pull-ing时),而且还不再在遥控器上修剪标签,并在其他人git push -f的标签时删除现有标签.我知道我可以git fetch remotename遵循git remote prune remotename以实现分支的类似行为.

git git-tag

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

jitpack.io无法解析github repo

我有一个Github repo并在其上推送标签.

这是我主要项目的gradle文件.

apply plugin: 'com.android.application'

android {
    compileSdkVersion 23
    buildToolsVersion "23.0.0"

    defaultConfig {
        applicationId "dropbox.ric.es.myapplication"
        minSdkVersion 16
        targetSdkVersion 23
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

repositories {
    //mavenCentral()
    //jcenter()

    maven { url "https://jitpack.io" }

}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:appcompat-v7:23.0.1'
    compile 'com.github.rchampa:DropboxHttpConector:1.0.1'
}
Run Code Online (Sandbox Code Playgroud)

但是当我同步gradle时,我有以下错误 Failed to resolve com.github.rchampa:DropboxHttpConector:1.0.1

另一种尝试:

allprojects {
    repositories {
        jcenter()
        maven { url "https://jitpack.io" }
    }
}

dependencies …
Run Code Online (Sandbox Code Playgroud)

git android github jitpack

41
推荐指数
4
解决办法
2万
查看次数

从Subversion迁移到git,克隆所有分支并推送通过gitolite?

我一直在努力将我们的9个项目在一个SVN仓库中移动到9个独立的git repos,由gitolite在服务器上管理,然后关闭SVN.其中七个很容易,因为他们没有分支或标签所以在我的工作站上我能够做一个简单的事情:

git svn clone --stdlayout --no-metadata -A svnauthors.txt svn+ssh://user@host/var/subversion/project tempProject
Run Code Online (Sandbox Code Playgroud)

然后从我的工作站推送到gitolite服务器:

 git remote add origin ssh://gitolite@host/project
 git push -u origin master
Run Code Online (Sandbox Code Playgroud)

他们一直都很努力.现在最后两个项目更加困难,每个项目大约有30个标签/分支.在上面的其中一个项目中运行'git svn clone'后,我看到:

$ git branch -a
* master
  remotes/BatchUpload
  remotes/clarify_breadcrumb
  remotes/contact_type
  remotes/contact_upload_improvements
  remotes/file_cabinet
  remotes/mobile
  remotes/summary_tiles
  remotes/summary_updates
  remotes/tags/release-2.1.2
  remotes/tags/release-3.0.1
  remotes/tags/release-3.0.2
  remotes/tags/release-3.0.2c
  remotes/tags/release-3.1.1
  remotes/tags/release-3.1.3
  remotes/tags/release-3.1.4
  remotes/tags/release-3.1.5
  remotes/tags/release-3.1.5.UPDT
  remotes/tags/release-3.2
  remotes/tags/release-3.2.1
  remotes/tags/release-3.2.2.1
  remotes/tags/release-3.2.3
  remotes/tags/release-3.2.4
  remotes/tags/release-3.2.6
  remotes/tags/release-3.2.7
  remotes/tags/release-3.2.7.1
  remotes/trunk
  remotes/user_man_batch_upload
  remotes/user_management
Run Code Online (Sandbox Code Playgroud)

现在我如何将所有这些标签/分支下载到我的本地工作站,以便我可以通过gitolite推送它们并永久关闭SVN服务器?我需要在本指南中做些什么,为每个分支和标记执行'git checkout -b'?我应该使用svn2git或其他工具吗?

svn migration git

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

Git:重命名标签保持原始日期

在这个问题中,如何重命名 Git 标签?给出了重命名旧标签的说明。

我想知道这些步骤将保留已编辑标签中的原始日期。

例如,在我的gitrepo 中,git tag命令显示:

v0.1
v1.0.0-beta
Run Code Online (Sandbox Code Playgroud)

和 Github 显示:

在此处输入图片说明

我想将旧v0.1标签更新为更具描述性的v1.0.0-alpha(也遵循语义版本控制指南),但我也想保留原始日期(2013 年 12 月 4 日)。

是否可以使用上述问题的答案中给出的命令?据我了解,这些将是我的情况下的命令:

git tag v1.0.0-alpha v0.1
git tag -d v0.1
git push origin :refs/tags/v0.1
git push --tags
Run Code Online (Sandbox Code Playgroud)

versioning tags git version-control github

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

更改git存储库中标签的命名约定?

我有一个git存储库,其中包含许多格式为“ v1.2.3-rc-4”的标签,我想将其自动重命名为“ 1.2.3-rc4”。标记同时存在于本地和远程存储库中。

我要澄清的是,版本号中的数字部分应视为变量。以上值仅用于说明标签的格式。

有没有办法自动执行此更改?

git

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

当我使用Git GUI结帐时,为什么我的标签没有列出?

我有一个包含三个注释标签本地的Git仓库:v0.1.0,v0.1.1,和v0.1.2.

当我使用gitk(Repository→Visualize master的历史记录)查看项目的历史记录时,我可以看到每个标记分配给正确的提交.

gitk的项目历史

但是,当我尝试在Git GUI(分支→结帐...→标签)中签出我的标签时,标签v0.1.1不会出现.

Git GUI标签列表

当我去检查gitk中的每个标签时,我注意到标签的细节略有不同.详细信息v0.1.0并将v0.1.2其列为type commit,而标记v0.1.1列为type tag.

标签v0.1.1的详细信息

值得注意的是,我在这个标签上重写了历史.为了修复我的标签描述中的拼写错误,我使用了编辑标签消息git tag <tag name> <tag name> -f -m "<new message>".

v0.1.1在使用Git GUI结账时,为什么我看不到我的标签?它为什么显示为type tag

git git-gui git-tag

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