git - 如何让主分支跟踪?

标签 git

我克隆了一个存储库并在 master 分支中工作。一直存在一个问题:git push(和 git push)没有工作,并给出了长长的、无法解释的错误消息。通过反复试验,我发现 git push origin master 推送正确。但现在我注意到了一些奇怪的事情:

$ git config push.default tracking
$ git push
fatal: The current branch master is not tracking anything.

WTF?我想如果你克隆了一个存储库,master 就会被自动跟踪。不管怎样,我真正的问题是

  1. 我应该如何创建克隆以便跟踪分支?
  2. 跟踪的后果是什么(当前除外)?
  3. 我该如何解决当前的情况,以便我的分支机构能够跟踪远程?

编辑 我的本地存储库在其他方面表现得很奇怪;最值得注意的是:我无法创建远程分支。我把它放在一边,做了一个新的克隆,它以新的方式表现得很奇怪。

首先,master 正在跟踪(是的)。其次,我能够创建一个远程分支,但这很奇怪。

Ratatouille $ git push origin origin:refs/heads/premium
Total 0 (delta 0), reused 0 (delta 0)
To git@github.com:gamecrush/Ratatouille.git
 * [new branch]      origin/HEAD -> premium
Ratatouille $ git branch -r
  origin/HEAD -> origin/master
  origin/master
  origin/premium

当然,Ratatouille 是远程仓库的名称。奇怪的是:那个->是干什么用的?它似乎是新的,并且不会出现在旧的本地存储库或远程的其他克隆中。

但现在分支和跟踪工作如宣传的那样。

最佳答案

你的 branch.autosetupmerge 设置了什么?默认情况下,它应该在您克隆时设置分支跟踪。

尝试使用此设置分支的上游以使分支跟踪远程。

git branch --set-upstream master origin/master

关于git - 如何让主分支跟踪?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5112336/

相关文章:

git - 尝试在本地/个人机器上使用 Git 找到一个好的策略进行个人开发

git - 为什么 Git 将随机的、不存在的目录或文件报告为未跟踪文件?

与其他用户一起更新 git 子模块

git - Azure网站部署特定的Web项目

javascript - 为什么应用程序生成器会在 npm 上而不是 yeoman 上? (即 Angular 种子)Github vs npm vs Yeoman 作为应用程序启动骨架的分发源

git - 如何从 git 存储库克隆、获取或稀疏 check out 单个目录或目录列表?

ruby-on-rails - 使用 Capistrano 从 Git 进行部署而无需硬重置?

推送配置更改后 Gitosis 不更新服务器配置

git - 如何让 Git 显示文件的版本历史

git - 将本地更改保存在 git 仓库中