相关疑难解决方法(0)

为什么`git push --force-with-lease` 失败并显示“rejected ... stale info”,即使我的本地仓库是最新的远程仓库?

我正在尝试将功能分支的变基强制推送到远程存储库。为了更安全一点,我试图--force-with-lease确保自上次获取分支以来没有发生其他更改。

由于我不明白的原因,这失败了:

$ git branch
* my-branch
  master

$ git push --force-with-lease origin my-branch -u
To gitlab.com:example/my-project.git
 ! [rejected]        my-branch -> my-branch (stale info)
error: failed to push some refs to 'git@gitlab.com:example/my-project.git'
Run Code Online (Sandbox Code Playgroud)

我尝试 fetch 以查看我的本地缓存是否以某种方式不同步:

$ git fetch

$ git push --force-with-lease origin my-branch -u
To gitlab.com:example/my-project.git
 ! [rejected]        my-branch -> my-branch (stale info)
error: failed to push some refs to 'git@gitlab.com:example/my-project.git'
Run Code Online (Sandbox Code Playgroud)

我尝试稍微简化 push 命令:

$ git push --force-with-lease
To gitlab.com:example/my-project.git
 ! [rejected]        my-branch -> my-branch (stale info) …
Run Code Online (Sandbox Code Playgroud)

git git-push

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

git fatal:没有标签可以描述<sha1 number>

我通过将它们应用于夜间构建来使用标签.然后,我想用输出describe --tags --match <latest tag>告诉我每晚构建我的图像有多远.这是用于QA测试.

我刚刚在比当前标记更旧的克隆中遇到错误.我运行了git fetch --tags,所以我在git tag输出中看到了标签,但是当我运行时git describe --tags --match <tagname>,我得到了fatal: No tags can describe <head sha1 version number>.此时我无法执行git pull来更新工作区.为什么会发生这种情况并且有解决方法?非常感谢

tags git commit

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

git diff给出了暧昧的论证错误

我最近从SVN转到git,并尝试学习git的方法.我需要找到我的存储库的2个分支之间已更改的文件.我使用以下命令:

git diff branch_2..branch_1
Run Code Online (Sandbox Code Playgroud)

我得到了以下错误:

fatal: ambiguous argument 'branch_2..branch_1': unknown revision or path not in the working tree.
Use '--' to separate paths from revisions, like this:
'git <command> [<revision>...] -- [<file>...]'
Run Code Online (Sandbox Code Playgroud)

git branch给出以下o/p:

git branch -a
* branch_1
master/origin
remotes/origin/HEAD -> origin/master
remotes/origin/branch_2
remotes/origin/branch_1
Run Code Online (Sandbox Code Playgroud)

git git-diff

16
推荐指数
2
解决办法
8795
查看次数

如何在没有整个回购历史的情况下仅下载AOSP源代码的工作目录?

最新的AOSP源代码的大小相当大(.repo目录大约为30-35 Gb,工作目录大约为15 Gb).有没有办法只下载最新版本的源代码(官方棉花糖版本)的快照,而没有整个回购历史记录?这样可以节省很多带宽和存储空间.

git android android-source

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

如何推动浅层更新?在远程设置receive.shallowUpdate?

我有一个项目,我无法访问git存储库.我想把它放在一个新的存储库(在Bitbucket上),但是当我试图git push -u origin --all获得! [remote rejected] master -> master (shallow update not allowed)所有分支时.

显然有一个receive.shallowUpdate配置选项,但如何在远程端设置它?

制作unhallow克隆不是一种选择,因为我无法访问原始的repo.

git bitbucket

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

将浅层仓库转换为普通仓库

我已经“浅化”了一个回购协议:

\n\n
FIRST_COMMIT="bf450342272a94117d78eae34a140a2a39359dad"\ngit rev-parse ${FIRST_COMMIT} > .git/shallow\ngit fsck --unreachable\ngit gc --prune=now\n
Run Code Online (Sandbox Code Playgroud)\n\n

现在我尝试推动:

\n\n
! [remote rejected] develop -> develop (shallow update not allowed)\n
Run Code Online (Sandbox Code Playgroud)\n\n

我知道这个限制是由于回购协议很浅造成的。

\n\n

如何将浅层仓库转换为普通仓库?

\n\n

我不在乎失去旧历史。其实我丢掉旧历史

\n\n

为了澄清这一点:

\n\n
    \n
  • 我希望转换后的存储库保留提交历史记录,以及浅层存储库的元数据(日期、作者、提交消息...)
  • \n
  • 我想彻底丢掉旧历史
  • \n
  • 我不关心与原始存储库的兼容性:这将被视为新存储库
  • \n
  • 我不关心提交是否被重新创建,只关心元数据被保留。
  • \n
\n\n

编辑

\n\n

简单地删除该.git/shallow文件是行不通的:

\n\n
\xc2\xbb git push -f --set-upstream myorigin develop\nerror: Could not read d18d4a247bebd32a3b57b2c0e5f9c28749083211\nfatal: revision walk setup failed\nerror: remote unpack failed: eof before pack header was fully read\nerror: failed to push some …
Run Code Online (Sandbox Code Playgroud)

git shallow-clone

6
推荐指数
2
解决办法
2274
查看次数

使用--depth = 1克隆时,查找Git仓库中的提交数量

要查找git分支上的提交数量,您可以执行以下操作:

$ git rev-list --count HEAD
920
Run Code Online (Sandbox Code Playgroud)

但是,如果您最初使用克隆--depth=1,则不起作用:

$ git clone https://github.com/ndmitchell/hoogle.git --depth=1
$ cd hoogle
$ git rev-list --count HEAD
1
Run Code Online (Sandbox Code Playgroud)

有没有办法获得--depth=1克隆的速度和减少的网络流量,但是还获得了提交数量的计数?

git

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

Git克隆:克隆后增加深度

我正在使用一个非常大的存储库。无论好坏,即使使用git clone --depth=1也会产生几 MB。整个仓库超过 1GB,我不需要那么多信息。

克隆一个存储库后,git clone --depth=X如何增加更多深度?

就我而言,我最初将深度设置为 1。有没有一种方法可以将所有详细信息的深度提高到 20,而无需删除并使用新的深度值重新克隆存储库?

git

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

当克隆完成后,使用 GIT 获取另一个分支 --深度 1

最近有人向我介绍了 git clone 的 --深度 1。显然这并没有获取所有历史记录并且速度要快得多。我用了:

git克隆--深度1-b开发https://github.MyCompany.com/CoolProduct/CoolProduct.git

这使我能够发挥、修改和分支开发分支。

但是,现在我想查看另一个分支“BillsFeature”,我尝试过: git checkout BillsFeature 并收到错误:pathspec 'BillsFeature' 与 git 已知的任何文件不匹配

这对我来说有一定道理。大概是因为我使用了--深度1,所以我没有拉下分支名称。我如何获得另一个分支? 我也不需要 BillsFeature 的历史记录。我应该说我尝试过: git fetch --depth 1 origin BillsFeature 似乎发生了一些事情。但是,当我执行 git status 时,我得到:

在分支开发上您的分支是最新的“起源/开发”。

没有什么可提交的,工作树干净

谢谢,戴夫

git github

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

为什么 `git blame` 与 GitHub blame 不同?

如果我克隆引导程序: git clone https://github.com/twbs/bootstrap

然后做一个 git 责备: git blame js/src/alert.js

看起来每一行最后都被同一个人触动过:

^7ffb61a (Patrick H. Lauke 2017-04-17 00:04:49 +0100   1) import Util from './util'
^7ffb61a (Patrick H. Lauke 2017-04-17 00:04:49 +0100   2)
^7ffb61a (Patrick H. Lauke 2017-04-17 00:04:49 +0100   3)
^7ffb61a (Patrick H. Lauke 2017-04-17 00:04:49 +0100   4) /**
^7ffb61a (Patrick H. Lauke 2017-04-17 00:04:49 +0100   5)  * --------------------------------------------------------------------------
^7ffb61a (Patrick H. Lauke 2017-04-17 00:04:49 +0100   6)  * Bootstrap (v4.0.0-alpha.6): alert.js
^7ffb61a (Patrick H. Lauke 2017-04-17 00:04:49 +0100   7)  * Licensed …
Run Code Online (Sandbox Code Playgroud)

git github

0
推荐指数
2
解决办法
325
查看次数

git fetch工作但checkout分支不起作用

我正在尝试checkout从我的upstream远程仓库获取的分支,但它似乎不起作用.

$ git fetch upstream
Fetching upstream
From github.com:group/repo
* [new branch]      feature-branch -> upstream/feature-branch

$ git checkout feature-branch
error: pathspec 'feature-branch' did not match any file(s) known to git.
Run Code Online (Sandbox Code Playgroud)

难道我做错了什么?

git

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