ローカルのコードやプロジェクトをGithubのレポジトリにプッシュ(アップ・コピー・連携)する方法を実例で解説|ユーザ名やメールアドレスの登録方法、自分以外の人のプッシュを許可する方法(初心者向け、わかりやすい)

github-prograshi(プロぐらし)-kv git/github
記事内に広告が含まれていることがあります。

githubでレポジトリを作成してから、ローカルにクローンして作業をするのはよくあるパターンですが、その逆で、

ローカル環境で作業していたコードを新たにGithubにアップする方法について解説しています。


新たにGithubにアップする手順

新たにGithubにアップするための手順は、大きく次の4つになります。

  1. ローカルでGitの基本設定
  2. ローカルでコミットを作成
  3. Githubにレポジトリを作成(リモートレポジトリ)
  4. ローカルの内容をGithubのレポジトリにプッシュ

(参考)Git公式 最初のGitの構成


ローカルでGitの基本設定

Githubを使うためには、自分のユーザー名とメールアドレスを設定する必要があります。

ユーザー名の設定

$ git config --global user.name "ユーザー名"

ユーザー名はダブルクオテーションで囲みます。

メールアドレスの設定

$ git config --global user.email <メールアドレス>

メールアドレスはそのまま入力します。

設定内容の確認

git configコマンドで、範囲(–global)を指定し、一覧表示のオプション(-l または –list)をつければ、その環境内で設定してある内容の一覧が表示されます。

$ git config --global -l
user.name=Yamada Taro
user.email=example@gmail.com

(補足)–globalとは何か?

tips

–global は設定をどの範囲に適用するかを指定するオプションです。

Gitには、システム全体の設定をするsystem、ユーザー全体に設定するglobal、レポジトリ毎に設定するlocalの3つの環境があります。

適用範囲が広い順に、system > global > local となります。また、設定はこれらの順で上書きされていきます。

localにユーザー名やメールアドレスが設定していなければ、globalで設定したものが適用されます。

オプション対象範囲ファイルの場所
–sytemシステム全体/usr/local/git/etc/gitconfig
–globalユーザー全体~/.gitconfig
–localレポジトリ毎レポジトリ内の .git/config

なお、設定はコマンドで編集しましたが、対象のファイルに直接記述することも可能です。(※書き方には決まりがあります)

例えば~/.gitconfigの内容は以下のようになっています。

[alias]
        logg = log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit
        ci = commit
        last = log -1 HEAD
        st = status
        cim = commit -m
        co = checkout
        cob = checkout -b
[user]
        name = Ymada Taro
        email = example@gmail.com


ローカルでコミットを作成

続いて、ローカルのプロジェクトでGitを使ってログ管理できるようにします。

プロジェクトディレクトリで以下を実行します。

git init
git add .
git commit -m "first commit"

git init

git initは現在のディレクトリをgitレポジトリとするためのコマンドです。.gitファイルが生成されます。

$ git init
Initialized empty Git repository in /Users/projects/git-test/.git/

git add

git add <ファイル名> で、指定したファイルやディレクトリをステージに上げます。ファイル名に . を指定すると、そのディレクトリにある全てのファイルやディレクトリが対象となります。

git commit

git commit -m "コミットメッセージ"でステージの内容をコミットします。-mオプションでコミットメッセージをつけます。慣習的に、一番最初のコミットは「first commit」とすることが多いです(何でもいいです)

$ git add .
$ git commit -m "first commit"
[master (root-commit) 2caf997] first commit
 1 file changed, 0 insertions(+), 0 deletions(-)

-mをつけない場合はコミット編集用のエディタが起動します。


Githubにレポジトリを作成(リモートレポジトリ)

ローカルの内容をGithubプッシュするために、Githubにレポジトリ(リモートレポジトリ)を作成します。

Githubにログインして、右上の「+」アイコンをクリックし、「New repository」を選択します。


Create a new repositoryというページが表示されます。Repository nameに作成するレポジトリ名を入力します。(プロジェクト名と合わせるのが一般的です)

デフォルトはPublicですが、必要に応じて、Privateを選択します。

  • Public: レポジトリを公開する
  • Private: レポジトリを非公開にする(今までは有料版しか使えませんでしたが、無料版でも使えるようになりました。)

 設定できたら「Create repository」をクリックします。

レポジトリ が作成され、次のようなページが表示されます。

レポジトリのURL https://github.com/Githubユーザー名/レポジトリ名.git を使うのでメモ(コピー)しておきます。


Githubにレポジトリを作成(リモートレポジトリ)

ローカルにリモートレポジトリを登録する

作成したリモートレポジトリをローカルに登録して、両者を結びつけます。

git remote add origin <リモートレポジトリのURL>

git remoteはリモートレポジトリに関する操作をするコマンドです。指定したリモートレポジトリのURLにoriginという名前をつけています。

tips

リモートレポジトリの登録名には慣習的に origin が使われます。特に指定はないので他の名前に変更しても問題ありません。

設定ができたか確認します。

git remote -v

実例

$ git remote add origin https://github.com/user-name/rails-vue.git
$ git remote -v
origin  https://github.com/user-name/rails-vue.git (fetch)
origin  https://github.com/user-name/rails-vue.git (push)


ローカルレポジトリをGithubにプッシュする

ローカルとリモートが繋がったので、ローカルレポジトリの内容をGithubにプッシュします。

git push origin master

Githubにプッシュするコマンドは git push <リモートレポジトリ名> <プッシュするブランチ名> です。リモートレポジトリ名には先ほど登録した origin を、プッシュするブランチ名は現在いるブランチである master を指定しています。

実例

$ git push origin master
Enumerating objects: 198, done.
Counting objects: 100% (198/198), done.
Delta compression using up to 12 threads
Compressing objects: 100% (171/171), done.
Writing objects: 100% (198/198), 363.47 KiB | 8.08 MiB/s, done.
Total 198 (delta 42), reused 0 (delta 0)
remote: Resolving deltas: 100% (42/42), done.
To https://github.com/user-name/rails-vue.git
 * [new branch]      master -> master

現在いるブランチの確認方法

自分がいるブランチ名を確認したい時は、git branchを実行します。* がついているところが今いるブランチです。

$ git branch
* master



実は奥深いgit push

git push は git push origin master としましたが、実は一番後ろのmasterの部分は、省略形です。

本来は<ローカルブランチ名>:<リモートブランチ名>となっています。ローカルブランチ名とリモートブランチ名が一致するときに省略することができます。

git push <リモートレポジトリ名> <ローカルブランチ名>:<リモートブランチ名>


つまり、git push origin master は、ローカルのmasterブランチを、リモートのmasterブランチにプッシュするという意味になります。

Github上の別のブランチにプッシュする

例えば、git push origin master:test とすれば、ローカルのmasterブランチを、リモートのtestブランチにプッシュします。Github上に対象のブランチがない場合は自動で新規作成します。

$ git push origin master:test
Total 0 (delta 0), reused 0 (delta 0)
remote: 
remote: Create a pull request for 'test' on GitHub by visiting:
remote:      https://github.com/test-user/rails-vue/pull/new/test
remote: 
To https://github.com/test-user/rails-vue.git
 * [new branch]      master -> test

Github上の指定したブランチを消せる

ローカルブランチを何も指定せず、リモートブランチだけ指定した場合は、指定したリモートブランチ を削除することができます。(空の内容をプッシュするという意味)

例えば、git push origin :test とすれば、github上のtestブランチを削除します。

$ git push origin :test
To https://github.com/test-user/rails-vue.git
 - [deleted]         test


自分以外の人のプッシュを許可する方法

Githubのリモートレポジトリの運営者以外の人が、プッシュする場合は事前に招待しておく必要があります。

Githubのレポジトリの上部メニューの「Settings」→「Manage access」を選択し、「Invite a collaborator」をクリックします。

入力窓が表示されるので、ユーザー名やメールアドレスで対象のユーザーを検索します。

ユーザーを選択したら「Add ユーザー名 to this repository」をクリックします。

選択したユーザーに招待メールが届くので、中を開いて、「Accept invitation」をクリックします。

以上で設定は完了です。

これで、対象のレポジトリにpushできるようになります。

タイトルとURLをコピーしました