小编Bil*_*oor的帖子

git在同一个提交中描述了两个标签

我们偶尔会在同一次提交中有两个标记.当我们为该提交使用git describe时,git describe总是返回第一个标记.我对git-describe手册页的阅读似乎表明应该返回第二个标签(这更有意义).

  SEARCH STRATEGY
     For each committish supplied, git describe will first look for a tag which tags
     exactly that commit. Annotated tags will always be preferred over lightweight tags, 
     and tags with newer dates will always be preferred over tags with older dates. 
     If an exact match is found, its name will be output and searching will stop.
Run Code Online (Sandbox Code Playgroud)

有没有办法git describe返回第二个标签?

git

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

如何解决"git status"未显示的未分级更改

考虑

$ git status
On branch chore/nbsp-fix-2
nothing to commit, working directory clean
$ git rebase -i master
Cannot rebase: You have unstaged changes.
Please commit or stash them.
Run Code Online (Sandbox Code Playgroud)

我如何计算出阻止git进行变基的未分阶段更改?

一些背景:有人设法在名称中添加具有不间断空格(%A0)的文件.这导致了存储库的问题.文件显示为未跟踪,git认为存储库是脏的 - 类似的问题.

我用来纠正问题的技术是在进行这些更改之前创建一个新的分支,并在这些更改之后挑选几个提交.不幸的是我现在处于这种情况.我可以想象有一些其他文件或其他遗留的问题阻止我继续前进.在错误的文件名之后挑选单个提交后,我现在处于这个位置.

我正在寻找解决这个问题的建议.什么是rebase看到这种状态看不到?

git

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

如何从命令行将test.testLogging.showStandardStreams设置为true?

通过查看stdout上的日志记录来编写单元测试时,可以方便地调试一些外部库甚至内部代码.

虽然我可以添加test.testLogging.showStandardStreams = true到build.graddle文件,但我宁愿做一些不那么永久的事情,比如从gradle的命令行执行设置这个标志.

我尝试了几种方法,似乎都没有用:

gradle test -Dtest.testLogging.showStandardStreams=true
gradle test -Ptest.testLogging.showStandardStreams=true
Run Code Online (Sandbox Code Playgroud)

通过更改属性字符串以及这些选项的其他变体.似乎没有什么可以做到的.

如何test.testLogging.showStandardStreams=true从命令行设置?

gradle

8
推荐指数
2
解决办法
1322
查看次数

现在的工人是否参与偷工作?

在a中ForkJoinPool ForkJoinTask,当前工作线程是否参与工作窃取?

我已经读到了fork连接池可以从阻塞或等待线程中窃取的含义.目前的工人似乎是一个明显的候选人 一旦工作人员调用.join()另一个任务,那么该任务基本上被阻止.

另一方面,我看到许多文章暗示了不同的结论.例如,当前工作者线程在等待分叉任务之前应该工作的普遍共识.

有迹象表明,讨论使用的几篇文章ForkJoinTask.getSurplusQueuedTaskCount,通过具有当前工人平衡在队列中的工作方法做了一些工作.如果当前工人也在偷窃,那么这似乎没有必要.

当然,我希望最大化线程操作并使所有工作者最大限度地运行.了解当前线程是否也窃取工作(例如何时.join被调用)将有助于澄清.

java multithreading fork-join

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

为什么克隆的存储库比获取的存储库大 10 倍?

我们有一个远程仓库,其大小已经爆炸(1.4G 到 14G)。我们正在尝试找出此存储库大小增加的原因并解决问题。

在这个过程中我们注意到 git clone 和 git fetch 之间的显着差异。

如果我们克隆仓库,克隆的仓库也是 14G。

git clone <remote>
Run Code Online (Sandbox Code Playgroud)

相反,如果我们从远程初始化并获取,本地存储库将恢复到预期的 1.4G。

git init
git remote add origin <remote>
git fetch
Run Code Online (Sandbox Code Playgroud)

我认为这两组命令即使不相同,也应该相似。

这表明克隆和获取之间存在显着差异。这些命令有何不同?

我们正在寻找确定遥控器修复方法。

请注意,远程位于 github 企业服务器上,因此我们对远程存储库的访问受到限制。


一些额外的统计数据

$ git clone git@$REMOTE/main.git .
Initialized empty Git repository in $HOME/cloned/.git/
remote: Counting objects: 439172, done.
remote: Compressing objects: 100% (238472/238472), done.
Receiving objects: 100% (439172/439172), 13.82 GiB | 19.92 MiB/s, done.
remote: Total 439172 (delta 186192), reused 436323 (delta 183501)
Resolving deltas: 100% (186192/186192), done.
Run Code Online (Sandbox Code Playgroud)
$ …
Run Code Online (Sandbox Code Playgroud)

git

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

git merge --no-commit with edits

如果我使用

git merge --no-commit <other-branch>
Run Code Online (Sandbox Code Playgroud)

然后进行更改,例如从合并中删除文件,这仍然是真正的合并吗?

我希望分支相关(通过合并),但我不希望新分支中的所有更改。

作为一个更具体的例子,other-branch 是旧版本的发布分支。当前分支是当前产品的开发分支。我们对应该移到开发分支的发布分支进行了一些更改。

我们过去曾使用过cherry-picks,但我觉得让git了解两个分支之间的关系可能有好处。

编辑过的合并仍然是合并吗?

git

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

标签 统计

git ×4

fork-join ×1

gradle ×1

java ×1

multithreading ×1