【问题标题】:Commit and Branch disappeared suddenlyCommit 和 Branch 突然消失了
【发布时间】:2020-02-05 23:21:54
【问题描述】:

编辑:我们不是来自开发团队。 我已经克隆了 repo 以尝试下面列出的命令。

我的同事通过 Jenkins 启动了部署,并在部署停止后 5 分钟出现错误:

[WARNING] The requested profile "ntic" could not be activated because it does not exist.
[ERROR] Failed to execute goal external.atlassian.jgitflow:jgitflow-maven-plugin:1.0-m5.1:release-start (default-cli) on project nsnet-parent: Error starting release: Error starting release: a release branch [refs/remotes/origin/release/8.15.0] already exists. Finish that first! -> [Help 1]

在 jenkins 作业输出中找到指定提交的日志部分。

> git.exe config --local --remove-section credential # timeout=10
 > git.exe rev-parse "refs/remotes/origin/RCI^{commit}" # timeout=10
 > git.exe rev-parse "refs/remotes/origin/origin/RCI^{commit}" # timeout=10
Checking out Revision 7e91bd1bf2353bc74ddb491faf2f83917b487211 (refs/remotes/origin/RCI)
 > git.exe config core.sparsecheckout # timeout=10
 > git.exe checkout -f 7e91bd1bf2353bc74ddb491faf2f83917b487211
 > git.exe rev-list 7e91bd1bf2353bc74ddb491faf2f83917b487211 # timeout=10

因为我看不到分支名称 RCI 或最后一次提交。 我尝试过git reflog,但我看不到提交7e91bd1bf2353bc74ddb491faf2f83917b487211 或部署中使用的分支RCI。 你有什么想法,是否仍然可以恢复RCI分支和所有代码?

我们有 Jenkins on Windows 和 Gitlab-ci for git 项目 谢谢

【问题讨论】:

  • 你能试试运行git fetch && git branch -a --contains=7e91bd1bf吗?
  • windows 的 para '&&' 出错。 powershell 无法识别它
  • 好的,所以分开:git fetch 然后git branch -a --contains=7e91bd1bf
  • 对不起,我是白痴,我已经在单独的 linux 服务器上安装了 git。我已经克隆了 repo,但它似乎仍然是命令错误:error: malformed object name 7e91bd1bf
  • @rab "malformed object":提交根本不知道:stackoverflow.com/a/5549506/6309

标签: git gitlab


【解决方案1】:

我已经克隆了 repo,但它似乎仍然是命令错误:error: malformed object name 7e91bd1bf

我试过 git reflog 但我看不到提交 7e91bd1bf2353bc74ddb491faf2f83917b487211

如果提交被强制推送覆盖,则会发生这种情况:克隆存储库,并在其中执行 git log 或 git reflog 不会检索该提交。
最好:

  • 通过 Jenkins 作业从当前克隆的 repo 中恢复旧的提交/分支(它具有强制推送之前的历史记录)
  • 或使用远程存储库的新修改历史记录重新启动 Jenkins 作业,并检查错误是否仍然存在。

【讨论】:

  • 为了恢复 repo,我们使用了 Jenkins 完成的克隆。启动作业时执行 git clone。
  • @rab 强制推送(重写历史记录)可能是在 Jenkins 作业克隆之后完成的。使用来自 Jenkins 的克隆是个好主意,因为它仍然具有强制推送之前的历史。
猜你喜欢
  • 2018-03-23
  • 1970-01-01
  • 1970-01-01
  • 2014-02-06
  • 2022-08-18
  • 2017-12-28
  • 1970-01-01
  • 2011-10-01
  • 1970-01-01
相关资源
最近更新 更多