ひとりで使うgit
きっかけ
gitが難しい理由がはっきりしたから。
メンテナーの濱野氏による解説を読みたかった。
ゴール
git add
,git commit
,git diff
,git status
,git show
コマンドを理解する。
目次
リポジトリの初期化
gitを始める。
$ git init
最初のコミット
すべてのファイルをステージに上げる
$ git add . $ git commit -m "first commit"
変更の記録する
👉 最初の変更をしたあとの場合を考える。
変更箇所の確認をする。
$ git diff
コミット直前に最終確認をする。
$ git diff HEAD #まとめてこれまでの差分の表示をする
- HEAD : 現時点で最新のコミットのこと
どのファイルがつぎのコミットに含まれているのか確認する
$ git status
👉 このとき不要なバックアップファイルが見つかれば.gitignore
ファイルに記述する。
一括コミットする場合(いろいろな流派あり)
$ git commit -a "Func 1 を仕上げました"
unified形式とは
- --- で始まる行は元のファイル
- +++ で始まる行は比較するファイルの名前とタイムスタンプ1が出力される
- @@ で始まる行は内容が異なる行を含むテキストブロックの範囲 ブロックは行頭の文字によって差分がわかる
行頭の文字 説明 patchコマンドの動作 +
元ファイルにこの内容を追加したものが比較ファイルとなる 追加 -
元ファイルからこの内容を削除したものが比較ファイルとなる 削除 半角スペース 修正箇所の周辺の内容 変更なし インデックスの概念を理解するといいらしい
- インデックス : リクエストされた状態をgitが記録する仕組みのこと
- gitは次の3つの状態をやり取りするプログラムである
- HEADの状態
- インデックスに記録した状態
- ワークツリーの状態
変更履歴を見る
コレまでを振り返る。
$ git log
部分変更を記録する
これまでのハンクを次のコミットに含めるか否か迷った場合
$ git add -p
その結果、HEADとインデックスを比べたい場合
$ git diff --cashed
その結果からコミットの決定をする場合
$ git commit -v
残りの変更をコミットする場合
$ git commit -a -m "hoge message"
ゴミファイルをコミットから外す場合
$ git reset fuga_fail
参考文献
gitのメールアドレス設定について
きっかけ
個人開発とはいえ、公開したくないメールアドレスを使いたくありませんでした。
知れ渡る可能性があるのは、コミットに設定しているメールアドレスですが、とはいえ知らずにアカウントのメールと同じにしている方は多いのではないでしょうか?
新しいアドレスを取得せずにこの問題を回避できるので、紹介したいと思います。
git logで確認する
しっかり、GitのコミットのAuthor情報として埋め込まれます。 クローラーでメールアドレスを収集するなんてことが容易にできてしまいますね。
noreply のメールアドレスで回避する
回避のために GitHub が提供している noreply のメールアドレスを使用します。
Web上で、アカウント設定 → mail → Keep my email address private のチェックをいれます。
noreplyメールアドレスの確認方法
【ID】+【ユーザー名】部分は画面右上のアイコンメニュー → Settings → サイドメニューのEmails、から確認できます。
【ID】+【ユーザー名】@users.noreply.github.com
次に、Gitクライアントで、コミットのメールアドレスにnoreplyのメールアドレスを設定します。
$ git config --global --add user.email メールアドレス
これで、次回から安心してコミットできるようになりました❗
参考文献
Rustでプログラミングコンテストに挑む
はじめに
Rustが素晴らしいので、腕試しにAtCoderに参加する方も多いのではないでしょうか?
いくつかのお作法をまとめてみました。
開発環境
macOS 12.5 Monterey
Apple M1 Pro
メモリ 16GB
Rustでの参加方法
こちらの、公式ホームページで仕様を確認しましょう。 特に、使用できるクレートを確認しておきましょう。 事前コンパイルも大事です。
Rustバージョン指定
Rust本体のバージョン指定はCargo.tomlと同じフォルダで次のようにします。
$ cd プロジェクトのフォルダ $ echo "1.42.0" > rust-toolchain $ rustc -V rustc 1.42.0 (b8cedc004 2020-03-09)
input!マクロで入力の手間を省く
Rustの入力処理は面倒ですが、これには2020年に外部クレートとして追加されたinput!
マクロを使います。
input!{ n: i32, m: i32, a: [i32; n], }
cargo-atcoder ツールで直接提出
cargo-atcoderは@tanakh さんによるRust での AtCoder ライフを豊かにするためのツールです。
このツールによりローカルで書いたコードをコマンドラインから直接提出できます。 また、testサブコマンドで提出コードをチェックをすることもできます。
$ cargo atcoder new abc123 $ cargo atcoder test a
提出方法は次のようにします。
$cargo at coder submit a $cargo atcoder status
その他 参考等
zenn.devの使い方まとめ
きっかけ
- 自分用のアウトプットをしたい
- そろそろ得られた知識をマネタイズしたいなぁ
- GitHubdeで管理が楽な上に宣伝効果もあるよね〜
- でもどうやってZennで公開するの?
等などのブログ的発信はもはや必須なので、ライトユーザー向けに注意点を簡単にまとめてみました。 細かい仕様は公式のリンクをたどってください。
最初に知っておくべきこと
① ローカルのエディタで投稿できる
記事作成の手段は次の2パターンがあります。
ここは、好きなエディタを使いたいのでCLIのインストールの一択でしょう。
② CLIのインストールにnpm
が必須
Zennのコンテンツを管理したいディレクトリで、以下のコマンドを実行します。
$ npm init --yes # プロジェクトをデフォルト設定で初期化 $ npm install zenn-cli # zenn-cliを導入
次に、Zenn用のセットアップを、以下のnpxコマンドで実行します。
$ npx zenn init
README.mdや.gitignoreのほか、articlesとbooksという名前のディレクトリが作成されます。この中にmarkdownファイル(◯◯.md)を入れていくことになります。
③ GitHubリポジトリと連携して公開される
専用のリポジトリを用意してください。好きな名前でOKです。公開設定はPublicでもPrivateでも大丈夫ですが収益化を考えているならPrivateのほうがいいでしょう。(それもあってから2つ登録できるようです。)
作成後は、次のようにZenn側のデプロイ管理を開いて「Only select repositories」にチェックを入れて、連携するリポジトリを選ぶこと
公開までに知っておくべきこと
① ファイルの形式
1記事1ファイルの原則のもとコマンドでファイルを作成します。
このとき、下記のようにslug
オプションをつけてファイル名を指定します。
$ npx zenn new:article --slug what-is-slug # => articles/what-is-slug.md`が作成される
このslug
には注意が必要です。なぜならZenn側の理由から次のような性質があるからです。
- スラッグはファイル名になる
- スラッグはユニークでなければならない
- スラッグは /[-a-z0-9]{12,50}/ のパターンの範囲内でなければならない(半角英数字とハイフンで12〜50字)
従って,スラッグは次のように日付つきにしたほうがよさそうです.
$ npx zenn new:article --slug 2020-09-18-what-is-slug
(参考) Zennの記事をほんの少しだけ楽に作成できるVimコマンド
ファイルの中身ですが、次のYAML設定が入ったMDファイルが作られます。
--- title: "" # 記事のタイトル emoji: "😸" # アイキャッチとして使われる絵文字(1文字だけ) type: "tech" # tech: 技術記事 / idea: アイデア記事 topics: [] # タグ。["markdown", "rust", "aws"]のように指定する published: true # 公開設定(falseにすると下書き) --- ここから本文を書く
② 独自のmarkdwon記法(抜粋)
diff形式とKaTexの数式表示が使える。
:::message
や:::message alert
の独自形式がある。:::details タイトル
で文章をトグルすることができる。
独自形式はエディター附属のプレビューでは確認できません。
次のコマンドで記事をプレビューしながら編集します👍
$ npx zenn preview
③ 記事の公開方法
ファイル内のキーをpublished:ture
にすることで、連携中のGitHubリポジトリにpushすると自動的に公開されます。
最後に
以上で公開できるようになるはずです。 他にも様々な工夫を皆さんされていて参考になるページがたくさんあります。 ではよきZennライフを😀
実行をカスタマイズする
きっかけ
VSCodeでは、ターミナルで実行する場合がもどかしいです。次のようでは python
を効率的に学習できません🥲
右上の再生ボタン
ファイルを右クリック
F5でデバッグモード
どれも間違いではありませんが、ホームポジションを崩さずに実行する方法を紹介したいと思います。
拡張機能(Code Runner 編)
拡張機能アイコンをクリックして「Code Runner」をインストールしましょう。
Code Runnerの設定
インストールが終われば、検索結果の左下のアイコンをクリックして「拡張機能を設定を構成する」を選択します。
変更箇所は一箇所だけです。画面に表示された「Run In Terminal」のチェックボックスをONにしましょう。
この段階でマウスを使う必要がすでになくなりました。Ctrl
+ Option
+ N
を押して確かめてみましょう。
再生ボタンを押したときのように、ターミナルに表示されました。
「Code Runner」には、他にもCtrl
+ Option
+ M
でコードを停止させたりと便利なショートカットがいくつか用意されています。
キーボードショートカットを設定する
ショートカットを押しやすいキーにしてさらに便利にします。
⌘K
+ ⌘S
でショートカットの変更ダイアログを表示させます(もしくはメニュー → 基本設定 → キーボードショートカット)。
設定項目が多いので検索窓に「実行」と入れて検索させましょう。
「ターミナルでファイルを実行する」が見つかれば左の鉛筆マークをクリックします。
自分はCtrl
+ r
を2回押し にしました。最後にEnter
を押せば登録されます。
ではよりよいVscode ライフを〜