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

にプッシュrotationしましたがorigin、からフェッチしましupstreamた。これらは2つの異なるリモートであるため、異なる履歴を持つ2つの異なるリポジトリです。

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

のアイデアはupstream、自分のリポジトリが最新のリポジトリの上に自分自身をリベースできるようにすることですupstream。そうすれば、自分の貢献を' '(フォーク:自分が所有するレポのクローン)
にプッシュしながら、アップストリームを最新の状態に保つことができます。originupstream

にプッシュできoriginます。プッシュすることはできませんupstream(あなたは寄稿者ではありません) 「 GitHubの違いは何ですか? 」
を参照してください。originupstream

上流の

あなたの場合、upstream/master(あなたの変更と並行して)独自の歴史があるので、私はお勧めします

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

フォークを強制的にプッシュ(つまり、変更の履歴を再作成)していることに注意してください。origin/rotation他の寄稿者がフォークからプルしていない場合、これは問題にはなりません。
そして、あなたの作業rotationは最新のものに基づいて行われるので、あなたがしたいと思うかもしれない将来のプルリクエストupstream/masterを単純化するでしょう。

于 2013-01-08T07:15:05.997 に答える