質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.51%

  • Git

    1635questions

    Gitはオープンソースの分散バージョン管理システム(DVCS)です。

  • GitHub

    1043questions

    GitHubは、Gitバージョン管理システムを利用したソフトウェア開発向けの共有ウェブサービスです。GitHub商用プランおよびオープンソースプロジェクト向けの無料アカウントを提供しています。

  • GitLab

    158questions

    GitLabは Gitoliteをブラウザから管理できるようにする Rubyアプリケーションで、 GitHubのようなサービスをクローズドな環境に独自で構築できるように 公開されたものです。

  • GitBucket

    50questions

    GitBucketとはScalaで実装され、Java仮想マシンで動作するリポジトリ管理ツールです。Webブラウザから管理することができます。 「GitHubクローン」と謳うだけあり、GitHubとよく似たUIを持ちます。

git pullできない

解決済

回答 3

投稿 編集

  • 評価
  • クリップ 1
  • VIEW 532

salud

score 136

https://backlog.com/ja/git-tutorial/pull-request/pull-request3_2.html

上記のURL内で紹介されているように、
git pullした際に、コンフリクトが起きてくれれば、
解決して再度コミットするだけなのですが、
たまに、コンフリクトすら起こらないときがあります。

var sortNumber = function (number) {
   number.sort(function (a, b) {
<<<<<<< HEAD
      if (a === b) {
=======
      if (a == b) {
>>>>>>> 839396c5383737ec06b9c2a842bfccc28f3996ef
         return 0;
      }
      return a < b ? -1 : 1;
   });
};

var number = [19, 3, 81, 1, 24, 21];
sortNumber(number);
console.log(number);


この現象について

1) なぜ、このような事が起こるのでしょうか?

2) このようなことが起こらないために、どのような代替案がありますでしょうか?

→ 普段、みなさまが複数人で開発されているときのルールであったり、
How toのようなものをお聞かせいただけますと幸いです。
どうぞよろしくお願い致します。


追記

エラーについて
以下のように表示されています。

PC:test user$ git pull origin master
From https://gitlab.com/user/test
 * branch            master     -> FETCH_HEAD
fatal: refusing to merge unrelated histories

状況としては、こちらに近いような気もします。
https://qiita.com/takanatsu/items/fc89de9bd11148da1438

ただ、、コンフリクトが起こるときと、
上記の場合と、何が違うのか理解できていません。。

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • set0gut1

    2019/01/08 14:25

    コンフリクトすら起こらないケースについて詳しく書いていただければ

    キャンセル

  • yoorwm

    2019/01/08 14:34

    とりあえず、そのソースは競合が起こっているからコンフリクトタグが入っている訳なのですが、誰かがコンフリクトタグを入れたままプッシュしてきた、という事でしょうか?

    キャンセル

  • dice142

    2019/01/08 14:37

    > yoorwm様
    質問文のソースはリンク先のサンプルコードですね。
    git入門の手順書の一部です。

    キャンセル

回答 3

+2

質問がちと意味不明ですが、競合が起こってるからそうなるんでは
それをどうしたいんでしょうか

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2019/01/08 14:26

    知識不足で申し訳ございません。。
    リモートに新たに加わった変更も尊重したいですし自分の変更も反映(マージ)したいと考えています。

    キャンセル

  • 2019/01/08 14:31

    リンク先にかいてありますが、

    > ======= の上がローカルリポジトリ、下がリモートリポジトリです。今回はローカルリポジトリのほうがよりよいコードになるためこちらを残して、リモートリポジトリのコードを消します。
    ...
    > 3. 修正したソースコードを再度コミットしてプッシュ

    まあ修正の方はあなたのやりたいようにすればいいかと

    キャンセル

checkベストアンサー

+1

git pullした際に、コンフリクトが起きてくれれば、
解決して再度コミットするだけなのですが、
たまに、コンフリクトすら起こらないときがあります。

git pullでコンフリクトが起こるのはローカルリポジトリとリモートリポジトリで
同じ箇所が修正されていることが原因です。

たとえばAさんとBさんがいて、hogeファイルの以下の部分をいじるとします。
(他の箇所やファイルもいじりますが混乱するので省きます。)

<div class="hoge"></div>

Aさんは以下のように修正し、リポートリポジトリを更新しました。

<div class="hoge huga"></div>

Bさんは以下のように修正しました。

<div class="hoge" id="huga"></div>

BさんもAさん同様、リポートリポジトリを更新しようとしますが、
Aさんと同じ箇所を修正しているので、更新できません。

勝手に後から更新するBさんの方で更新するとAさんが開発した機能が動かなくなりますし、
じゃあ先に更新していたAさんの機能のままにすればいいのかといえばBさんの開発して機能が動かなくなるので違います。
なんで更新できないのかというと、自動で判断できないからです。

お互いの機能が動くように修正する必要があるので、手動で修正してくださいねとコンフリクトが起こるのです。

これが起こらないようにすることは無意味です。
せいぜい開発に手をかける前に同時修正が起こりそうな場所について予め相談しておくとかでしょう。

コンフリクトが起こった場合には手動で修正するしかないです。


いきなりエラーに関する質問が出てきましたが、タイトルの原因はこれですかね。
どういう作業をしたかがわからないと原因が不明なのですが、
リモートリポジトリ上で直接なにかコミットしたとかでしょうか?
私はまだ直面したことがないので他の原因が思いつきませんが。

解決方法は--allow-unrelated-historiesを追加ですかね。

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

+1

fatal: refusing to merge unrelated histories

再現方法ちょっと調べてみました。

  1. 適当なリポジトリを clone する
  2. .git/config を編集して origin の url を別リポジトリにする
  3. git pull する

質問者さまの状況を察するに、手元で git init したリポジトリにあとから origin を設定して git pull したのではないでしょうか。
自分で git init するのではなく GitHub の既存リポジトリを git clone してから始めればこのエラーは発生しません。

(このエラー初めて見ました。)

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

同じタグがついた質問を見る

  • Git

    1635questions

    Gitはオープンソースの分散バージョン管理システム(DVCS)です。

  • GitHub

    1043questions

    GitHubは、Gitバージョン管理システムを利用したソフトウェア開発向けの共有ウェブサービスです。GitHub商用プランおよびオープンソースプロジェクト向けの無料アカウントを提供しています。

  • GitLab

    158questions

    GitLabは Gitoliteをブラウザから管理できるようにする Rubyアプリケーションで、 GitHubのようなサービスをクローズドな環境に独自で構築できるように 公開されたものです。

  • GitBucket

    50questions

    GitBucketとはScalaで実装され、Java仮想マシンで動作するリポジトリ管理ツールです。Webブラウザから管理することができます。 「GitHubクローン」と謳うだけあり、GitHubとよく似たUIを持ちます。