今日のお勉強。180613-github

GitHub

git-itの、Remote Controlまで学習しました。

github desktopをインストールしました 

 

今日の学習

先日ダウンロードしたgit itに、なぜかindexが入っておらず、ダウンロードし直しました。

 

 

gitの、全体の流れとしては、

・新規にフォルダを作る。

・そのフォルダに移動する。

・git init 、git add をする

・commit

という感じでした。

 

 

$ git push origin master

と、記述してターミナルからpushしてみると、

ユーザー名と、パスワードが求められました。

入力後、githubを見ると、反映された時とても嬉しかったです。 

 

 

ちょっと思ったのですが、どこのディレクトリに作成してるのだろう、と気になりました。

Desktopのディレクトリの方が便利だったのかな…と、今思いました。

 

 

 

参考:

Gitで有効な設定を確認したい

gitconfig の基本を理解する

いよいよ登場!初心者こそ知っておきたいGitHub Desktopの使い方|ferret [フェレット]

 

 

 

 

 

今日のお勉強。180610-github

GitHub

今日はsshの設定して、公開鍵をやって、git-itをクローンしました。

無事ダウンロードできました。

f:id:nashiko_chan:20180611015341p:plain

 

sshの設定

sshを学習したのは去年の秋頃でしたので、

復習がてら、頑張って設定しました。

 

$ cd ~/.ssh

へ移動。

 

$ ssh-keygen -t rsa -f [file name]

で、新しい公開鍵を作成

参考:GitHubのアカウントを複数SSH接続する

 

$ pbcopy < ~/.ssh/ [ file name ]

で、公開鍵をコピーしたら、

githubで自分のページへ行き、公開鍵をペーストして登録。

参考:SSH認証キーをGitHubへ設定する。(Mac用)

 

$ vi config

で、configを設定。

 

あとは接続。

$ ssh git@github.com

すると、公開鍵のパスワードを聞かれますので答えます。

 

「PTY allocation request failed on channel 0
Hi Nashikochan! You've successfully authenticated, but GitHub does not provide shell access.」

 

とかかれました。

翻訳してみると、

 

「チャネル0でPTY割り当て要求が失敗しました
あなたは正常に認証されましたが、GitHubはシェルアクセスを提供しません。」

 

といった内容のようです。

 

 

失敗!?

 

なぜ!?

 

どうして?!

 

何がいけないの!? 

 

 

と、色々調べてみたところ、 問題ないみたいです。

参考:SSH認証キーをGitHubへ設定する。(Mac用)

 

あとは、

$ git clone git@github.com:~~~/~~~.git

デスクトップへディレクトリを移動し、上記を入力すると、無事ダウンロードされました〜!

(^o^)/ 

 

ちなみに、

git@github.com:~~~/~~~.git

の調べ方は、

f:id:nashiko_chan:20180611020527p:plain

緑のボタンを押すと、アドレスが出てくるので、

git@github.com以降を上記のように書いていくだけです。

 

 

 

今日の参考

【ssh-keygen】Linuxで秘密鍵・公開鍵を生成するコマンド | UX MILK

GitHubにssh接続できるようにする

Linuxコマンド【 ssh-keygen 】認証用の鍵を生成 - Linux入門 - Webkaru

GitHubを使ってみよう!導入と簡単な流れ、よく使うコマンドなど。 – YATのblog

GitHubの登録手順。SSH設定&リポジトリをclone, pushまで解説 | vdeep

~/.ssh/config で簡単に複数ホストへのSSH接続を管理する - すぱぶろ

SSHでリモートホストに接続する前にやっておくと便利なことは? ssh-keygenコマンド:ネットワーク管理の基本Tips - @IT

githubとかbitbucketとか色々公開鍵を使いまわしたいとき

 

 

 

 

 

今日のお勉強。180607-git

バージョン管理ツールGit

こわくないGit の続きと、Gitの仕組み を読みました。

 

Git

こわくないGit によると、

・rebaseで作られたコミットは、内容は同じでも別物。

リモートリポジトリにpushした時、内容が同じでも「別物じゃん!」と判断されて拒否されるおそれがある。

・rebaseはmergeの記録は残らないので、mergeする前にrebaseはOKなことも。プルリクエストの時は、rebaseしてから送った方がいいそうです。

・push済みのブランチをリベースしてはならない

 

rebaseは、コミットの歴史を綺麗に整理してくれますが、

どこかで差し支えてしまうおそれがあることを知りました。

 

 

Gitの仕組み では、

・ .git に含まれている大事なものは、Gitオブジェクト、リファレンス、インデックス、ログ、設定。

・gitは大きなツリー構造になってる。

・gitのオブジェクトのIDは、SHA1という関数で作られる(40文字)

 

 

など、色々知ることができました。

 

 

今日のお勉強。180604-git

バージョン管理ツールGit

Learn Git Branching と、こわくないGit の99ページまでを学習しました。

 

Git

Learn Git Branching のRemoto編の6、7、8はちょっと複雑に感じましたが、

便利な方法が色々あるのを知りました。

答えを見ると、「こんな方法でまとめるのか〜」と、勉強になります。

例えば、

$ git fetch origin foo~1:bar

という書き方ですが、

foo~1は、リモートリポジトリのfooブランチの1個手前までローカルに引っ張ってくることができるとのことで、色んな方法があってすごいです。

 

 

こわくないGit  のスライドがわかりやすかったです。

あと、マージには、早送りと、早送りでないものの2種類あるということも知りました。

 

 

次回はこわくないGitの続きを読むことから始めます。

 

 

今日のお勉強。180601-git

バージョン管理ツールGit

Learn Git Branching をRemoteのGitリモート上級編「5.git pushの引数」まで学習しました。

 

Git

上級編になると、複雑になっていきました。

現場で使うgitは複雑なのかな、と想像しました。

 

上級編の「1.Push Master」のところでは、

私は cherry-pick のコマンドを使用したりしましたが、

答えを見ると、rebase コマンドを使っておりましたので、

完成までの過程は人によって違うのかもしれない、と思いました。

(私がgitに関してまだ慣れてないのもありますが…苦笑)

 

$ git checkout -b 

オプション b で新しいブランチを作成&チェックアウト

 

$ git reset --hard HEAD~3

最新コミットから3件コミット取り消す。

--soft オプションの場合は内容を保持しつつ取り消し。

 

 

 

 

今日のお勉強。180529-git

バージョン管理ツールGit

Learn Git Branching をRemoteの「5.擬似的なチーム作業」まで完了しました。

 

次回も続きを学習します。

 

Git

mainの上級トピックは、少し悩んだりしました。

 

「9000回以上のrebase」のところで、

別のブランチにチェックアウトしてから

$ git rebase master

などを記述してましたが、

できた後に答えを見てみると、チェックアウトせずに

$ git rebase master A

と、記述しただけでできたみたいなので、

その方が書く手間が省けて便利だなーって思いました。

 

 

~ や ^ を使って、HEADを移動させるところは、

最初はうまくできませんでしたが、

わかってくるとなんだか楽しかったです。

 

 

Remote編のところは、

$ git clone

と書いただけで、リモートリポジトリができたり、

$ git fetch

で、リモートリポジトリからローカルに反映されたり、

$ git pull

で、fetchとmergeの両方と同じことができたりするところを見た時、

感動しました!

(^^)/

 

メモ:

o/master

とは、リモートリポジトリの現在の状況で、リモートが更新されてから動く。 

 

 

今日のお勉強。180526-git

バージョン管理ツールGit

Learn Git Branching を「様々なtips」まで完了しました。

次回は「上級トピック」を学習予定です。

 

Git

rebaseコマンドやcherry-pickなどを学びました。

 

$ git reset HEAD~1

で、一つ前の作業に戻れる。

 

$ git revert HEAD

で、コミット自体は一つ進むけど、作業はやり直しできる。

 

revert と reset は似てるけど少し違うことがわかりました。

 

$ git cherry-pick C2 C3

で、現在チェックアウトしてる場所から、チョイスしたコミットを付け足すことができる。

その場合、C2とC3には、「'」がつく。C2'、C3'など。

 

git rebase -i 

  • git rebase -i HEAD~n というコマンドで「HEADからn個のコミットを構築し直すよ」と伝える

HEADから、●個前のコミットまでやり直して、新しい歴史(?)を作るイメージです。

git rebase -i はやっぱりイケてる件【git】【rebase 】【iオプション】 - DRYな備忘録

 

$ git tag [tag] C1 

で、C1にタグを つけることができる。

 

$ git checkout C3

で、HEADだけC3へ移動できる。

 

$ git describe C1

で、C1(対象ブランチ)の最新のタグを確認できる。

gitで最後に付けられたタグを確認する - 作業ノート