gitインストール後のgit設定

はじめに

業務でGit Labを使用することになったので備忘録として記事を書く

注意点

今回Cygwinを使用してGitをインストールした後に実施する手順を書くのでCygwinについてや、Gitのインストール方法についての記載は省略する

Git Labとは?

インストール後の手順について記載する前にGIt Labについて確認する。

Git LabはGit Hub同様、Gitベースのソースコード管理機能や、マージリクエストによるレビュー機能を備えたサービス。

コストやセキュリティの観点でGit Hubを使えない企業などが使用する。

インストール後の手順

1.ユーザーの設定

ユーザー情報は必須項目なためgit configを使用して設定する

・ユーザー名の設定

$ git config --global user.name "ユーザー名"

・メールアドレスの設定

$ git config --global user.email メールアドレス

○ --globalオプションについて

--globalオプションを使用すると設定が~/.gitconfigに保存されるため、そのログインユーザーの設定を変更、参照することになる。

使用しないと設定が.git/configに保存されるため、そのリポジトリの設定をすることになる。例としては「改行コードをcrlfにしたい」という場合にそのリポジトリだけ変更することが可能。

今回の場合は全ての操作に対して常にこの設定した情報を参照させたいので、--globalオプションを使用している。

2.改行コードの設定

最近はWindowsはCRLF、それ以外のシステムはLFに分かれている。

今回の場合はUNIXを使用する想定で設定するためLFに設定する

・改行コードの設定

$ git config --global core.autocrlf input

inputとするとCRLFをcommitするとLFになり、checkoutの時は何もしない、つまりLFのままになる

注意点としては、ローカルでCRLFで作成したファイルがあった場合、PULLしてマージしない限りLFにはならない。

また、逆にPULLしてきたファイルはLFになっているため、CRLFとLFが混ざってしまう可能性がある。

大抵のエディタは新規で作成するとCRLFになるので保存するときにLFを選択するなどの手順をする。

3.マージのデフォルト設定

gitのデフォルトの動作では、ff(Fast-Forward)でマージされているようになっている。

ffとはマージされるブランチのHEADをマージするブランチの先端にそのまま移動させるマージを指す。

例えば3からdevブランチを作ってBに進んだとする。

main: 1 - 2 -3

       ↓

dev:   A -B

このままdevをmainにマージするとmainは

main: 1 - 2 - 3 - A -Bのようになる。

ffとならないようにマージした場合は

main: 1 - 2 - 3 - - - 4

                       \        /

dev:                 A - B

のようにマージ用のコミットが作成される。

コマンドでマージする際に --no-ffオプションを指定すれば良いが、毎回するのであれば設定した方が楽なため設定する。

・--no-ffオプションを省略するための設定

$ git config --global -add merge.ff false

上記コマンドだけだとpullしてマージした際にもマージコミットができてしまうので以下のコマンドを実行する。

$ git config --global --add pull.ff only

まとめ

個人でGit Hubを使用したことがあるためある程度の流れや、意味などは理解できてはいるが実務で使用するのが初めてなこと、チームで使用することが初めてなため分からないことが多かった。

なので学習して知識不足な点などを補っていければと思っている。

参考にした記事

seleck.cc

yu8mada.com

デフォルトゲートウェイの冗長化について

はじめに

HSRP(Host Standby Router Protocol)、VRRP(Virtual Router Redundancy Protocol)、GLBP(Gateway Load Balancing Protocol)の技術を理解するために、デフォルトゲートウェイ冗長化について書く

用語の確認

デフォルトゲートウェイ冗長化について書く前に、デフォルトゲートウェイ冗長化とは何なのかを書く。

デフォルトゲートウェイ

ネットワーク内のコンピュータから外部のネットワーク上にあるコンピュータにアクセスする際に、出入り口の役割を果たす機器のこと。

冗長化

システムの一部に何らかに障害が発生した場合に備えて、障害発生後でもシステム全体の機能を維持し続けられるように、予備装置を平常時からバックアップとして配置し運用しておくこと。

簡単にいうと、1台故障しても冗長化をしていれば予備装置が存在するため障害が発生せずに運用を行える(デフォルトゲートウェイの場合でいうと、IPアドレスを変更せずに通信を続けることができる)

デフォルトゲートウェイ冗長化

ホストとルータ間の通信において通信経路を冗長化させること。

上記の冗長化の箇所でも記載したが、何か障害などが発生した場合でも冗長化をしていればアドレスの設定変更を手動で行う必要がなく、通信を継続することができる。

冗長化をしていなければ、手動で設定変更をする必要あり通信も変更を実施するまで通信することができない。

参考サイト

https://www.infraexpert.com/study/routing8.html

LANケーブルについて

はじめに

LANケーブルのストレートケーブルクロスケーブルについて書く

LANケーブルとは?

ストレートケーブルクロスケーブルについて書く前に、そもそもLANケーブルとは何か記載する。

LAN(Local Area Network)ケーブル

名前の通りだがLAN(ローカルエリアネットワーク)を構築するためのケーブル。

ルータやスイッチングハブ(ネットワークハブ)といった通信機器と、PCなどの端末を有線接続する時に使用する。

<用語>

・ローカルエリアネットワーク

会社や家庭などで使用されるコンピュータネットワークのこと。

・ルータ

コンピュータネットワークの中継、転送機器の一つ。

ネットワークの交通整理を行うもの。

データの転送経路の選択、制御する機能を持ち、複数の異なるネットワーク間の中継、接続に用いられる。

スイッチングハブ

通信ネットワークの中継装置の一つ。

受け取ったデータを接続された全ての機器に送信せず、宛先などを見て関係する機器のみに送信する機能を持ったもの。

ストレートケーブル

パソコンとハブ、パソコンとルータなどを接続する際に使用する。

ケーブル内の銅線が途中で交差せずケーブル両端で同じピン配列になっている。

 

クロスケーブル

パソコン同士で接続したい場合に使用する。

ケーブル内の銅線が途中で交差しておりケーブル両端で異なるピン配列となる。

通信規格

100BASE-TX

1000BASE-T

・1000BASE-TX

参考サイト

https://note.cman.jp/network/lan_cable_cross.cgi

書籍:知性の磨きかた

読んだ感想

自分には無かった視点などが多く書かれておりとても参考になった。

特に読んでいて刺さったのが読書に対してと趣味に対しての視点。

読書に対してはどこかで「本は読まなければならない。なぜなら知識を増やすために必要だから」などの考え方があったが、この書籍を読んで自分の視野が狭くなっていることに気づけた。

趣味に対しては「趣味だから仕方ない」、「趣味だからこのレベルかなぁ」など、たまに甘い考えが出てしまっていたが、趣味だからといって本気でやらない理由がないよなぁと改めて思った。

思い返してみると楽しんでいる時は本気でやっている時だったため(今現在手を抜いている訳ではないが)、自分の甘い考え方を改めて更に楽しむためにも本気で努力する必要があると感じた。

まとめ

上記には記載しなかったが考え方、姿勢など多くのことが学べた。

書かれていることが全て正しい訳ではないと思うが、参考にするだけでなく取り入れて自分の人生に生かせるようにするべきだと感じた。

終わりに

今まで書籍についての感想などをあまり書いてこなかったのが悪いが、改めて自分の文章を見るとレベルの低さを感じた。

記事を書いていて何度も消したり、記事を書くこと自体辞めようかと何度も思ったが、挑戦しなければ現状の状態も打破出来ないため、正直かなりしんどいが回数を積み重ねてレベルを上げていく。

 

書籍:0秒思考

はじめに

0秒思考を読んだので感想などを記載

読んだ理由

簡単な理由ではあるが自分は頭の回転が速い訳ではないため、少しでもマシにするためのヒントを得るために講読。

何を得られたか

0秒思考がなぜ重要なのか、0秒思考を手に入れるためのプロセスが理解出来た(詳しい詳細、実施方法は省略)。

続ける難しさは置いておいて、実施方法が簡単で誰でも簡単に始めれるものであるため敷居が低いと感じた。

メモが重要ということは様々な書籍を読んで理解はしていたが、改めてメモの重要さを理解することが出来た。

どの本でも言えることだが読んだ後のアウトプットが重要となるため、内容に記載されていた実施方法を早速実践しアウトプットする。

最後に

記事の内容が完全に自分のための記事&記事のレベルが小学生レベルということは理解しているが、今まで書籍を読んだ後どこかにまとめたことが無かったため、書籍のネタバレにならないようこれからも簡単でも記事を書いて、その本を読んで何が得られたかを記録するため記事を書くようにする。

 

複数のコマンドを連続して実行する

はじめに

コマンドを連続して実行する方法が意外と多かったため備忘録、知識として記載。

種類

・;(セミコロン)

コマンド1が正常、異常関係なく終了したらコマンド2を実行する。

よくcdコマンドでディレクトリを移動する際に使用されているのが見られる。

$ cd パス;pwd

pwdコマンドは現在の作業ディレクトリを表示するコマンド。

上記のように使用される理由としては、cdコマンドだけではディレクトリに移動出来たか視覚的に分かりづらいため(人による)、pwdコマンドを付与して視覚的に分かりやすいようにしている。

・&(アンパサンド)

コマンド1とコマンド2を並行で実行する。

使用例は人にもよるとは思うが、自分はツール実行とログ監視を同時に実施する際に使用したり、コマンド実行後の標準出力が多い場合などに使用する。

$ ツール名 & tail -f ログファイル

※tailコマンドはファイルの最後の行を表示するコマンド。-fオプションを付与することによりファイルの追記を監視できる。

・&&(アンド)

コマンド1が正常に終了した場合のみコマンド2を実行する。

自分が使用したことがあるものはfindコマンドでファイルを検索し、検索出来た場合削除するという使用方法。

$ find 検索先 -name ファイル名 && rm -rf ファイル名

※findコマンドはファイルやディレクトリを検索するコマンド。-nameオプションを付与することによりファイル名を指定して検索できる。

・|(パイプ)

コマンド1の結果をコマンド2へ渡して結果を出力する。

多分この|(パイプ)が一番使用されていると思う。

使用例としてはpsコマンドで動作しているプロセスを確認し、その結果をgrepコマンドで特定のものだけ抽出する。

$ ps -aux |grep 検索文字列

※psコマンドは上記に記載している通り動作しているプロセスを確認するコマンド。-auxオプション(それぞれ-a、-u、-xと別々)を付与することにより全プロセスをかくにんできる。

grepコマンドはファイルの文字列に対して検索し表示するコマンド。ファイルを指定しなかった場合は、標準出力から読み込み検索する。

・||(オア)

コマンド1が異常終了した場合のみコマンド2を実行する。

||を使用したことがないため例を調べてみると、cdコマンドを実行し移動先のディレクトリが存在しなかった場合mkdirコマンドでディレクトリを作成するという使用方法があった。

$ cd パス || mkdir ディレクトリ名

参考にさせていただいたサイト

https://armadillo.atmark-techno.com/blog/8700/3722

yumが使えなくなった話

はじめに

OSからインストールする作業をしていてyumが使用できなくなったので備忘録として記載する。

何が問題原因だったか?

結論からいうとrepoファイルが複数存在していたことにより、どちらのファイルを使用すれば良いか判断できずにyumが使用できなくなっていた。

なぜrepoファイルが複数存在していたのかというと、複数のisoファイルを使用する必要があったため使用した分ファイルを作成していたのが理由。

原因を特定するまで

まずyumが使用できなくなった時に、直ぐに「repoファイルが複数存在しているのが問題だ!だから古いrepoファイルを削除しよう!」となった訳ではない。

理由としては、エラーの内容ではミラーサイトが見つからないということしかわからなかったため(エラーコード:Error256、14)

※エラー内容については会社のPCで作業していたため記載が出来ない。その代わりにエラーコードを記載している。

そのため、エラーを解消するために実施したのはyumのキャッシュクリア、Red Hatを使用していたためサブスクリプションに問題があるというエラー内容だったことからサブスクリプションの設定の見直し作業。

結果は当たり前だが解決せず。そのため先輩に質問し上記原因を特定。

まとめ

今回のエラーは先輩に質問するまで全く分からなかった。

知識もそうだがもっと経験が必要だと実感した。