Github〜CloneからPushまでの流れ


# 自己紹介

HAL大阪四年生二年IT学科Web専攻所属(現H30年)

# 仕様
とりあえず色々と探りながら授業での復習も兼ねて投稿していきます！
知っておいた方がいいよ！という技術や知識等あればコメントにてお願いします！


# 記事について
今回の記事は、gitで私がよく使うコマンドを自分用にメモ程度にまとめたものです。

***

<font color="#33cc33"> $$ ↓下記から記事開始 $$ </font>

***

# 



## ファイルをクローンする

~~~
$ git clone URL
~~~

<b>URL</b>←下記の画像のCloneボタンを押した時に出てくるHTTPSのURL

<img width="358" alt="スクリーンショット 2020-06-27 16.54.33.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/218038/69cbcf28-1422-500e-4909-aa801a2d362b.png">

#####Use SSHのURLについて
SSH URLは、安全なプロトコルであるSSHを介してGitリポジトリへのアクセスを提供します。
これらのURLを使用するには、コンピューターでSSH キーペアを生成し、公開鍵をGitHubアカウントに追加する必要があります。

実際にSSHを使用したGitHubへの接続をしたい場合はこちらを参考にしてください。
<a href="https://help.github.com/en/github/authenticating-to-github/connecting-to-github-with-ssh"target="_blank"><font color="#33cc33">SSHを使用したGitHubへの接続</font></a>


## ブランチを切る

~~~
$ git branch feature/hogehoge
~~~

<b>feature/hogehoge</b>←作りたいブランチの名前
チームで制作する際masterを触ると事故の元になってしまう為基本ブランチを切って作業をすることが多いです。

## ブランチ一覧

~~~
$ git branch
  develop
  feature/hogehoge
＊ feature/testtest
  master`
~~~
<b>＊</b>←現在いるブランチ

## ブランチの切り替え<br>

~~~
$ git checkout feature/hogehoge
~~~
<b>feature/hogehoge</b>←移動したいブランチ名


## commitしたいファイルの選択

~~~
$ git add filename
~~~
<b>filename</b>←編集したファイル名

`$git add -A`または`$git add .`
新規、変更、消去したファイルすべてを選択してフィールドへ上げてくれます。

## commit時のコメント

~~~
$ git commit -m "コメント"
~~~
<b>コメント</b>←コミット内容記述
コミットは基本何の編集をしたのかを書くと何の変更をしたのかがわかりやすいので大切です。


## 直前のコミット内容変更

~~~
$ git commit --amend -m "コメント"
~~~
<b>コメント</b>←変更するコミット内容記述

## コミット履歴確認

~~~
$ git log --oneline
~~~
終わるとき「<b>q</b>」をうつ

~~~
$ git --no-pager log --oneline -n 10
~~~
最後から10件分のコミットを表示

## プッシュしてGitに上げる

~~~
$ git push origin ブランチ名
~~~
ブランチ名←自分のブランチ名を記述

## プルリクを送る
Githubの自分のアカウントからリポジトリページに飛びCompare & pull requestをクリック

コメントを書きCreate pull requestをクリックすれば完了

## 最新のものをプルする

~~~
$ git pull origin feature/hogehoge
~~~
feature/hogehoge←プルしたいブランチ名を記述


## <font color="#cc3333">よくあるエラー</font>

1.　`fatal: Authentication failed for 'https://github.com/hoge-user/repository-name.git/'`
１回目のPushででたらもう一度同じコマンドを叩く
ユーザーネーム、パスワードを入力した際に出た場合
該当するリポジトリまで移動し、Vimでvi .git/configを開きます。

~~~
[core]
    repositoryformatversion = 0
    filemode = true
    bare = false
    logallrefupdates = true
    ignorecase = true
    precomposeunicode = true
[remote　"origin"]
    url = https://github.com:hoge/repository.git
    fetch = +refs/heads/*:refs/remotes/origin/*
[branch　"master"]
    remote = origin
    merge = refs/heads/master
~~~

↑以上のようになっているかと思います。

[remote　"origin"]内の
`url = https://github.com:hoge/repository.git`を
`url = git@github.com:hoge/repository.git`に変更します。
これでusernameとpasswordは聞かれずにpushすることができます。

***

2.`fatal: Unable to look up git@github.com:hoge (port 9418) (nodename nor servname provided, or not known)`</LI>

~~~
[core]
    repositoryformatversion = 0
    filemode = true
    bare = false
    logallrefupdates = true
    ignorecase = true
    precomposeunicode = true
[remote "origin"]
    url = git://git@github.com:hoge/repository.git
    fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
    remote = origin
    merge = refs/heads/master
~~~
↑上記のように表示され、一見変な記述がないように見えますが、
`url = git://git@github.com:hoge/repository.git`という記述になっている。
この箇所を`url = git@github.com:hoge/repository.git`に修正することでpushがうまくいく。

***
### 今回の参考資料


 １． <a href="https://employment.en-japan.com/engineerhub/entry/2017/01/31/110000"target="_blank"><font color="#33cc33">エンジニアHub〜今日からはじめるGitHub〜 </font><a> 


### ご挨拶

最後まで読んでいただきありがとうございました。
文面等見にくい部分が多々あるかと思いますが、「このやり方おすすめ！」や「私はこのやり方やってるよ！」等ご意見くださると嬉しいです。
もっと成長できるように、たくさん勉強しながら記事を書いていこうと思っていますので、よろしくお願い致します。

####SNS
<a href="https://twitter.com/oga_osayo"target="_blank"><font color="#33cc33">Twitter</font></a>
<a href="https://www.facebook.com/profile.php?id=100018334369337"target="_blank"><font color="#33cc33">Facebook</font></a>
<a href="https://github.com/yosa34"target="_blank"><font color="#33cc33">Github</font></a>
***


<font color="#cc3333"> ＊上記の投稿は個人によるもので、団体を代表するものではありません。ご了承くださいますようお願い致します。 </font>