今日のお勉強。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のディレクトリの方が便利だったのかな…と、今思いました。
参考:
いよいよ登場!初心者こそ知っておきたいGitHub Desktopの使い方|ferret [フェレット]
今日のお勉強。180610-github
GitHub
今日はsshの設定して、公開鍵をやって、git-itをクローンしました。
無事ダウンロードできました。
sshの設定
sshを学習したのは去年の秋頃でしたので、
復習がてら、頑張って設定しました。
$ cd ~/.ssh
へ移動。
$ ssh-keygen -t rsa -f [file name]
で、新しい公開鍵を作成
$ pbcopy < ~/.ssh/ [ file name ]
で、公開鍵をコピーしたら、
githubで自分のページへ行き、公開鍵をペーストして登録。
$ vi config
で、configを設定。
あとは接続。
すると、公開鍵のパスワードを聞かれますので答えます。
「PTY allocation request failed on channel 0
Hi Nashikochan! You've successfully authenticated, but GitHub does not provide shell access.」
とかかれました。
翻訳してみると、
「チャネル0でPTY割り当て要求が失敗しました
あなたは正常に認証されましたが、GitHubはシェルアクセスを提供しません。」
といった内容のようです。
失敗!?
なぜ!?
どうして?!
何がいけないの!?
と、色々調べてみたところ、 問題ないみたいです。
あとは、
$ git clone git@github.com:~~~/~~~.git
デスクトップへディレクトリを移動し、上記を入力すると、無事ダウンロードされました〜!
(^o^)/
ちなみに、
git@github.com:~~~/~~~.git
の調べ方は、
緑のボタンを押すと、アドレスが出てくるので、
git@github.com以降を上記のように書いていくだけです。
今日の参考
【ssh-keygen】Linuxで秘密鍵・公開鍵を生成するコマンド | UX MILK
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 によると、
・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(対象ブランチ)の最新のタグを確認できる。