0

我为我的开发设置了一个简单的 GIT 环境。一个是从远程主机克隆的主机,另一个是分支(也存在于远程主机上)。我通常在分支上工作,然后当我想要推送我的更改时,我会执行通常的 Git 命令序列,例如:

  1. git pull (确保一切都是最新的)
  2. 混帐添加
  3. git commit -m "消息"
  4. git 推送

当我执行 ' git push ' 时,我收到一条消息:

d96001d..d1cf61c  branch_release -> branch_release
[rejected]        master -> master (non-fast-forward)
error: failed to push some refs to '____________'
hint: Updates were rejected because a pushed branch tip is behind its remote
hint: counterpart. If you did not intend to push that branch, you may want to
hint: specify branches to push or set the 'push.default' configuration variable
hint: to 'simple', 'current' or 'upstream' to push only the current branch.

为了解决这个问题,我像这样切换分支

git checkout master.

这会在我的 Master 中引入大量文件,这些文件以前缀“M”表示它们已被修改。然后我做

git checkout branch_release

并且它似乎也将同一组文件带入了我的主人,我认为这不应该发生,因为我之前在这个分支上做了 GIT 拉动。

我的问题是,这是设计使我还需要在推送其中一个分支之前更新 master 吗?如果没有,我是如何设置错误的,我应该怎么做才能确保我只需要更新 GIT 分支。

4

1 回答 1

2

如果要解决非快进错误,则必须在 push 之前 pull。该错误表示远程主机具有您的主机没有的提交。

如果您只是进行推送,而不指定分支,它会推送所有分支。您可以指定默认推送分支 [2]通过 command[1] 指定它

[1] 通过 push 命令参数指定

所以你可能想做一个(用指定的分支推送)

git push origin branch_release

[2] 定义默认推送分支

我认为这可能会有所帮助:

根据此站点,您可以像这样指定默认推送分支

git config --global push.default 当前

[编辑]

正如torek指出的那样,简单的将是 git 2.0 版的新 git 默认值。所以更新将(在未来)解决这个问题/问题。

git config --global push.default 简单

您可以在此处阅读有关此内容的更多信息:

于 2013-10-21T21:17:02.033 回答