git管理下のリポジトリを2通りの方法で作成 - 5月 10, 2018 こんにちは、ぐぐりら(@guglilac)です。 Source Treeを使わないで、2通りの方法でリポジトリを作る。 ## ローカルで作成してリモートにあげる めんどい。 対象のディレクトリをgit管理下におく `git init` 受け皿となるリポジトリをGitHubに作成する。 ローカルのディレクトリと同じ名前にするのが無難。(違う名前で試してはない) 作成したリポジトリのurlをコピー。 `use HTTPS`を指定した。(SSHではどうだろう) この段階ではローカルはリモートを認識していないので、以下のコマンドで紐付ける。 `git remote add origin "コピーしたURL"` これでリモートを認識できる。 あとは`upstrem branch`を指定して`push`すればいいと思いきや、 `git push -u origin master` とすると ```console error: failed to push some refs to 'https://github.com/habroptilus/local-test.git' hint: Updates were rejected because the remote contains work that you do hint: not have locally. This is usually caused by another repository pushing hint: to the same ref. You may want to first integrate the remote changes hint: (e.g., 'git pull ...') before pushing again. hint: See the 'Note about fast-forwards' in 'git push --help' for details. ``` というエラーが出る。 受け皿として作ったリモートリポジトリに作成されたREADMEが履歴として残っているため、 リモートの状態を`pull`してから`push`しなければいけない。 ので、おとなしく従い`git pull origin master`をすると、またもやエラー。 ``` fatal: refusing to merge unrelated histories ``` Git 2.9から mergeコマンドとpullコマンドでは,--allow-unrelated-historiesを指定しない限り,無関係な履歴を持つ2つのブランチをマージすることはできなくなったらしい。 というわけで `git pull origin master --allow-unrelated-histories` とすれば無事`pull`できる。 あとは今度こそ`push`すればおっけい。 たいへん。まあハマらなければ長くないけれどわざわざこれでやらなくても、という感じがすごい。 ## リモートで作成してローカルに持ってくる 推奨。 GitHubで作成。 リポジトリ名を決める。 `Initialize this repository with a README`にチェックを入れると`master`ブランチが作成され、`README.md`が作成される。 チェックを入れないとブランチが作成されないので付けておくべき。 `Add .gitignore`は、リポジトリで主に使用する言語を指定すると、その言語に合わせて`.gitignore `ファイルを作成してくれる。 作成したら、`clone or download`っていう緑のボタンでurlをコピー。 ターミナルで作りたい場所に移動してから `git clone "コピーしたurl"` でクローンできる。 cloneしたてはmasterブランチにいるので注意。 この記事をシェアする Twitter Facebook Google+ B!はてブ Pocket Feedly コメント
コメント
コメントを投稿