GitHubからインポート(クローン) | clone

GitHubからインポートを行い、Eclipseで開くまでの手順

  1. プロジェクトURLはGitHubから確認。
  2. cdコマンドでプロジェクトを作成するディレクトリへ移動する。(カレントディレクトリの変更)
  3. 「$ git clone プロジェクトURL」コマンドを実行する。
    実行するとGitHub上で管理しているプロジェクトがカレントディレクトリに複製される。

    $ git clone git@github.com:amaraimusi/eccube4_demo.git
  4. あとは複製されたプロジェクトをEclipseで開くのみ。
    Eclipseの上部メニューのFile→New→PHP Project

ローカルブランチとリモートブランチを紐づける

「$ git branch -vv」コマンドでローカルブランチとリモートブランチの紐づけ状況を調べる。 [origin/main]のように[]内のコードはリモートブランチを表している。 現在ローカルでアクティブになっているokinawa_fishブランチには[]が存在していない。つまり現在はリモートブランチを紐づいていない状態になっている。
$ git branch -vv
  main         abfa21e [origin/main] 海へ行きたい
* okinawa_fish c60f3e3 山へ行きたい
  tanuki       c3dce2a ファーストコミット

とりあえず「$ git pull」コマンドでプルを実行しようとすると、どのコマンドを実行すれば良いのか知らされる。
$ git pull
There is no tracking information for the current branch.
Please specify which branch you want to merge with.
See git-pull(1) for details.

    git pull <remote> <branch>

If you wish to set tracking information for this branch you can do so with:

    git branch --set-upstream-to=origin/<branch> okinawa_fish

「git branch --set-upstream-to=origin/<branch> okinawa_fish」コマンドを書き換えて実行すれば良いようだ。

あらかじめGitHub側には「gurukun」ブランチを作成してあるので、コマンドを下記のように書き換えて実行する
$ git branch --set-upstream-to=origin/gurukun okinawa_fish
Branch 'okinawa_fish' set up to track remote branch 'gurukun' from 'origin'.
以上でローカルブランチとリモートブランチの紐づけ完了。

もう一度「git branch -vv」を実行すると紐づけが行われていることが確認できる。
$ git branch -vv
  main         abfa21e [origin/main] 海へ行きたい
* okinawa_fish c60f3e3 [origin/gurukun: ahead 1, behind 1] 山へ行きたい
  tanuki       c3dce2a ファーストコミット

この状態でプッシュ「$ git push」しようとするとコンフリクト(競合)が発生することがある。
詳しくは「コンフリクト(競合)の修正」を参照。





	

コンフリクト(競合)の修正 | プルしたらコンフリクトが発生した

  1. プルしたらコンフリクトが発生してしまった。(下記の例ではREADME.mdファイルが競合している状態)
    $ git pull
    Auto-merging README.md
    CONFLICT (content): Merge conflict in README.md
    Automatic merge failed; fix conflicts and then commit the result.
    
  2. ローカル側でREADME.mdを適当に修正し、コミット(ローカル)を実行する。
  3. このままプッシュしようとすると怒られた。
    $ git push origin gurukun
    error: src refspec gurukun does not match any
    error: failed to push some refs to 'git@github.com:amaraimusi/eccube4_demo.git'
    

  4. 「$ git push」を実行するとどうすればよいのか教えてくれるようだ。
    $ git push
    fatal: The upstream branch of your current branch does not match
    the name of your current branch.  To push to the upstream branch
    on the remote, use
    
        git push origin HEAD:gurukun
    
    To push to the branch of the same name on the remote, use
    
        git push origin HEAD
    
    To choose either option permanently, see push.default in 'git help config'.
    
    
    「git push origin HEAD:gurukun」を実行するようにとのこと。
  5. 「$ git push origin HEAD:gurukun」を実行すると無事にプッシュ成功。
    $ git push origin HEAD:gurukun
    Total 0 (delta 0), reused 0 (delta 0)
    To github.com:amaraimusi/eccube4_demo.git
       abfa21e..204ccce  HEAD -> gurukun
    

    以上でコンフリクトの修正完了