ブログ名未定

開発環境はWSL(Ubuntu)です。

ブランチの切り方、マージ

リモートリポジトリの作成に成功したので、ブランチを切ってマージする練習をする。

  1. masterブランチから分岐(test-branch)ブランチを作成
    GitHubブラウザ上からできるけれど、コマンドラインから作成する練習。
    git --versionでGitのバージョンが2.23未満なら下記のコマンドを実行してブランチを切る。
    詳細は後述する。(ちなみにgitのバージョンアップは、sudo apt install gitでできる。)

    git checkout -b test-branch

    このコマンドは下記のコマンドのショートカット版

    git branch test-branch     #test-branchの作成
    git checkout test-branch     #test-branchへの切り替え
    git branch -a    #ブランチの一覧確認

    Gitのバージョンが2.23以上の場合、checkoutも使えるがswitchとrestoreコマンドに役割が分けられているのでそちらを使うようにする。
    » git switchとrestoreの役割と機能について - Qiita https://qiita.com/yukibear/items/4f88a5c0e4b1801ee952
    WSLのUbuntuはLTS版なので、今の環境だとGitのバージョンは2.17.1。
    なのでこれらのコマンドが使えなかった。

  2. test-branchにいることを確認して、なんらかの変更を加える。

  3. test-branchをリモートリポジトリにpush
    git push origin test-branch

  4. ついでにタグもつけてpushしちゃう
    git tag -a タグ名 -m"tag test"
    git push origin タグ名

  5. masterブランチに移動
    git checkout master

  6. test-branchをマージする
    git marge test-branch

以上で終わり。今回はコンフリクトの練習はしてない。
マージしたあとに、git branch -d test-branchで分岐したブランチを削除できるけど、
ブランチ戦略の話になってくるのでこれは今後勉強する。たぶん。

プライベート(リモート)リポジトリへPushするようにした手順メモ

プライベートリポジトリへpushできなかった。
Gitの設定(SSH鍵の作成と登録)ができてなかったから。

 

SHH鍵についてのざっくりとした理解は下記の通り
・サーバ側で公開鍵、ユーザ側で秘密鍵を持つ。
・複数人で1つのリモートリポジトリを共有する場合は、公開鍵を相手に渡すこと。秘密鍵は渡さない。
・今回だと公開鍵を持つサーバ側=リモートリポジトリ
秘密鍵を持つユーザ=ローカルリポジトリ

SSH鍵の作成と登録の手順は下記の通り

  1. まず既存のSSH鍵がないか確認
    » Checking for existing SSH keys - GitHub Help https://help.github.com/en/github/authenticating-to-github/checking-for-existing-ssh-keys
  2. そのあとSSHキーを作成するのだけど、公式サイトの作成方法は採用せずbashから下記のコマンドで作成。
    ssh-keygen -t ed25519
    ※ed25519は鍵の種類。通常はRSAだがこれよりも強度が上でかつ処理も早いのでed25519を用いることにする。
  3. パスフレーズを登録。
    パスフレーズは鍵が盗まれてしまったときのために、鍵自体もパスワードで保護するイメージ。
  4. /home/asymptoter/.sshディレクトリにid_ed25519.pubという名前で鍵が作成される。

    f:id:asymptoter:20200211205454p:plain

  5. この作成した鍵の中身をコピーし、GitHubに登録。ここでだいぶ苦労した。
    この手順は下記の公式サイトを参考にしたが、Mac用だったことにあとから気づいた。もしかしたら丸々不要な手順だったのでは感がある。
    » Adding a new SSH key to your GitHub account - GitHub Help https://help.github.com/en/github/authenticating-to-github/adding-a-new-ssh-key-to-your-github-account

    この手順だとWinでSSHキーをクリップボードにコピーできず大変だった。
    下記の手順でコピーできた。
    ・ローカルマシンに適当な名前.txtでファイル作る。(ここでは公開SSH.txtとし、デスクトップに作成した)
    ・下記のコマンドを実行
     cat ~/.ssh/id_ed25519.pub > /mnt/c/Users/ユーザ名/Desktop/公開SSH.txt
    Linuxを普段使っている人からしたら常識的かもしれないが、パス名がWSL特有なので注意が必要。Windows上のCドライブは/mnt/c/にある。

以上でSSH鍵の作成と登録は終わり。
次にプライベートリポジトリにpushする準備を行う。

  1. GitHubブラウザ上でプライベートリポジトリを作成する。ここではGitTrainingというリポジトリを作成した。
  2. この作成したリポジトリをローカルリポジトリにcloneする。するとcloneを実行したディレクトリにリモートリポジトリと同じ名前のディレクトリが作られる。

    f:id:asymptoter:20200211212621p:plain

  3. HTTPSからSSHへのリモートURLの切り替えを行う。ローカルディレクトリごとにリモートURLの設定ができる。今回はGitTrainingディレクトリで設定を行う。
    » Changing a remote's URL - GitHub Help https://help.github.com/en/github/using-git/changing-a-remotes-url#switching-remote-urls-from-https-to-ssh
  4. ここから先の手順は記憶があやふや・・・
    GitTrainingディレクトリに移動して、「test.txt」を作成して、addして、commitして、pushする。
    touch test.txt
    git add test.txt
    git commit - m"テストコミット"
    git push origin master
  5. ブラウザから「test.txt」が確認できればOKだったはず

参考にしました。
» Windows Subsystem for Linux (WSL)を使いやすく設定する - Qiita https://qiita.com/python_walker/items/41894c952ee06b018994

コミット時のコメント入力でvimが起動するように設定

コミットするとき、

git commit -m "コメント"

でいつもコメントを書いていたけどうっかり -mをつけるのを忘れた。
そしたらエディタっぽいのが起動したので
「あ、エディタが自動起動してコメント入力求められたんだな~」
と思ってvimの要領で initial commitとコメントを入力。
けど、おかしい。Escでノーマルモードにできず、:wqで終了できない・・・

つよつよから「節子、それvimやない。nanoや」とのご指摘を頂きました。
EDITOR環境変数vim 設定しておかないと自動でnanoが起動するらしい。

f:id:asymptoter:20200113220447p:plain

nano

nanoというエディタの存在は知ってたけど初めて見た。これがnanoなの~
vimで起動して欲しいのでEDITOR環境変数vimをセット。
無事にコミットできました。

f:id:asymptoter:20200113222107p:plain

 

git備忘録

gitの勉強しようと思い立ってUNIXコマンドの練習、vimの練習を経てようやっとたどり着いた・・・。

gitには大きく3つのエリアがある。
・作業ディレクト
・ステージング
リポジトリ(ローカルとリモート)
最初は作業ディレクトリにファイルがあり、addでファイルをステージングに、commitでリポジトリにファイルを移動する。

 

//gitの設定一覧確認
git config -l

 

//ログのオプション
git log --oneline:コメントをシンプルに見たいとき
git log -p:変更された部分の確認
git log --stat:どのファイルが何ヶ所変わったか

//作業ディレクトリにある変更を加えたファイルを変更前に戻す
git checkout -- ファイル名
※-- のあとに半角スペース入れるの忘れないように!

//作業ディレクトリでファイルのどこが変更されたか確認する
git diff

//ステージングでファイルのどこが変更されたか確認する
git diff --cached

 

//git addの便利な使い方
git add .:今のディレクトリにあるファイルを全部ステージングにあげる

//ファイルの削除
一度gitにあげたファイルは必ずgitから削除するステップを忘れないように
git rm 削除するファイル名

 

//gitにあげないファイルの指定
作業ディレクトリに下記のディレクトリを作成して編集
vim .gitignore
バージョン管理の必要がないlogファイルなどを追加
※gitignoreと同じ階層のディレクトリにあるファイルのみが指定できる
*.log
:wq


//lsのオプション
ls -la:隠しファイルも表示

 

//直前のコミットの変更
ちょっとした変更をし、コメントの更新も特に必要ない時
git commit --amend

//1個前のバージョンに戻す
git reset --hard HEAD:作業ディレクトリもステージングも戻す

 

//2個前のバージョンに戻す
git reset --hard HEAD^

//ほかのバージョンに戻す
git reset --hard 戻したいバージョンのcommitID
※commitIDはgit logで確認する。

//前回resetしてしまったHEADに戻す(1個だけ戻せる)
git reset --hard ORIG_HEAD

 

//ブランチ(=分岐、枝分かれ)
git branch hogehogeというブランチを作成
git branch:ブランチの一覧(*のついているブランチが今いる場所)
git checkout hogehogeブランチに移動
git checkout -b hogehoge:hogehogeブランチを作成して移動
git branch -d hogehogeブランチの削除

//マージ
ファイルをマージしたいブランチに移動して実行
git merge hoge

 

//タグ
git tag v1.0:直近のコミットにタグをつける
git tag v0.9 タグをつけたいcommitID:直近より前のコミットにタグをつける
git tag:タグの一覧確認
git tag -d v0.9:タグの削除

//エイリヤ
gitの命令に短縮名をつける方法
git config --global alias.co checkout:checkoutの短縮名をcoにする
git config -l:エイリヤスの確認

 

//共同作業するために
mkdir 共有リポジトリ名.git:共有リポジトリを作成。基本的に.gitとする
git init --bare:共有リポジトリに移動して実行
※bareをつけると管理ファイルだけが管理され、ファイルのコミットなどはされないと設定される。
git remote add origin ~/共有リポジトリ名.git:プッシュするリポジトリのあるディレクトリに移動して実行
git remote rm origin:共有リポジトリの削除
git push origin master:共有リポジトリoriginに向かってmasterの内容をプッシュする
git clone ~/共有リポジトリ名.git/ 新しいリポジトリ名:共有リポジトリの中身を新しいリポジトリに入れる
git pull origin master:共有リポジトリの内容をマージ

vimコマンド備忘録

//よく使うやつ
i:インサートモード
:q:vim終了
:w:上書き保存
:wq:保存して終了
:q!:保存せず終了

 

//移動系のコマンド

gg:先頭へ
G:終わりへ
ctrl+f / ctrl+b:画面単位の移動
w/b :単語単位の移動
^:行頭
$:行末
f+文字:検索したい文字に移動
%:括弧閉じに対応する括弧に移動

 

//ビジュアルモードについて

v:文字単位
V:行単位
ctrl+v:単語単位
gg V G:全選択

 

//カット(削除)、コピー、貼り付け
x:1文字カット
dd:1行カット
n+dd:n行カット
p:貼り付け
yy:1行コピー
n+yy:n行コピー

 

//検索
/単語:単語を検索
n:下方向の検索
N:上方向に検索
*:カーソルを当てている単語を検索(完全一致)
#:カーソルを当てている単語を下方向に検索(完全一致)

 

//置換
:sでコマンドモードにして実行する
:s/state/State/g:カーソルがある行にあるstateをStateに置換
/gを付けない:最初の1つだけ置換
:%s/state/State/g:ファイルにあるstateを全部Stateに置換
/gc:1つずつ置換をするか確認

 

//操作の取消
u:もとに戻す
ctrl+r:進む

 

//ウィンドウの分割
:sp:上下にウィンドウを分割
ctrl+w+w:ウィンドウを移動
:e ファイル名:移動先のウィンドウでファイル名を開く
:vs:左右にウィンドウを分割
:close:ウィンドウをクローズ

//タブ
:tabnew:タブ形式で開く
:tabe ファイル名:ファイル名をタブで開く
gt:次のタブへ移動
:tabclose:タブのクローズ
vim -p ファイル名:vimの起動時からファイル名をタブで開く
:tabdo %s/html/HTML:すべてのタブでhtmlをHTMLに置換

 

//直前の操作の繰り返し
.:直前の操作を繰り返す

 

//インデントを揃える
=:1行単位でインデントを揃える
gg+V+G+=:全選択してすべてのインデントを揃える

//補完機能
ctrl+n:変数補完候補を出す

 

//短形選択と編集の組み合わせ
ctr+v+Iで範囲選択をしたあと、1行目を編集すると選択した範囲がすべて1行目と同じ入力パターンで置換される

 

//テキストオブジェクト
cit:カーソルがある部分の単語を変更

 

//便利な設定
:set number:行番号の表示
:set nonumber:表番号の非表示
:syntax on:コードの色付け
:syntax off:コードの色付け解除
:set tabstop=4:タブの文字数を4文字にセット
:set ignorecase:小文字大文字関係なく文字検索してくれる
:set noignorecase:上記コマンドの解除

wslのbashからファイルの中を編集するには?

3のbashから操作する方法が分からず・・・
2は touch ~で作成した。←そもそもこの作り方でいいのか??

やってみよう:初めてのコミット

下記の手順に従うことによって、GitHub上に変更をコミットすることが出来ます。

  1. ブランチをチェックアウトしましょう:
    git checkout my-slide
  2. _posts/0000-01-02-triskaider.mdという名前の新しいファイルを作成しましょう。
  3. ファイルに下記の内容を追記しましょう:
    ---
    layout: slide
    title: "2枚目のスライドにようこそ!"
    ---
    何かを書く。
    戻るには戻るボタンを使いましょう!

 

f:id:asymptoter:20200105184635p:plain

 

追記。touchでファイル作成するのは合ってた。
エディタ開いて編集すればよいらしい。

vim ファイル名

vim(エディタ)を開いて、iで挿入モードにして、3の内容を追記。
追記出来たらEscを押下、:wで上書き保存、:qで編集終了

参考にしました。
» Vim初心者に捧ぐ実践的入門 - Qiita https://qiita.com/okamos/items/c97970ab34ff55ff3167