twitter icon   twitter icon   rss icon

Linux.com Japan

Home Linux コミュニティ ブログ 未来のいつか ローカルで作ったリポジトリをgithubに初めてpushする方法

ローカルで作ったリポジトリをgithubに初めてpushする方法

例えば以下のようにローカルにgitで管理していて、ふとgithubあたりで公開したくなったとする。はじめからgithubにレポジトリを持っていた場合は、それを $ git clone して、ローカルでごにょごにょして $ git push すればいいのだけど、その順番が逆の場合。 $ git init $ git add . $ git commit -m "initial commit" ... ここで、あー、githubにpushしたいなーとふと思う。 おもむろにgithubにsign inしてrepositoryをnewする。仮にユーザ名がuser-nameでリポジトリがrepositoryというのを作ったすると、ローカルからのpushは下記のような感じになる。 $ git remote add origin このメールアドレスは、スパムロボットから保護されています。アドレスを確認するにはJavaScriptを有効にしてください :user-name/repository 最初にremoteのリポジトリを指定する。 これでpushすればいいのだけど、先にローカルのレポジトリができているので、そのままpushしようとすると下記のように言われる。 $ git push origin master Warning: Permanently added the RSA host key for IP address 'xxx.xxx.xxx.xxx' to the list of known hosts. Identity added: /Users/user-name/.ssh/id_rsa (/Users/user-name/.ssh/id_rsa) To このメールアドレスは、スパムロボットから保護されています。アドレスを確認するにはJavaScriptを有効にしてください :user-name/repository ! [rejected] master -> master (non-fast-forward) error: failed to push some refs to ' このメールアドレスは、スパムロボットから保護されています。アドレスを確認するにはJavaScriptを有効にしてください :user-name/repository' To prevent you from losing history,...

例えば以下のようにローカルにgitで管理していて、ふとgithubあたりで公開したくなったとする。はじめからgithubにレポジトリを持っていた場合は、それを $ git clone して、ローカルでごにょごにょして $ git push すればいいのだけど、その順番が逆の場合。

$ git init
$ git add .
$ git commit -m "initial commit"
...

ここで、あー、githubにpushしたいなーとふと思う。

おもむろにgithubにsign inしてrepositoryをnewする。仮にユーザ名がuser-nameでリポジトリがrepositoryというのを作ったすると、ローカルからのpushは下記のような感じになる。

$ git remote add origin 
 このメールアドレスは、スパムロボットから保護されています。アドレスを確認するにはJavaScriptを有効にしてください
 :user-name/repository

最初にremoteのリポジトリを指定する。

これでpushすればいいのだけど、先にローカルのレポジトリができているので、そのままpushしようとすると下記のように言われる。

$ git push origin master
Warning: Permanently added the RSA host key for IP address 'xxx.xxx.xxx.xxx' to the list of known hosts.
Identity added: /Users/user-name/.ssh/id_rsa (/Users/user-name/.ssh/id_rsa)
To 
 このメールアドレスは、スパムロボットから保護されています。アドレスを確認するにはJavaScriptを有効にしてください
 :user-name/repository
 ! [rejected]        master -> master (non-fast-forward)
error: failed to push some refs to '
 このメールアドレスは、スパムロボットから保護されています。アドレスを確認するにはJavaScriptを有効にしてください
 :user-name/repository'
To prevent you from losing history, non-fast-forward updates were rejected
Merge the remote changes (e.g. 'git pull') before pushing again.  See the
'Note about fast-forwards' section of 'git push --help' for details.

fast-forward updateじゃないのでrejectされちゃう。

これは、remoteのレポジトリーをfetchしてmergeしてpushすればよい。

$ git fetch
warning: no common commits
remote: Counting objects: 3, done.
remote: Total 3 (delta 0), reused 0 (delta 0)
Unpacking objects: 100% (3/3), done.
From github.com:user-name/repository
 * [new branch]      master     -> origin/master
$ git status
# On branch master
nothing to commit (working directory clean)
$ git merge origin/master
Merge made by the 'recursive' strategy.
 README.md |    4 ++++
 1 files changed, 4 insertions(+), 0 deletions(-)
 create mode 100644 README.md
$ git status
# On branch master
nothing to commit (working directory clean)
$ git push
Counting objects: 248, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (229/229), done.
Writing objects: 100% (247/247), 85.98 KiB, done.
Total 247 (delta 86), reused 0 (delta 0)
To 
 このメールアドレスは、スパムロボットから保護されています。アドレスを確認するにはJavaScriptを有効にしてください
 :user-name/repository
   1211ccd..18f61bd  master -> master

というような感じでmergeがpushできた。mergeした時にコンフリクトしたらば、それは手動で解決する。

ローカルでごにょごにょしていて、会社のレポジトリにpushして社内で公開するような時にも同様にできると思う。

ssh-keyなどは事前に登録しておいてください。

Read more at 未来のいつか
Linux Foundationメンバーシップ

30人のカーネル開発者

人気コンテンツ

  1. Today's Linux 2018/01/10 2018年 1月 09日
  2. Today's Linux 2018/01/12 2018年 1月 11日
  3. Today's Linux 2018/01/15 2018年 1月 14日
  4. Today's Linux 2018/01/16 2018年 1月 15日
  5. Today's Linux 2018/01/17 2018年 1月 16日

Linux Foundationについて

Linux Foundation はLinux の普及,保護,標準化を進めるためにオープンソース コミュニティに資源とサービスを提供しています

 

The Linux Foundation Japan

サイトマップ

問い合わせ先

サイトに関するお問い合わせはこちらまで

Linux Foundation Japan

Linux Foundation

Linux Training

提案、要望

Linux.com JAPANでは広く皆様の提案、要望、投稿を受け付ける予定です。

乞うご期待!