2012-01-09 10 views
0

私はGITが新しくなっていますが、基本はかなり分かりました。しかし、私は混乱していると感じています...同じファイルに複数のマージをベースに戻す

私はgithubを使用しています。私の支店は、マスターブランチよりも先に13と20(かなり古い)でした。

私は次のようでした:

git checkout myBranch 
git rebase master 

私はいくつかの理由で、繰り返し同じファイルをマージしているように見えます。

私は、マスターブランチでコミットされた異なるバージョンのそれぞれに変更を適用していると思いますか?

これはかなり時間がかかっていました。私が終わったら、私は自分の(今のところうまくいけば最新の)枝をgithubに押し戻すことができると仮定しました。 ...

それでは、私はプルを行うには、gitのは私に語った私は再びすべて同じファイルをマージする必要が

...私は理解していない - しかし、それは私が非早送りの変更を持っている私に指示します

ここで何が起きているのかを理解する上で、何か基本的なものを見逃すはずです。

答えて

2

基本的にrebaseは、コミットを一時的に削除し、パッチとして保存し、マスターのヘッドを取得してパッチを再適用します。

ここには、git rebaseがどのようなものであるかを説明するウェブサイトがあります。http://book.git-scm.com/4_rebasing.html

注意:ここはドラゴンズです!http://vectorya.com/freevectors/vector-cartoons/dragon-baby-green/

問題が発生しないことが確実な場合は、エラーを無視してgit push --forceを実行してください。 ただし、中央リポジトリを破損する危険性があります。 Githubので勧められない - http://help.github.com/remotes/セクションDealing with “non-fast-forward” errors

か試してみて、解決する最初の引きをしてからプッシュするためのルック - その後、git pull origin mastergit push origin master

1つのオプションはgit merge代わりのrebaseを使用することです。 git pull origin masterマスターを最新にする。 rebaseとmergeについてコミュニティで議論があり、それぞれに長所と短所があります。

コンテンツの複製を防止するため、同じトピック(http://softwareswirl.blogspot.com/2009/04/truce-in-merge-vs-rebase-war.html,Git workflow and rebase vs merge questionshttp://www.randyfay.com/node/89)を扱う記事を掲載しました。マスターに合流の

例:

  • git checkout master、次いでgit merge mybranch

mybranchにマスターを併合し、次にマスター

  • git checkout mybranch、次いでgit merge master
  • にマージします、次にgit merge mybranch
+0

あなたは正しく、githubページ –

+0

+1の結果と助けに追加されました。 :) – ANeves

+0

@First Zero - 答えてくれてありがとう、私はあなたの最初のリベースリンクを見たことがありました。そのページには、あなたのコミット履歴を残しておきたい場合はリベースする必要があります。私はリベースがこのような理由でマージするよりも良いということをいくつかの場所で読んだことがありますか? – iKode

関連する問題