0

我怀疑我遵循的工作流程是否正确,或者我是否搞砸了情况。

我正在本地和远程创建的分支上开发一项新功能。我是唯一一个为此工作的人。

我使用以下方法创建它:

git checkout -b rotation upstream/master

现在我进行了更改并提交:

git commit

并将更改推送到远程分支:

git push origin rotation

我的问题现在开始。git fetch upstream我在这一点上打字。

现在当git status我得到,

vinayan@vinayan-MS-7623:~/QgisGitWorking/Quantum-GIS$ git status
# On branch rotatation
# Your branch and 'upstream/master' have diverged,
# and have 4 and 5 different commits each, respectively.
#
nothing to commit (working directory clean)

我对分支分歧的消息感到困惑。

  1. 这里有什么问题吗?
  2. 如果我继续在这里提交更改并推送到上游,会有问题吗?
  3. 如果有问题,纠正它的最佳方法是什么?

我对 git 很陌生。以前我只使用过 VSS。

编辑:

vinayan@vinayan-MS-7623:~/QgisGitWorking/Quantum-GIS$ git remote -v
origin  git@github.com:vinayan/Quantum-GIS.git (fetch)
origin  git@github.com:vinayan/Quantum-GIS.git (push)
upstream    git://github.com/qgis/Quantum-GIS.git (fetch)
upstream    git://github.com/qgis/Quantum-GIS.git (push)
4

2 回答 2

2

你推rotationorigin,但你取自upstream。这是两个不同的遥控器,因此是两个具有不同历史的不同存储库。

# list remotes
git remote -v
于 2013-01-08T04:57:16.743 回答
1

的想法upstream是允许您自己的 repo 在 repo 的最新版本之上重新定位自己upstream
这样,您可以与上游保持同步,同时将您自己的贡献推送到 ' origin' (这是一个分叉:upstream您拥有的 repo 的克隆)。

你可以推到origin。你不能推送到upstream(你不是贡献者)
请参阅“ GitHub 中的和有什么区别originupstream? ”

上游的

在你的情况下,我会推荐,因为upstream/master它有自己的历史(与你的改变平行)

git checkout rotation
git rebase upstream/master
git push -f origin rotation

请注意,您在 fork 上强制推送(即重新创建更改的历史记录)origin/rotation:如果没有其他贡献者已经从您的 fork 中拉出,这应该不是问题。
您的工作rotation将基于最新的upstream/master,这将简化您可能想要做的未来拉取请求。

于 2013-01-08T07:15:05.997 回答