0

我正在备份我们的开发 VSTFS Git 存储库中的一些数据。当我运行构建时,构建目录当然会被擦除,与 Git 存储库同步,从外部源下载数据,然后推送回 Git。

但是,每次发生这种情况时,即使我在 push 之前执行了 Git pull,它也会说我落后了,需要快进。所以我做了一个 Git pull -ff。

但是,我想更多地了解为什么会发生这种情况。是因为目录每次都会被擦除吗?

这是构建: https ://drive.google.com/file/d/0B8bQlVTjVjdoSWR6ZkhGOVNTd0U/view?usp=sharing

您可以忽略仅检索数据的 Powershell。

这是批处理文件

ECHO ADD GIT TO PATH
PATH %PATH%;C:\Program Files\Git\cmd
ECHO TEST PATH
set PATH
ECHO GIT STATUS
git status
ECHO GIT CHECKOUT MASTER
git checkout master
ECHO GIT PULL FASTFORWARD
git pull origin master -ff
ECHO GIT ADD ALL
git add -A
ECHO GIT COMMIT ALL
git commit -m "Backing up Octopus P01 and P02"
ECHO GIT PUSH
git push origin master

没有 -ff

 ! [rejected]        master -> master (non-fast-forward)
error: failed to push some refs to 'http://xxxxxx:8080/tfsdev/xxxxx/_git/Development.Services'
hint: Updates were rejected because the tip of your current branch is behind
hint: its remote counterpart. Integrate the remote changes (e.g.
hint: 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.

我发现解决此问题的另一种方法是在构建的存储库设置中选择 Clean = true。这包括清理和重置

Syncing repository: Development.Services (Git)
Running 'git clean -fdx' on D:\BuildAgents\_work\7\s.
Running 'git reset --hard HEAD' on D:\BuildAgents\_work\7\s.
HEAD is now at ****** Updated GitTest.bat
Starting fetch...
Checking out ****** to D:\BuildAgents\_work\7\s
Checked out branch refs/heads/master for repository Development.Services at commit ******
4

1 回答 1

0

根据日志,导致问题的提交未暂存的更改。您可以在构建之前清理存储库。

在此处输入图像描述

于 2016-12-01T07:58:30.470 回答