20200321のGitに関する記事は9件です。

Railsアプリを git-flow で管理する

はじめに

就活用のポートフォリオをGitで管理する際、これまでは全ての作業を同じブランチで行なっていました。
しかし今後現場に入ってチームで開発する際には、issueごとにブランチを切ってそれぞれで作業するということもあると思います。
そうした状況に今から慣れておくために、ポートフォリオを作成する過程のGit管理に、git-flowを活用することにしました。

issueを作成する

まずはこれから追加したい機能などの内容を記述したissueを作成します。

スクリーンショット 2020-03-21 18.29.50.png

対象リポジトリに移動する

ターミナル上で対象のリポジトリに移動します。

$ cd myapp #自分のアプリの名前 

git-flowをインストールする

ターミナルで下記コマンドを打ち込み、git-flowをインストールします。

$ brew install git-flow

ブランチ「develop」を作成

「git checkout」は、gitのブランチを切り替えたい時に使います。

$ git checkout master
Already on 'master'

で、masterブランチに合わせた上で、

$ git branch develop

新しいブランチ「develop」を作成します。

git-flowを導入する

対象のリポジトリに git-flow を導入します!

$ git flow init
Which branch should be used for bringing forth production releases?
   - develop
   - master
   - socialization
Branch name for production releases: [master] 

Which branch should be used for integration of the "next release"?
   - develop
   - socialization
Branch name for "next release" development: [develop] 

How to name your supporting branch prefixes?
Feature branches? [feature/] 
Release branches? [release/] 
Hotfix branches? [hotfix/] 
Support branches? [support/] 
Version tag prefix? [] 

いろいろ項目を聞かれますが、デフォルトの設定で良いので、Enterを押していきます。

「feature」ブランチに切り替える

git-flow には5つのブランチの概念があり、先ほど作成した「develop」は開発用。
そして下記で作成する「feature」は、機能実装用のブランチです。
issue番号を指定することで、issueに紐づけることができます。

$ git flow feature start <issue番号>

具体的には下記のように書きます。

$ git flow feature start 14
Switched to a new branch 'feature/14'

Summary of actions:
- A new branch 'feature/14' was created, based on 'develop'
- You are now on branch 'feature/14'

Now, start committing on your feature. When done, use:

     git flow feature finish 14

切り替わったかどうか、確認してみます。

$ git branch
  develop
* feature/14
  master

切り替わっています。
このままではまだローカル環境内で切り替わっているだけなので、「publish」コマンドでGitHubに反映します。

$ git flow feature publish 14
Summary of actions:
- A new remote branch 'feature/14' was created
- The local branch 'feature/14' was configured to track the remote branch
- You are now on branch 'feature/14'

コミットする際に「#issue番号」を入れる

コミットメッセージの中に、「#issue番号」を入れることで自動的にコミットが、該当するissueに紐づきます。
issueごとにコミット内容が確認できるため、コミットの差分が視覚的に分かりやすいです。

例です。

$ git add .
$ git commit -m "SpecialBookモデルを追加 #14"

スクリーンショット 2020-03-21 18.30.08.png

GitHubの管理画面で、Pull Requestを送信する

該当のブランチからPull Requestを送信します。

スクリーンショット 2020-03-21 18.37.08.png

内容を確認し、Pull Requestをマージする

変更内容を確認し問題がなければ、コミット内容をマージします。

スクリーンショット 2020-03-21 18.40.29.png

以上です。
今後も現場の開発を意識した学習を進めていきます。

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

製薬企業研究者がGitの基本についてまとめてみた

はじめに

Gitは共同開発で使われるバージョン管理ツールです。
ファイルの変更履歴を管理することができます。
ここでは、Gitの基本に絞って解説します。

Gitの初期化

Gitを使うときは最初に準備として以下のコマンドを実行します。

$ git init

これによりGitが初期化されます。

リモートの登録

これからファイルをアップロードするリモートの場所を登録するには以下のコマンドを実行します。
リモート名としては、originを使うことが多いです。

$ git remote add リモート名 リモートのURL

ファイルの選択

アップロードするファイルを選択するには、以下のコマンドを実行します。

$ git add ファイル名

コミット

選択したファイルをコミットするには、以下のコマンドを実行します。

$ git commit -m "コミットメッセージ"

リモートへのファイルのアップロード

コミットしたファイルをアップロード(プッシュ)するには、以下のコマンドを実行します。
ブランチ名は、masterとすることが多いです。

$ git push リモート名 ブランチ名

リモートからのファイルのダウンロード

リモートからファイルをダウンロード(プル)するには、以下のコマンドを実行します。

$ git pull リモート名 ブランチ名

変更の確認方法

追加されたファイルや、変更が加えられたファイルを確認するには、以下のコマンドを実行します。

$ git status

変更内容の詳細を確認するには、以下のコマンドを実行します。

$ git diff

コミット履歴の確認方法

コミットの履歴や、コミットメッセージを確認するには、以下のコマンドを実行します。

$ git log

まとめ

ここでは、Gitの基本的な使用方法について解説しました。
共同開発だけでなく、個人でファイルの変更履歴を把握するときにも使えます。

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

Progate無料版をやってみる【SQL】

前回に引き続きProgate無料レッスンをやっていこうと思います。

今回はSQLです。

SQL

公式レッスン

データベースとは

・検索や蓄積が容易にできるよう整理された情報の集まり。
 Wikipedia

・リレーショナルデータベースが今の主流らしい。
 業務ではそれしか触ったことないはず。
 フワフワしてて詳しくはわからないです・・・。
 リレーショナルデータベース

ほぼこれなのでおそらく他のデータベースは覚えなくてよい。

サイトの顧客情報や、銀行残高、店の売り上げ、在庫、等々・・・
世の中のほとんどの情報がすべてデータベースに保存されている。
Qiitaのログイン情報や、この記事も。

環境構築

業務ではSQLServer、Oracle、postgresqlを触っていました。
MySQLやSQLite、MariaDB等は経験がないため、その中でも人気のMySQLを使用したいと思います。

インストール

上記にアクセスし、ダウンロードのリンクをクリック。
image.png
以下のどちらかをインストール。
image.png
上はネットでダウンロードしながらインストールする版(Webインストール)
下は最初に一括でダウンロードする版

ダウンロード後、インストールします。

インストールが完了すると、「MySQL Workbench」なるものが立ち上がりました。
image.png
データベースをGUIで操作するSQLクライアントだと思います。
Object BrowserA5SQLSQL Server Management Studio、OracleのSQL Developerみたいなものかな?

英語なので日本語化しようとしたのですが、どうやら日本語化に必要なファイルがとても古いバージョンのようで(更新が止まっている)、今のバージョン8に適用すると、アプリケーションがうまく動かなくなるそうです。

なので、古いファイルを見ながら、今の該当のファイルを手動で変更していくしかないそうです。変更量もかなり多いとのこと・・・。
既にやっていただいた方がいたので、そのファイルを使用させてもらおうと思います。

MySQL Workbench 8.0のWindowsへのインストールと日本語化

ここで取得した「main_menu.xm」を
C:\Program Files\MySQL\MySQL Workbench 8.0 CE\dataに上書きすれば・・・
※上書きする前に元のファイルはバックアップしておいた方が良いです。動かなった時に戻せるので・・・。

立ち上げられなくなっちゃいました
バージョンが全く一緒ではないし、インストールした際のオプションがことなると、中身も違うのでしょう・・・

なので自分のファイルと、落としてきたファイルをWinMergeで差分見ながらマージしました。

image.png
メニューが日本語になりました。

でもメニューから何かしらの設定を開くと全部英語です・・・。
ダメじゃん・・・。

レッスンに戻ります。

「purchases」というテーブルをレッスンでは使用するようです。
テーブルをworkbenchで作っていこうと思います。

MySQL Connectionを選択し
image.png

schemaタブを開きます。
image.png

sakilaとworldデータベースはデフォルトで用意されているのかな。
テーブル数が少ないworldデータベースにテーブル作っていこうと思います。

Progateを見ると
image.png
らしいので、なんとなく型を予想して、以下のDDLを実行します。

CREATE TABLE world.`purchases` (
  `id` int NOT NULL AUTO_INCREMENT,
  `name` char(35) NOT NULL DEFAULT '',
  `price` int DEFAULT '0',
  `character_name` char(35) NOT NULL DEFAULT '',
  `category` char(35) NOT NULL DEFAULT '',
  `purchased_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  PRIMARY KEY (`id`)
) 

world(スキーマ).テーブル名
idはオートインクリメント(データ挿入時に自動的に1プラスされて採番されます)
purchased_atはデフォルト値として現在日時を設定します。

上記をQuery1に張り付けて、雷マークを実行します。
image.png

出来てました。
image.png

データを突っ込みます。
idは自動採番されるので0でOKです。

insert into `world`.`purchases` values (0,'スマホケース','1500','にんじゃわんこ','雑費','2017/7/1');
insert into `world`.`purchases` values (0,'お弁当','500','ひつじ仙人','食費','2017/7/1');
insert into `world`.`purchases` values (0,'ワンピース','3000','とりずきん','雑費','2017/7/1');
insert into `world`.`purchases` values (0,'参考書','2000','にんじゃわんこ','雑費','2017/7/1');
insert into `world`.`purchases` values (0,'電車賃','450','ひつじ仙人','交通費','2017/7/1');
insert into `world`.`purchases` values (0,'プリン','150','にんじゃわんこ','食費','2017/7/2');
insert into `world`.`purchases` values (0,'サッカーボール','2500','ベイビーわんこ','雑費','2017/7/2');
insert into `world`.`purchases` values (0,'電卓','700','ひつじ仙人','雑費','2017/7/4');
insert into `world`.`purchases` values (0,'お弁当','1000','にんじゃわんこ','食費','2017/7/4');
insert into `world`.`purchases` values (0,'プリンパフェ','500','にんじゃわんこ','食費','2017/7/4');
insert into `world`.`purchases` values (0,'タクシー代','1200','とりずきん','交通費','2017/7/9');
insert into `world`.`purchases` values (0,'わたあめ','100','ベイビーわんこ','食費','2017/7/10');
insert into `world`.`purchases` values (0,'眼鏡','5000','ひつじ仙人','雑費','2017/7/10');
insert into `world`.`purchases` values (0,'焼きプリン','200','にんじゃわんこ','食費','2017/7/10');
insert into `world`.`purchases` values (0,'ハンドバッグ','8000','とりずきん','雑費','2017/7/15');
insert into `world`.`purchases` values (0,'豆乳クッキー','300','とりずきん','食費','2017/7/15');
insert into `world`.`purchases` values (0,'牛丼','600','にんじゃわんこ','食費','2017/7/15');
insert into `world`.`purchases` values (0,'焼き魚定食','550','ひつじ仙人','食費','2017/7/15');
insert into `world`.`purchases` values (0,'ノート','150','ベイビーわんこ','雑費','2017/7/21');
insert into `world`.`purchases` values (0,'えんぴつ','100','ベイビーわんこ','雑費','2017/7/24');
insert into `world`.`purchases` values (0,'チーク','800','とりずきん','雑費','2017/7/24');
insert into `world`.`purchases` values (0,'駐輪代','200','にんじゃわんこ','交通費','2017/7/28');
insert into `world`.`purchases` values (0,'バター','240','ひつじ仙人','食費','2017/7/28');
insert into `world`.`purchases` values (0,'じゃがいも','50','ひつじ仙人','食費','2017/7/28');
insert into `world`.`purchases` values (0,'牛乳プリン','100','にんじゃわんこ','食費','2017/7/28');
insert into `world`.`purchases` values (0,'バス代','230','ひつじ仙人','交通費','2017/8/2');
insert into `world`.`purchases` values (0,'ふんわりパンケーキ','750','とりずきん','食費','2017/8/2');
insert into `world`.`purchases` values (0,'焼きプリン大福','140','にんじゃわんこ','食費','2017/8/3');
insert into `world`.`purchases` values (0,'電子工作キット','5400','にんじゃわんこ','雑費','2017/8/7');
insert into `world`.`purchases` values (0,'柔軟剤','600','とりずきん','雑費','2017/8/7');

インサート後
image.png

デフォルトスキーマを設定しておくと
クエリを書くときにworldとスキーマを指定しなくても済みます。
image.png
image.png

レッスンの演習のSelect文をworkbenchで試しながら進める・・・。

複数のカラムを選択する

・全カラムの場合は

select * from テーブル名;

特定のデータを取得しよう WHERE、WHERE(2)、比較演算子

・データを特定の条件で絞る場合にはWhere
andで複数条件も可能。
= > < >= <=

LIKE演算子、LIKE演算子(2)

・あいまい検索が行える。LIKE

where カラム名 like '%探したい文字%'

後方一致
%文字

前方一致
文字%

NOT演算子

notで~じゃないを指定する。

SELECT *
FROM purchases
where not character_name = 'にんじゃわんこ';

image.png

LIKEと組み合わせて

SELECT *
FROM purchases
where not name like '%プリン%';

image.png

NULLとは

・Nullのデータを取得するときはIS NULL
 その逆はIS NOT NULL

SELECT *
FROM purchases
where price is null;

SELECT *
FROM purchases
where price is not null;

これを試すときはあらかじめ、priceカラムにNullを設定しておきます。

AND・OR演算子

・かつでAND
・またはでOR

#ANDの場合
SELECT *
FROM purchases
where category = '食費' and character_name = 'ひつじ仙人';

#ORの場合
SELECT *
FROM purchases
where category = '食費' or character_name = 'にんじゃわんこ';

ORDER BY

・並び順
ASCで昇順、DESCで降順。
 なにも指定しなかったら昇順になる。

#降順
SELECT *
FROM purchases
order by price desc;

#条件で絞って昇順
SELECT *
FROM purchases
WHERE character_name = "にんじゃわんこ"
order by price asc;

LIMIT

・必要な数だけ取得。
 あまりにも多い件数だけと処理に時間がかかるときなどに指定したり・・・。先頭の数十件しか必要ないとき等・・・。

SELECT *
FROM purchases
WHERE character_name = "にんじゃわんこ"
limit 10;

総合演習

#purchased_atカラムが「2017-08-01以前」のデータを取得してください
SELECT *
FROM purchases
where purchased_at <= '2017-08-01';

#nameカラムが「プリン」を含むデータを取得してください
SELECT *
FROM purchases
where name like '%プリン%';

#NOT演算子を用いてcharacter_nameカラムが「にんじゃわんこ」でないデータを取得してください。
SELECT *
FROM purchases
where not character_name = 'にんじゃわんこ';

#priceカラムがNULLであるデータを取得してください
SELECT *
FROM purchases
where price is null;

#categoryカラムが「食費」かつcharacter_nameカラムが「ひつじ仙人」であるデータを取得してください
SELECT *
FROM purchases
where category = '食費' and character_name = 'ひつじ仙人';

#priceカラムを基準に「降順に並び替えた」データを、最大で「5件」取得してください
SELECT *
FROM purchases
order by price desc limit 5;

クリアしました
image.png

感想

・基本的な事であった。
・削除(delete)がないのはなぜ?次のレッスンからかな。

何回も言ってますが無料分だから仕方ないすよね。

んー。課金して上級レッスンやらないと意味ない気がしてきた・・・。
時間がもったいない!?

次回はSassをやっていきます。

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

コミットログを消さずにGitのリポジトリを統合する

https://github.com/TakesxiSximada/.org-capture というリポジトリを統合する場合

git remote add https://github.com/TakesxiSximada/.org-capture cap
git subtree add --prefix=capture cap master

–prefix で指定した場所にディレクトリが作成され、その下にファイルが作成される。

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

Windows で git diff の結果を patch.exe で使う

「git 互換 patch」で検索すると、次のようなページがすぐ見つかる。

こうか!(diff じゃないけど、show も似たようなもんだ)

$ git show --no-prefix 5f682fb657439fe518475e6effc6e7e30b1dfd33 > patch.1

だが、Windows では、このパッチを適用すると

$ patch.exe < ../../patch.1
patching file readline.go
Assertion failed: hunk, file ../patch-2.5.9-src/patch.c, line 354       

とエラー終了してしまう。「patch assertion failed」でググると、すぐ対処方法を記載したページが見つかる。

どうも、改行コードが LF だと、こうなってしまうようだ。パッチコードの改行コードを変換してもいいんだが、お手軽にバイナリモードを使用した。

$ patch.exe --binary < ../../patch.1 

しかし、assertion failed は、ひどいよな。もうちょっとマシなエラーメッセージは出せなかったものか…

余談1:UAC ダイアログ版

patch.exe は WindowsXP 時代のものを使うと UACダイアログが起動してしまう(「patch」という名前を含んでいるせい)。UAC ダイアログが出ないバージョンは 次より配布されている

余談2:-p オプション

パッチを作る側と、パッチを適用する場所で、ディレクトリの深さが違うと当然だが、パッチ適用が失敗する。

patch コマンドの -p オプションを使うと、パッチの相対パスの深さを減らすことができる。-p0 だとそのまま、-p1 だとディレクトリを一つ減らすという感じだ。

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

[Git]Cheat Sheet

目次

1. ローカルレポジトリをリモートレポジトリの時点まで全て戻す

$ git reset --hard origin/master

2. .gitignoreを書き忘れた際にgit管理対象から外す

--cachedオプションを付けることにより、ファイルを残したまま管理対象から外すことが可能

  • ファイルの場合
git rm --cached [削除したいファイル]
  • ディレクトリの場合
git rm -r --cached [削除したいディレクトリ]
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

Google Colab上でGitHubからCloneして変更をPushするまでのまとめ

何の記事?

Google Colaboratory上でGitHubのレポジトリをcloneし、変更をpushするまでのメモ。特に変わったところはないです。
ちなみにColabではノードブックに関してはコマンドを打たなくてもpushまでできる便利な機能があります。
参考記事:Colabratoryって画面上だけでGitHubにPushして差分まで見れちゃうって知ってた?

そもそもColabからGithubにpushする必要ってあるの?

環境難民にとっては結構起こりえます。
あと、いちいちローカル環境でcloneするまでも無いが、既存コードをforkしてちょっとreviseして試してバージョン管理したいときなど。

手順

流れとしてはDriveマウント→clone→config→add→commit→origin設定→pushです。
マウントは最初の1回だけでOK。
configとorigin設定はセッション中に1回だけでOK。

1. Google Driveをマウントする

ご存知の通りColabはインスタンスの12時間ルール&90分ルールがあるので、作業ディレクトリの内容が一定時間で消えてしまいます。
当然.gitなども保存されず、これではコード管理もやりようがないので、まずはGoogle Driveをマウントします。
UI上で左側のファイルボタンを押し、「ドライブをマウント」でマウントできます。
image.png
これで自分のGoogleDrive上のファイルをノートブック上で扱えるようになり、保存もできるようになります。

2. Clone

Google Drive上にColabDataというような作業ディレクトリを作ります(作らなくても良いです)。
カレントディレクトリを移動しcloneします。

%cd /content/drive/My Drive/Colabdata/
!git clone https://github.com/reponame.git

3. Config(ユーザ名とメールアドレスを設定)

これを設定しないとcommitで怒られます。

!git config --global user.email "yourmail@gmail.com"
!git config --global user.name "username"

4. Add, Commit

特に変わったところはないです。

!git add file.py
!git commit -m "Added new file."

5. リポジトリ情報を明示的に記述してOriginを設定

ここが若干のハマりポイントです。
git cloneした時点でリモートサーバにoriginがデフォルトで設定されるのですが、ここにpushしても下記のように怒られます。

!git push origin master
# fatal: could not read Username for 'https://github.com': No such device or address

Colabでは、下記のように明示的にoriginに認証情報(ユーザ名、パスワード)を渡して設定する必要があります。

!git remote set-url origin https://username:password@github.com/reponame.git
!git push origin master

無事pushが通れば成功です。快適なColabライフをお送りください。

まとめ

Colab上で、git cloneからpushまでの流れをまとめました。
下記に、一連のコマンドをまとめます。

%cd /content/drive/My Drive/Colabdata/
!git clone https://github.com/reponame.git
!git config --global user.email "yourmail@gmail.com"
!git config --global user.name "username"
!git add file.py
!git commit -m "Added new file."
!git remote set-url origin https://username:password@github.com/reponame.git
!git push origin master

以上です。

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

Progate無料版をやってみる【Git】

前回に引き続きProgate無料レッスンをやっていこうと思います。

今回はGitです。

業務で多少使用してます。
ただ、TortoiseGitを主に使っているので、コマンドライン上からはほぼ叩いたことないです。

Git

公式レッスン

Gitの準備

Gitダウンロード

Gitの理解や、コマンドの意味は以下を参考にさせていただきました。
いまさらだけどGitを基本から分かりやすくまとめてみた
[ver 1.2] Git でよく使われるコマンドにイラストによる説明を加えて1枚のチートシートにまとめてみた

・Gitは昔ローカルPCにインストール済みです。
・作業用のディレクトリを作成
 私はc:/job/GitTestを作りました。
・作業ディレクトリに移動

cd c:/job/GitTest

そこで

git init

と打ちます。
リポジトリが作成されます。
image.png

共有するファイルを選択しよう

・適当なファイルを作り、git add ファイル名で追加

nul > test.txtでファイルを作り

git add test.txt
で追加。
image.png

git commit

・コミット

git commit -m "メッセージ"

これにより追加(add)がコミットされます。
image.png

リモートの準備・リモートを登録しよう

・GitHubにリポジトリ用意したので、それを使います。
git remote add origin https://github.com/GodPhwng/TestProject2.git
image.png

リモートにファイルをアップロードする

git push origin master

image.png

実際にGitHubを見てみるとpushされているのが分かる
image.png

リモートのファイルをダウンロードする

・取得する場合はgit pull origin masterとやる。

共同開発の流れをおさらいしよう

・ファイル作って → git add → git commit → git push origin master → git pull origin masterでpushされたものを取得

Gitを使いこなそう

・Progate側をお願いします。

変更内容を把握しよう

git diffで変更箇所が分かる。
個人的にはTortoiseGitで差分からWinMergeを見る方が、差分がわかりやすいんですけどね。

addしたファイルを確認しよう

git statusでどのファイルがaddされているのかわかる。

わかりやすいコミットメッセージを書こう

・まぁ後でログ見たときに、変更がわかりやすいようにコミット時のメッセージはわかりやすくしておいて方が良い。

git log

git logでコミットログを確認。
 → まずgit pull origin ブランチ名すること。

・正直コマンドライン上でログ見るよりも、TortoiseGitで確認した方が分かりやすいと思う。

クリアしました
image.png

感想

うーん。これだけの学びじゃ不足しているきがします。

ネットでgit コマンドgit 導入等のワードで検索して、構築、実行した方がよっぽどいいですね。

次回はSQLをやっていきたいと思います。
→ 次回

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

Gitコマンドのエイリアスを設定して楽しよう

対象読者

  • 頻度を問わずGitコマンドを普段使っている方
  • Gitコマンドを使う際エイリアスを一切設定していない方
  • 「松田〜エイリアスって何だよ!?」という方

動作環境

  • OS: macOS Mojave バージョン 10.14.6
  • Git: version 2.23.0

何ができるようになるか?

git checkoutというGitコマンドがあるよね?
それと全く同じコマンドをgit coとかで入力できるようになるよ。

何故それをするか?

便利でしょ?
特にchekcoutとか長すぎるんだよな〜。ほら、もうタイポしてる。。。

どうやるか?

構文

一般的な構文は以下。

$ git config --global alias.{エイリアス名} {Gitコマンド}

--globalは必須じゃないので--systemなり--localなりお好きな設定でどうぞ

具体例は以下。

$ git config --global alias.co checkout

これで、たとえば

$ git checkout {ブランチ名}

の代わりに

$ git co {ブランチ名}

と入力することができるよ♪

設定確認

問題なくエイリアスが設定できたかは以下で確認可能。

$ git config --global --list

--globalは...(略)

標準出力に以下のような行があったら問題なく設定できているよ。

alias.co=checkout

エイリアス削除

設定したけど削除したい場合は以下。

$ git config --global --unset alias.{エイリアス名}

たとえば以下のような感じ。

$ git config --global --unset alias.co

参考

あとがたり

今はGUIの便利なツールとかエディターの拡張機能とかの登場で、Gitコマンドを叩く機会がもしかしたら少ないかもしれないんすわな。けど私は極力マウス使いたくないので、今でもGitを使うときはほとんどコマンド入力しているのね(全部じゃないけど)。
私と同じような方がいて、かつエイリアスの設定していない方がいたらぜひやってみてね♪

最後までご覧いただきありがとうございました!

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む