目前,我有 bonobo git 服务器应该至少在 2 台机器之间“处理同步”。
它工作正常,但最近我遇到了一个大问题,以及与 git 本身相关的第二个问题:
我不能简单地从每个客户端推送到它而不遇到褪色的“非快进”问题,虽然我相信这是倭黑猩猩和裸服务器的问题,但它的创建者简要地乞求不同。
以下不是复制粘贴,但它是我遇到问题时使用的命令,据我回忆,警告应该与此非常相似:
git push -u "server" ! [rejected] server/master -> master (non-fast-forward)
今天,我什至无法从一个客户获取另一个客户,而不会遇到“非快进”问题。然后我尝试使用镜像选项从它推送到服务器,由于问题 #1,这是唯一可以推送到服务器的选项,并从我的机器上的服务器中拉取。令我惊讶的是,这奏效了!但是现在尝试从另一台机器获取或拉取,问题仍然存在。我的问题是:为什么?!
以下只是来自Git Extensions的复制和粘贴:
git fetch --progress "client" Done From \\\CLIENT\project\git ! [rejected] master -> client/master (non-fast-forward)
我实际上已经使用修复了这个问题
git fetch -f "client"
,但我仍然不知道发生了什么。
免责声明:现在我已经要去git-scm.com尝试并详细了解 git 是如何工作的。也许我什至不应该尝试“完全同步所有内容”......
--
编辑:除了明显的“之前未拉动”问题外,我还发现了可能发生这种情况的两个原因,但在我的情况下没有一个帮助解决:rebase
用于编辑已经在其他地方复制的过去提交或具有不同名称的相同分支,这master
至少必须发生。后面的这个很有意义,除了它有时会起作用,并且在一些推动之后它会停止工作。另外,在获取方面,使用fetch -f
,它没有破坏任何分支。所以不是这样。