【发布时间】:2020-06-11 18:31:24
【问题描述】:
我编写了一个 C# .NET 核心程序的初稿作为概念证明,它作为 master 和 dev 分支上传。不幸的是,我忘记使用 .gitignore 文件,它上传了所有调试和发布构建文件。
从那以后,我重写了整个程序以提高工作效率,我想用它来重新定位/替换整个 master/dev 分支。我们正在使用 DevOps,但我一直使用 TFS,我不明白为什么 git “拒绝”推送我的分支。它希望我删除所有过时的远程开发工作,然后在我这样做时不合并它们。还尝试删除远程开发分支中的每个文件,所以它现在在 DevOps 站点上是空的。管理员不会给我强制推送和分支删除权限,可能是因为我不熟悉命令。
如何用我的本地代码重写 dev 和 master 分支?
推送我的代码(我在 dev 分支上并且已经完成了“git add.”和“git commit -m “Comment”):
git push -f origin dev
Total 0 (delta 0), reused 0 (delta 0)
To [remote repository]
! [remote rejected] dev -> dev (TF401027: You need the Git 'ForcePush' permission to perform this action. Details: identity 'a7cf8844-7bf6-48af-88cc-3063f00ff148\[my credentials]', scope 'branch'.)
$ git pull origin dev
From [remote repository]
* branch dev -> FETCH_HEAD
fatal: refusing to merge unrelated histories
来自一个新的克隆:
git clone [remote repository]
Cloning into 'MyProject'...
remote: Azure Repos
remote: Found 407 objects to send. (316 ms)
Receiving objects: 100% (407/407), 6.47 MiB | 332.00 KiB/s, done.
Resolving deltas: 100% (61/61), done.
$ cd MyProject
$ git checkout -b dev
Switched to a new branch 'dev'
$ git pull origin dev
From [remote repository]
* branch dev -> FETCH_HEAD
fatal: refusing to merge unrelated histories
【问题讨论】:
-
抱歉,问题到底是什么?如果不使用某种
force,就无法推送重写的历史记录,就是这样。那么你到底做了什么,你想做什么?显示实际的 git 命令和 git 回复你的内容。 -
嗯,“拒绝合并无关历史”的问题很容易解决,就说
--allow-unrelated-histories。 -
@matt 是解决方法的催化剂,感谢您的帮助。
-
@secretclean 如果您的问题得到解决,请尽可能Accept your reply as an Answer,这对阅读此主题的其他社区成员会有所帮助。
-
@CeceDong-MSFT 我所有的问题和答案都被否决了。显然我只是个白痴,所以我认为这对任何人都没有好处。
标签: git azure-devops