2012-01-27 5 views
1

を引き出し、私たちはgithubのに私たちのソースコードを移行すると、このトランザクションは私に頭痛与えている:)
私がやった:私は、私たちのワークスペースに行っては、(Eclipseプロジェクトである)、そしてgit initgit add .をしましたgit commit -am "first commit"
すべて正常に機能し、次に私はgithubにプッシュしました。成功も。
大きな問題があります。私の友人はA.javaという名前のファイルを変更したばかりで、私はちょうどB.javaを変更しました。大丈夫です、大したことではありません。その後、彼はそれをgithubにプッシュした。私がプッシュしようとするwhei、私のプッシュは拒否されます。さて、私はgit pull github masterをして、もう一度押して、今、私の 'コミットメッセージ'のようになりますMerge branch 'master' of github.com:germantech/projectName
私は間違って何ですか?
PS:私の英語gitのフェッチとここ

答えて

3

について申し訳ありませんあなたは何も悪いことをやっていない - あなたがgit pull github masterを行う際に、Gitはリモートgithubで示さリポジトリに行き、masterブランチのために必要なすべてのものを取得し、その後、あなたにそれをマージ現在のブランチ。 Oがメッセージ「firtsコミット」とAでコミットされ

O --- A (master) 

が... A.javaに変更を導入しているコミットです:プルする前に、次の歴史を持っていました。一方、あなたの友人は履歴を持っています:

O --- B (master) 

...それはGitHubにプッシュされました。あなたのgit pull github masterがあなたの歴史の中に、それが作成することをマージした場合、両方のmasterブランチからの変更で、ツリーの状態を表すために「コミットマージ」:

O --- B --- M (master) 
\  /
    ---A --- 

を、代わりに、あなたは歴史の線形を維持したい場合は、私は個人的にドン - 一部の人々がいることを好む

o --- B --- A' (master) 

:あなたの代わりにブランチの削除バージョンの上に枝のリモートバージョンではありませんあなたのコミットを「再生」でしょうでしょうgit pull --rebase github masterを行うことができます気にしない。

+0

will --rebaseは私のコミットメッセージを維持しますか?または彼はそれを変更するのだろうか? –

+0

--rebaseは私のコミットメッセージを変更しません。何が望ましいですか?プルまたはプル - ベース? –

+0

コミットメッセージ(および作成者情報と作成者日付)が保持されます。更新されるコミットの日付とコミッター情報が別にあります。 –

1

あなたは同じレポまたは異なるレポにいますか?あなたが変更をリベースし、再度押す必要がある場合は、

git pull --rebase github master 
git push github master 
+0

fyi、--rebaseはあなたのコミットをあなたの友人コミットの上に置くので、マージせずに押すことができます。 – three

+0

「differente repos」は何を意味しましたか?私たちは皆同じgithub repoを使います。これはあなたの意味ですか? –

+0

いいえ、あなたのローカルリポジトリ。コンピュータ1と2。 – three

関連する問題