2011-09-17 13 views
3

私はGitの完全な初心者です。何が起きているのかは分かりません。私の友達と私は一緒にプロジェクトに取り組んでいます。Gitでのマージとコミットの混同

私はリモートサーバgit fetchからすべてのファイルを取得しましたので、今やファイルがたくさんあります。

  • 私は、私が毎日フェッチやり続ける、と彼はいくつかのファイルを修正し、それらを更新したことを私に教えて始まる

  • など、彼はそれらのいくつかを編集し、それらのいくつかを編集しますこれらの変更は私の最後には現れません。

  • WindowsではGit GUIを開き、左側には2つのパネルがあります。

    一つはUnstaged Changes言う - 私は、これらは私がそれらをaddない限り、ローカルリポジトリ に更新されることはありません、私は変更 ものであることを意味するためにこれを取っています。

    もう1つはStaged Changes (Will Commit)と言います。この ウィンドウ内で、いくつかのファイルをクリックすると、 の友人が私が編集しているファイルに表示されていない更新が表示されます。 と私は変更を見ました。

  • 私は自分のディレクトリにgit add .

  • を持つすべてのファイルを追加し、私は今、2つのサイドパネルのいずれにも複数のファイル、無Unstaged ChangesなしStaged Changes (Will Commit)がない、GitのGUIでcommitボタンを押してください。

  • 私はすべてのファイルをチェックして、私の最後と私の友人の末尾の両方の変更が1つのファイルにマージされたようです。

私はまだ何が起こったのかは分かりません。

  • 質問1:私はこれを正しく行いましたか?

  • 質問2:正確にmergeとは何ですか?

私はgit merge origin/masterとマージしているので、マージしても気にならないようです。私はcommitが現在のバージョンをいくつかのハッシュコードに書き留めていると思っていましたが、commitのようなものが実際にはmergeと同じように思えます。

申し訳ありませんが、長らく残念な質問のために、ちょうど非常に混乱しています。

+1

git fetchではなくgit pullが必要な場合があります。 – tjameson

+4

心配しないで、gitは最初はみんなに混乱しています。それから、ある日、それは「クリック」され、あなたはそれなしでどのように住んでいたのか疑問に思うでしょう:)私は好奇心の期間を経て、受け入れ、憎しみ、その後受け入れ、そして愛に戻りました。そのちょうどgit方法:) – CodingWithSpike

答えて

6

私はあなたが誤解していると信じています。git fetch

はそれだけで、あなたのケースで、originレポでmasterブランチをリモートリポジトリに加えられた変更を取得し、それは(それが唯一の.gitディレクトリにローカルに格納)ないは、あなたのツリーにそれらを適用しません。一方、git mergeは、リモートの変更をリポジトリに適用します。

友人の変更をプルして作業ツリーにマージするには、git pull origin masterを使用する必要があります。本来、git pullgit fetchと続き、その後にはgit mergeと同じです。

チェックこのアウト:Git Fetch vs Pull


代わり

あなたの友達/あなたは元のリポジトリにINGのpushではありません。あなたの友人は彼がコミットした後git push origin masterをやっていますか?コミットはローカルであり、それらを他の世界と共有するにはgit pushでなければなりません。

唯一の例外は、originリポジトリに直接取り組んでいる場合です。その後彼は自分のコミットがブランチのoriginにあるので、プッシュする必要はありません。

+0

しかし、これはまだ私の問題を解決しません:マージは何もしていないようです。私がマージするたびに、「既に最新の状態」と言い続けます。しかし、Git GUIの中には、「マージされていない」変更があることがわかります。 – reedvoid

+0

スクリーンショットを投稿すると、あなたが何を意味するのでしょうか、不思議です。 – evgeny

+0

「マージ」には実際に何かがあることを暗示しているようですね。私はそれが私の最後には何もしないことを見たことがないので。 – reedvoid

1

これは説明するのに時間がかかりますが、すでにseries of blog articlesで行っています。それらを見てください。彼らは初心者の視点から、このような基本的なことをあなたに伝えます。

0

あなたが良い読書を大切にしているなら、私はあなたにGitの知識を結実させるためにVersion Control with Gitという本をお勧めします。記事は確かにより即座で安価ですが、Gitはかなり複雑な獣です。私は良い基礎が長期的に報われると信じています。

私の2セントです。

関連する問題