20200426のGitに関する記事は8件です。

【Git】Gitの基本操作と基本コマンド

Gitの仕組みとコマンドについて改めて基礎を復習したのでまとめておきます。

Gitの特徴

Gitの特徴は以下になります。

  • データをスナップショットとして管理する
  • コミットでバージョンを記録する

この二つができることで何が便利かと言いますと、

  • 差分で保存しないので開発スピードが上がる
  • スナップショットで記録しているのでバージョンをそのまま以前の状態に戻すことができる

というところです。

私が以前参加したプロジェクトはものすごくレガシーな環境だったため、バージョン管理ツールも非常に古く差分をいちいち確認しなければいけないタイプだったのですが、それだと非常に進捗が遅くなり効率が悪いです。
それに対してGitは、上に挙げたような理由からそういった従来の管理ツールの欠点を解消した形で誕生し、現在はほとんどの開発に利用されているわけですね。

Gitの操作の流れ

自分の変更の場合

  1. ローカルでファイルの変更
  2. ローカルリポジトリにスナップショットを記録
  3. GitHubにアップロードする
git init

ローカルリポジトリ

ローカルリポジトリはファイル変更などを記録しておく場所のことです。

他人の変更を取り込む場合

  1. GitHubから記録を取得する
  2. 取得したGitHubの記録をワークツリーに反映する
git clone リポジトリ名

ローカルを詳しく見る

ローカル環境については以下三つを押さえておく。

  1. ワークツリー
  2. ステージ
  3. リポジトリ

ワークツリー

ファイルを変更する場所。
ここで開発作業を行う。

ステージ

コミット(スナップショットを記録)する変更を準備する場所。
一旦ここに変更を追加する。

git add ファイル名

記録しておきたい変更分のみ追加しておく。

リポジトリ

スナップショットを記録する。
ステージの追加が完了したら最後にコミットをして変更を記録する。

git commit

変更状況を確認

git status

変更差分を確認

git add する前の変更差分を確認。

git diff

git add した後の変更差分を確認。

git diff --staged

変更履歴を確認

コミットの履歴を確認できる。

git log

削除の記録をする

ファイルごと削除する場合。

gir rm ファイル名

ディレクトリごと削除する場合。

git rm -r ディレクトリ名

ファイルを残したいとき。

git rm --cached ファイル名

移動の記録する

git mv 旧ファイル 新ファイル

GitHubにアップする

GitHubにリモートリポジトリを登録。

git remote add origin

ローカルリポジトリにコミットしたものをGitHubに送信する。

git push -u origin master

初回に-uオプションをつけておくと次回以降記載がpushのみで良いので楽になる。

コマンドにエイリアスをつける

コマンドにエイリアスをつけとくことでコマンド入力が楽になる。

例:commitコマンドにcoというエイリアスを付与する。

git config alias.co commit

パソコン全体の設定を変えたい場合。

git config --global alias.co commit

バージョン管理したくないファイル

.gitignoreファイルに管理したくないファイルを指定する。

#コメント

#ファイル指定
index.html

#ディレクトリ以下を指定
dir/

変更の取り消し

色々取り消し方法。

ファイルの変更を取り消す

git checkout --ファイル名(またはディレクトリ名)

全変更を取り消す場合。

git checkout -- .

ステージした変更を取り消す

git reset HEAD ファイル名(またはディレクトリ名)

全変更を取り消す場合。

git reset HEAD .

直前のコマンドをやり直す

git commit --amend

※チーム開発で混乱してしまうため、リモートリポジトリにpushをしたコミットを修正してはいけない。

まとめ

ひとまずここでいったん終了いたします。
まだ使うコマンドはたくさんあるので、後ほどまた別記事で書いていく予定です。
そちらもぜひ読んでいただければと思います。

ではでは。

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

VSCODEでGitが動かなくなった。

環境

  • Git 2.7
  • WSL(ubuntu)

想定状況

2020-04-26 (3)_LI.jpg

囲った所をクリックすると以下のエラーが発生する。又は何も反応しない。

command 'git.viewHistory' not found

解決策

.vscode/extensions/donjayamanne.githistory-0.4.0/に移動し以下を入力。

npm install

再起動したら直っていると思います。

参考文献

command 'git.viewHistory' not found #238

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

Git Hook pre-commit プログラミングの仕組みと解説

Git Hook pre-commit プログラミングの仕組みと解説

About hook

ある機能を実行する前後に、ユーザー側にプログラムを実行する機会を与える機能です。

git hook とは、commit や push などの命令をする際、命令が実行される前や後に、シェル・スクリプトを実行できる機能です。

リポジトリをクローンしたディレクトリーに、.git という隠しディレクトリがあり、その中に hooks というディレクトリーがあります。この中にシェル・スクリプトを保存します。

保存したファイル名でhookされますので、任意のファイル名は使えません。

About git hook

gitには、特定のコマンドが入力されると、シェル・スクリプトを実行する機能(git hook)があります。
よく使われるのは以下だと思われます。

  • master に push したら、自動でサーバーにデプロイする
  • master を更新したら、自動でユニットテストが実行される
  • push する前に、特定の文字列やフォーマットをチェックする

できることの一覧は、公式サイトをご覧ください。
サンプルファイルは、 .git/hooks ディレクトリに入っています。
diffのオプションについて、とても参考になりました。

Point

git hook用の命令や変数などはありません。 (多分?)
コミットやプッシュのタイミングで、シェル・スクリプトが実行されるだけです。
スクリプトでは、既存のgitのコマンドを使って、更新されたファイルを取得し、差分をチェックしたりします。

Important

pre-commit で制限をかけた際に、制限を無視してコミットしたい場合があります。
そのような場合は pre-commit をスキップする(実行しない)オプションがあります。

git commit -n もしくは git commit --no-verify とします。

Script

今回は、 var_dump と print_r が追加されていたら push できないというスクリプトを書きました。

スクリプトが、0を返すと命令は中断され、pre-commit の場合はコミットが実行されません。

vi .git/hooks/pre-commit

pre-commit
#!/bin/bash

# Case sensitive
shopt -s nocasematch

# Get committed files
files=`git diff --cached --name-only`;

# Loop at each file name
for file in $files
do
  # Get diff lines
  lines=`git diff --cached "$file"`
  # Loop at each lines
  for line in $lines
  do
    # Search target word - bash's regexp is broken????? 
    if [[ ${line} =~ ^\+var_dump|print_r ]]
    then
      # Error message
      echo
      echo ".git/hooks/pre-commit : $file --> ${BASH_REMATCH[0]}"
      echo
      echo "$lines";
      exit 1
    fi
  done
done

# No problem
exit 0

余談

シェル・プログラミングは苦手意識があり、慣れていないので、PHPで書きたいと思ったのですが、シェバンを #!/usr/bin/env php として実行したところ、上手くいかずに断念しました。

また、シェルの正規表現が謎で、 ^\+var_dump|print_r どうしてこれでマッチするのかよく分かりません。
これは、+から始まる行で、特定の文字をマッチさせたいのですが、 ^\+.*var_dump|print_r としなければマッチしないと思うのですが、マッチしていてよく分かりません。

こちらの記事が参考になりました。
https://qiita.com/myblackcat7112/items/5e8205f1b5161a1f8590

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

研修でのgitコマンドまとめ

研修でCRUDアプリを作成してレビューして完成させるまでのgitのコマンドを流れに沿ってまとめました。(備忘録用)

まずCRUDアプリを作成するまでの流れを簡単に
1. githubでレポジトリ作成
2. ローカルでgit cloneしてディレクトリ作成
3. rails new で新規作成

基本的な流れ

1.ブランチを切って作業する
2.作業完了後ファイルの変更箇所をリモートブランチにプッシュする
3.PRを作成してレビューをしてもら
4.修正依頼 or LGTM
5.修正依頼の場合、指摘箇所を修正してプッシュ →2へ
6.LGTMの場合githubでマージしてその内容をmasterへpullする

1.ブランチを切って作業する
git branch -b 新ブランチ名 master 

2.作業完了後ファイルの変更箇所をリモートブランチにプッシュする
git add .

git commit -m 'メッセージ'

git push origin ブランチ名

3.PRを作成してレビューをしてもら

4.修正依頼 or LGTM

5.修正依頼の場合、指摘箇所を修正してプッシュ →2の内容とほぼ同じ

6.LGTMの場合githubでマージしてその内容をmasterへpullする

# masterブランチへ移動
git checkout master

git pull origin master

その後にまたブランチを切って次の作業へ(1~6の繰り返し)

ここまでが基本的な流れ

ケース1:レビューしてもらっている間に次の作業に取り掛かる

git branch -b 新ブランチ名 orgin/現作業ブランチ名

新ブランチで作業中に前の作業ブランチでLGTMをもらいmasterにmergeされた内容を取り込む

#変更を取り込む
git rebase master

コンフリクトが起きなければそのままでOK!
コンフリクトが起きたら解決(私の場合はVScodeで解決)してcontinue

# コンフリクト解決して
git add .
git rebase --continue

# 下記コマンドでrebaseを取り消すこともできる
git rebase --abort

ケース2: pushしてPR作成後に微修正箇所が見つかった

#softオプションをつけてcommitの取り消し
git reset --soft

修正完了後
git add .

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

# すでにリモートにはコミットが存在しローカル環境とのコミットの整合性が取れないので
# force push で強制的にpushする -fは要注意
git push -f origin ブランチ名

ケース3: リモートブランチのコミットを取り込む

#1ブランチから新たに#2ブランチを切って作業中に#1のレビューで修正がありそのコミットを#2のブランチに取り込みたい

git pull --rebase origin #1

ケース4: コミットせずにブランチを切り替える

#2で作業中に#1のブランチの修正依頼があり#2の変更ファイルをコミットせずにブランチを切り替える

変更をコミットせずに退避
git stash save

退避する際に新規ファイルが存在する場合
git stash -u

#1にブランチ切り替え
git checkout #1

#1の修正 add commit push完了 #2ブランチに戻る
git checkout #2

退避した内容を戻す
git stash pop スタッシュ名

他にもgit statusやgit logなどもありましたが今回はCRUDアプリ作成に直接関係しなかったので省きました。
以上が私がCRUDアプリ作成時に使ったgitコマンドです。

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

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

Git memo

ローカルブランチ名を指定して、リモートブランチをチェックアウト
git checkout -b feature-XXXX origin/feature-XXXX

リモートにあるブランチをローカルでチェックアウト
git checkout --track origin/feature-XXXX

ローカルを、強制的にリモートに合わせる
git fetch origin develo
git reset --hard origin/develop

addしてないファイルを破棄
git checkout <filename>
または特定のファイルではなくすべて戻したいときは
git checkout .
新規作成のファイル(untracking)も削除
git clean -f

ファイルの一部をadd
git add -p ファイル名
→その後 y or n
→提示されたHunkをさらに分割したいときは s

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

エラー解決 GitHub error “fatal: bad config file line 74 in .git/config”

macOS Mojave
バージョン10.14.6(18G2022)

Cloud9でgitのaliathの設定をし終えた時

gakkie:~/environment/rails_tutorial/sample_app $ git config -e                                                                                                                                                                                                                   
fatal: bad config line 76 in file .git/config

.git/configの76行目にエラーがある。

gakkie:~/environment/rails_tutorial/sample_app $ vim .git/config
#76行目を修正

gakkie:~/environment/rails_tutorial/sample_app (hogehoge) $ vim .git/config
#ブランチ名が表示される、エラー表示もなくなった。
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

git add .で警告。warning: adding embedded git repository:

警告内容

$ git add .
warning: adding embedded git repository: リポジトリ名
hint: You've added another git repository inside your current repository.
hint: Clones of the outer repository will not contain the contents of
hint: the embedded repository and will not know how to obtain it.
hint: If you meant to add a submodule, use:
hint: 
hint:     git submodule add <url> リポジトリ名
hint: 
hint: If you added this path by mistake, you can remove it from the
hint: index with:
hint: 
hint:     git rm --cached リポジトリ名
hint: 
hint: See "git help submodule" for more information.

ー 原因は? ー

コミットしようとしたプロジェクトのフォルダの中に、別に取り込んできたリポジトリがあるからステージングできない

思い当たることと言えば、確かにcloneしたリポジトリへ別のリポジトリのものを取り込んできていました。
原因はそこでしたね。

そして、解決策は?

試したこと

hint:     git rm --cached リポジトリ名

で記載されている通りに$ git rm --cached リポジトリ名
してみましたが、

error: the following file has staged content different from both the
file and the HEAD:

とのことで、『違うファイルがステージングされる』から無理ですよ。ってことですかね。

解決法

そこで一度/.gitをを削除します。

$ rm -rf リポジトリ名/.git

これで、$ git add .は問題なくパスできます。

しかし、続いてはコミット&プッシュができない。

そこで今度は以下のコマンドを打ちました。

$ mv リポジトリ名 subfolder_tmp
$ git submodule deinit リポジトリ名
$ git rm --cached リポジトリ名
$ mv subfolder_tmp リポジトリ名
$ git add リポジトリ名

解決しました。

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

【LINUXコマンド】オプションの短縮表記一覧

オプションの短縮表記一覧

______________________
コマンド
A____
-a
-A
B____
-b
-B
C____
-c
-C
D____
-d
-D
E____
-e
-E
F____
-f
-F
G____
-g
-G
H____
-h
-H
I____
-i
-I
J____
-j
-J
K____
-k
-K
L____
-l
-L
M____
-m
-M
N____
-n
-N
O____
-o
-O
P____
-p
-P
Q____
-q
-Q
R____
-r
-R
S____
-s
-S
T____
-t
-T
U____
-u
-U
V____
-v
-V
W____
-w
-W
X____
-x
-X
Y____
-y
-Y
Z____
-z
-Z
0____
-0
1____
-1
2____
-2
3____
-3
4____
-4
5____
-5
6____
-6
7____
-7
8____
-8
9____
-9
#____
-#
_____
-?
ls1 a2
A3
b4
B5
c6
C7
d8
D9
- f10
F11
G12 h13
H14
i15
I16
- k17 l18
L19
m20 n21
N22
o23 p24 q25
Q26
R27 s28
S29
t30
T31
u32
U33
v34 w35 x36
X37
- Z38 - 139 - - - - - - - - - -
touch40 a41 - c42 d43 - f44 - h45 - - - - m46 - - - - r47 - t48 - - - - - - - - - - - - - - - - - -
cp49 a50 b51 c52 d53 - f54 - H55 i56 - - l57 - n58 - p59
P60
q r27
R27
s61 t62
T63
u64 v65 - x66 - Z67 - - - - - - - - - - - -
mv68 - b69 - - - f54 - - i56 - - - - n58 - - - - S70 t62
T63
u64 v65 - - - Z38 - - - - - - - - - - - -
mkdir71 - - - - - - - - - - - - m72 - - p73 - - - - - v65 - - - Z74 - - - - - - - - - - - -
rmdir75 - - - - - - - - - - - - - - - p73 - - - - - v65 - - - - - - - - - - - - - - - -
chown76 - - c77 - - f78 - h45
H79
- - - L80 - - - P81 - R27 - - - v65 - - - - - - - - - - - - - - - -
chmod82 - - c77 - - f78 - - - - - - - - - - - R27 - - - v65 - - - - - - - - - - - - - - - -
cat83 A84 b85 - - e86
E87
- - - - - - - - n88 - - - - s89 t90
T91
u92 v93 - - - - - - - - - - - - - - - -
head94 - - c95 - - - - - - - - - - n96 - - q97 - - - - v65 - - - - - - - - - - - - - - - -
tail98 - - c95 - - f99
F100
- - - - - - - n96 - - q97 - s101 - - v65 - - - - - - - - - - - - - - - -
wc102 - - c95 - - - - - - - - l103
L104
m105 - - - - - - - - - w106 - - - - - - - - - - - - - - -
sort107 - b108 c109
C110
d111 - f112 g113 h114 i115 - k116 - m117
M118
n119 o120 - - r121
R122
s123
S124
t125
T126
u127 V128 - - - z129 - - - - - - - - - - - -
uniq130 - - c131 d132
D133
- f134 - - i135 - - - - - - - - - s136 - u127 - w137 - - z129 - - - - - - - - - - - -
diff138 a139 b140
B141
c142
C142
d143
D144
e145
E146
F147 - - i135
I148
- - l149 - n150
N151
- p152 q153 r27 s154
S155
t156
T157
u158
U158
v159 w160
W35
x161
X162
y163 Z164 - - - - - - - - - - - -
grep165 a139
A166
b167
B168
c131
C142
d169
D170
e171
E172
f173
F174
G175 h176
H177
i135
I178
- - l179
L180
m181 n182 o183 P184 q97 r27
R185
s186 T157 u187
U188
v189
V159
w190 x191 - z192
Z193
- - - - - - - - - - - -
curl194 a195
A196
b197
B198
c199
C200
d201
D202
e203
E204
f205
F206
g207
G208
h209
H210
i211
I212
j213
J214
k215
K216
l217
L218
m219
M220
n221
N222
o120
O223
p224
P225
q226
Q227
r228
R229
s230
S231
t232
T233
u234
U235
v65
V159
w236 x237
X238
y239
Y240
z241 0242 1243 2244 3245 4246 - 6247 - - - #248 -
tar249 a250
A251
b252
B253
c254
C255
d256 - f173
F257
g258
G259
h260
H261
i262
I263
j264
J265
k266
K267
l268
L269
m270
M271
n272
N273
o274
O275
p276
P277
- r278
R279
s280
S281
t282
T283
u64
U284
v65
V285
w286
W287
x288
X162
- z289
Z290
- - - - - - - - - - - ?291
gzip292 - - c293 d294 - f54 - h209 - - - l295
L296
- n297
N298
- - q299 r27 S70 t300 - v65
V159
- - - - - 1301 - - - - - - - 9302 - -
kill303 a2 - - - - - - h209 - - - l295
L304
- - - p305 q306 - s307 - - V159 - - - - - - - - - - - - - - - -
df308 a2 B309 - - - - - h13
H310
i311 - k312 l313 - - - P314 - - - t315
T316
- v317 - x318 - - - - - - - - - - - - - -
free319 - b320 c131 - - - g321 h322 - - k323 l324 m325 - - - - - s326 t327 - V159 w328 - - - - - - - - - - - - - - -
vmstat329 a330 - - d331
D332
- f333 - h209 - - - - m334 n335 - p336 - - s337
S338
t339 - V159 w328 - - - - - - - - - - - - - - -
git clone340 - b341 c342 - - - - - - j343 - l313 - n344 o345 - q299 - s346 - u347 v65 - - - - - - - - 4246 - 6247 - - - - -
git init348 - - - - - - - - - - - - - - - - q299 - - - - - - - - - - - - - - - - - - - - -
git add349 A2 - - - e350 f54 - - i56 - - - - n351
N352
- p353 - - - - u64 v65 - - - - - - - - - - - - - - - -
git mv354 - - - - - f54 - - - - k355 - - n351 - - - - - - - v65 - - - - - - - - - - - - - - - -
git restore356 - - - - - - - - - - - - m117 - - p353 q299 - s357
S358
- - - W359 - - - - - 2360 3361 - - - - - - - -
git rm362 - - - - - f54 - - - - - - - n351 - - q299 r363 - - - - - - - - - - - - - - - - - - - -
git diff364 a139 b140
B365
C366 D367 - - G368 - - - - l369 M370 - O371 p353 - R372 s373
S374
- u375
U158
- w160
W376
X377 - z378 - - - - - - - - - - - -
git grep379 a139
A166
B168 c131
C142
- e380
E172
f381
F174
G175 h382
H383
i135
I384
- - l180
L180
- n182 o183
O385
p386
P184
q299 r27 - - - v189 w190
W376
- - z193 - - - - - - - - - - - -
git log387 - - - - - - - - - - - L388 - - - - q299 - - - - - - - - - - - - - - - - - - - - -
git show389 - - - - - - - - - - - L390 - - - - q299 - - - - - - - - - - - - - - - - - - - - -
git status391 - b341 - - - - - - - - - - M370 - - - - - s392 - u393 v65 - - - z193 - - - - - - - - - - - -
git branch394 a2 - c395C396 d397
D398
- f54 - - i135 - - l295 m399
M400
- - - q299 r401 - t402 u403 v65 - - - - - - - - - - - - - - - -
git commit404 a2 - c405
C406
- e350 F173 - - i211 - - - m407 n408 o409 p353 q299 - s410
S411
t412 u393 v65 - - - z193 - - - - - - - - - - - -
git merge413 - - - - e350 F173 - - - - - - m407 n414 - - q299 - s415
S411
- - v65 - X416 - - - - - - - - - - - - - -
git rebase417 - - C418 - - f419 - - i56 - k420 - m117 n421 - - q299 r422 s415
S411
- - v65 - x423
X416
- - - - - - - - - - - - - -
git reset424 - - - - - - - - - - - - - n352 - p353 q299 - - - - - - - - - - - - - - - - - - - - -
git switch425 - - c254
C426
d427 - f54 - - - - - - m117 - - - q299 - - t402 - - - - - - - - - - - - - - - - - -
git tag428 a429 - - d397 e350 f54
F173
- - i135 - - l295 m407 n430 - - - - s431 - u432 v433 - - - - - - - - - - - - - - - -
git fetch434 a195 - - - - f54 - - - j343 k435 - m436 n437 o438 p439
P440
q299 - - t441 u442 v65 - - - - - - - - 4246 - 6247 - - - - -
git pull443 a195 - - - - f54 - - - j343 k435 - - n444 - p439 q299 r445 s415
S411
t441 - v65 - X416 - - - - - - 4246 - 6247 - - - - -
git push446 - - - - d397 f54 - - - - - - - n351 o447 - q299 - - - u448 v65 - - - - - - - - 4246 - 6247 - - - - -
docker build449 - - c450 - - f173 - - - - - - m451 - - - q299 - - t452 - - - - - - - - - - - - - - - - - -
docker commit453 a454 - c455 - - - - - - - - - m407 - - p456 - - - - - - - - - - - - - - - - - - - - - -
docker cp457 a50 - - - - - - - - - - L458 - - - - - - - - - - - - - - - - - - - - - - - - - -
docker create459 a460 - c450 - e461 - - h462 i56 - - l463 m451 - - p464
P465
- - - t466 u234 v467 w468 - - - - - - - - - - - - - - -
docker events469 - - - - - f470 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
docker exec471 - - - d427 e461 - - - i56 - - - - - - - - - - t466 u234 - w468 - - - - - - - - - - - - - - -
docker export472 - - - - - - - - - - - - - - o120 - - - - - - - - - - - - - - - - - - - - - - -
docker history473 - - - - - - - h322 - - - - - - - - q299 - - - - - - - - - - - - - - - - - - - - -
docker images474 a2 - - - - f470 - - - - - - - - - - q299 - - - - - - - - - - - - - - - - - - - - -
docker import475 - - c455 - - - - - - - - - m407 - - - - - - - - - - - - - - - - - - - - - - - - -
docker info476 a2 - - - - f477 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
docker inspect478 - - - - - f477 - - - - - - - - - - - - s28 - - - - - - - - - - - - - - - - - - -
docker kill479 - - - - - - - - - - - - - - - - - - s307 - - - - - - - - - - - - - - - - - - -
docker load480 - - - - - - - - i481 - - - - - - - q299 - - - - - - - - - - - - - - - - - - - - -
docker login482 - - - - - - - - - - - - - - - p483 - - - - u234 - - - - - - - - - - - - - - - - -
docker logs484 - - - - - f99 - - - - - - - - - - - - - t485 - - - - - - - - - - - - - - - - - -
docker ps486 a2 - - - - f470 - - - - - l487 - n488 - - q299 - s28 - - - - - - - - - - - - - - - - - - -
docker pull489 a2 - - - - - - - - - - - - - - - q299 - - - - - - - - - - - - - - - - - - - - -
docker restart490 - - - - - f99 - - - - - - - - - - - - - t491 - - - - - - - - - - - - - - - - - -
docker rm492 - - - - - f54 - - - - - l57 - - - - - - - - - v493 - - - - - - - - - - - - - - - -
docker rmi494 - - - - - f54 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
docker run495 a460 - c450 d427 e461 - - h462 i56 - - l463 m451 - - p464
P465
- - - t466 u234 v467 w468 - - - - - - - - - - - - - - -
docker save496 - - - - - - - - - - - - - - o120 - - - - - - - - - - - - - - - - - - - - - - -
docker search497 - - - - - f470 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
docker start498 a460 - - - - - - - i56 - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
docker stats499 a2 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
docker stop500 - - - - - - - - - - - - - - - - - - - t491 - - - - - - - - - - - - - - - - - -
docker update501 - - c450 - - - - - - - - - m451 - - - - - - - - - - - - - - - - - - - - - - - - -
docker version502 - - - - - f477 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

青字: エイリアスオプションなし
赤字: エイリアスオプションがあるが、頭文字が異なる

感想

ls や tar や curl など、短縮表記を丸暗記しまっているものを、横並びに確認することで、理解が深まるかと思い作成した。(ただし、めちゃくちゃ時間がかかった。)
短縮表記は、よく使われるオプションでもあるので、コマンドの理解も少し深まった。
類似が多いわけではないので、あまり役に立たないかもしれないが、自分でオプション付きのコマンドを作るときは参考になるかもしれない。
ただし、自分でコマンドを作るとき、短縮表記は必要最低限から始めるのがいいだろう。

編集リクエストも歓迎しています。
※ ただし、注釈が多すぎるためか、投稿/更新に失敗する頻度がとても高いので注意

その他(編集用テキスト)

|command[^command]|a|b|c|d|e|f|g|h|i|j|k|l|m|n|o|p|q|r|s|t|u|v|w|x|y|z|0|1|2|3|4|5|6|7|8|9|#|?|

  1. ls (GNU coreutils) 8.22 ls --help 参照 ↩

  2. --all ↩

  3. --almost-all ↩

  4. --escape ↩

  5. --ignore-backups ↩

  6. with -lt: sort by, and show, ctime (time of last modification of file status information); with -l: show ctime and sort by name; otherwise: sort by ctime, newest first ↩

  7. list entries by columns ↩

  8. --directory ↩

  9. --dired ↩

  10. do not sort, enable -aU, disable -ls --color ↩

  11. --classify ↩

  12. --no-group ↩

  13. --human-readable ↩

  14. --dereference-command-line ↩

  15. --inode ↩

  16. --ignore ↩

  17. --kibibytes ↩

  18. 詳細リスト形式を表示する ↩

  19. --dereference ↩

  20. 要素のリストをカンマで区切り、一行に詰め込む ↩

  21. --numeric-uid-gid ↩

  22. --literal ↩

  23. -l と同様だがグループ情報を表示しない ↩

  24. --indicator-style ↩

  25. --hide-control-chars ↩

  26. --quote-name ↩

  27. --recursive ↩

  28. --size ↩

  29. sort by file size ↩

  30. ファイル更新時間で新しい順にソートする ↩

  31. --tabsize ↩

  32. with -lt: sort by, and show, access time; with -l: show access time and sort by name; otherwise: sort by access time ↩

  33. do not sort; list entries in directory order ↩

  34. natural sort of (version) numbers within text ↩

  35. --width ↩

  36. list entries by lines instead of by columns ↩

  37. sort alphabetically by entry extension ↩

  38. --context ↩

  39. list one file per line ↩

  40. touch (GNU coreutils) 8.22 touch --help 参照 ↩

  41. アクセス日時のみ変更する ↩

  42. --no-create ↩

  43. --date ↩

  44. (無視される) ↩

  45. --no-dereference ↩

  46. 更新日時のみ変更する ↩

  47. --reference ↩

  48. use [[CC]YY]MMDDhhmm[.ss] instead of current time ↩

  49. cp (GNU coreutils) 8.22 cp --help 参照 ↩

  50. --archive ↩

  51. --backup と同様だが引数を受け付けない ↩

  52. deprecated, same as --preserve=context ↩

  53. --no-dereference --preserve=links と同様 ↩

  54. --force ↩

  55. follow command-line symbolic links in SOURCE ↩

  56. --interactive ↩

  57. --link ↩

  58. --no-clobber ↩

  59. --preserve=mode,ownership,timestamps と同様 ↩

  60. --no-dereference ↩

  61. --symbolic-link ↩

  62. --target-directory ↩

  63. --no-target-directory ↩

  64. --update ↩

  65. --verbose ↩

  66. --one-file-system ↩

  67. set SELinux security context of destination file to default type ↩

  68. mv (GNU coreutils) 8.22 mv --help 参照 ↩

  69. --backup と同様だが引数を受け付けない ↩

  70. --suffix ↩

  71. mkdir (GNU coreutils) 8.22 mkdir --help 参照 ↩

  72. --mode ↩

  73. --parents ↩

  74. set SELinux security context of each created directory to the default type ↩

  75. rmdir (GNU coreutils) 8.22 rmdir --help 参照 ↩

  76. chown (GNU coreutils) 8.22 chown --help 参照 ↩

  77. --changes ↩

  78. --silent, --quiet ↩

  79. if a command line argument is a symbolic link to a directory, traverse it ↩

  80. traverse every symbolic link to a directory encountered ↩

  81. do not traverse any symbolic links (default) ↩

  82. chmod (GNU coreutils) 8.22 chmod --help 参照 ↩

  83. cat (GNU coreutils) 8.22 cat --help 参照 ↩

  84. --show-all ↩

  85. --number-nonblank ↩

  86. -vEと同じ ↩

  87. --show-ends ↩

  88. --number ↩

  89. --squeeze-blank ↩

  90. -vTと同じ ↩

  91. --show-tabs ↩

  92. (無視) ↩

  93. --show-nonprinting ↩

  94. head (GNU coreutils) 8.22 head --help 参照 ↩

  95. --bytes ↩

  96. --lines ↩

  97. --quiet, --silent ↩

  98. tail (GNU coreutils) 8.22 tail --help 参照 ↩

  99. --follow ↩

  100. same as --follow=name --retry ↩

  101. --sleep-interval ↩

  102. wc (GNU coreutils) 8.22 wc --help 参照 ↩

  103. --lines ↩

  104. --max-line-length ↩

  105. --chars ↩

  106. --words ↩

  107. sort (GNU coreutils) 8.22 sort --help 参照 ↩

  108. --ignore-leading-blanks ↩

  109. --check ↩

  110. -c と同様だが、正しくソートされていない最初の行を出力しない ↩

  111. --dictionary-order ↩

  112. --ignore-case ↩

  113. --general-numeric-sort ↩

  114. --human-numeric-sort ↩

  115. --ignore-nonprinting ↩

  116. --key ↩

  117. --merge ↩

  118. --month-sort ↩

  119. --numeric-sort ↩

  120. --output ↩

  121. --reverse ↩

  122. --random-sort ↩

  123. --stable ↩

  124. --buffer-size ↩

  125. --field-separator ↩

  126. --temporary-directory ↩

  127. --unique ↩

  128. --version-sort ↩

  129. --zero-terminated ↩

  130. uniq (GNU coreutils) 8.22 uniq --help 参照 ↩

  131. --count ↩

  132. --repeated ↩

  133. --all-repeated ↩

  134. --skip-fields ↩

  135. --ignore-case ↩

  136. --skip-chars ↩

  137. --check-chars ↩

  138. diff (GNU diffutils) 3.3 diff --help 参照 ↩

  139. --text ↩

  140. --ignore-space-change ↩

  141. --ignore-blank-lines ↩

  142. --context ↩

  143. --minimal ↩

  144. --ifdef ↩

  145. --ed ↩

  146. --ignore-tab-expansion ↩

  147. --show-function-line ↩

  148. --ignore-matching-lines ↩

  149. --paginate ↩

  150. --rcs ↩

  151. --new-file ↩

  152. --show-c-function ↩

  153. --brief ↩

  154. --report-identical-files ↩

  155. --starting-file ↩

  156. --expand-tabs ↩

  157. --initial-tab ↩

  158. --unified ↩

  159. --version ↩

  160. --ignore-all-space ↩

  161. --exclude ↩

  162. --exclude-from ↩

  163. --side-by-side ↩

  164. --ignore-trailing-space ↩

  165. grep (GNU grep) 2.20 grep --help 参照 ↩

  166. --after-context ↩

  167. --byte-offset ↩

  168. --before-context ↩

  169. --directories ↩

  170. --devices ↩

  171. --regexp ↩

  172. --extended-regexp ↩

  173. --file ↩

  174. --fixed-strings ↩

  175. basic-regexp ↩

  176. --no-filename ↩

  177. --with-filename ↩

  178. equivalent to --binary-files=without-match ↩

  179. --files-with-matches ↩

  180. --files-without-match ↩

  181. --max-count ↩

  182. --line-number ↩

  183. --only-matching ↩

  184. --perl-regexp ↩

  185. --dereference-recursive ↩

  186. --no-messages ↩

  187. --unix-byte-offsets ↩

  188. --binary ↩

  189. --invert-match ↩

  190. --word-regexp ↩

  191. --line-regexp ↩

  192. --null-data ↩

  193. --null ↩

  194. curl 7.29.0 (x86_64-redhat-linux-gnu) libcurl/7.29.0 NSS/3.44 zlib/1.2.7 libidn/1.28 libssh2/1.8.0 curl --help 参照 ↩

  195. --append ↩

  196. --user-agent ↩

  197. --cookie ↩

  198. --use-ascii ↩

  199. --cookie-jar ↩

  200. --continue-at ↩

  201. --data ↩

  202. --dump-header ↩

  203. --referer ↩

  204. --cert ↩

  205. --fail ↩

  206. --form ↩

  207. --globoff ↩

  208. --get ↩

  209. --help ↩

  210. --header ↩

  211. --include ↩

  212. --head ↩

  213. --junk-session-cookies ↩

  214. --remote-header-name ↩

  215. --insecure ↩

  216. --config ↩

  217. --list-only ↩

  218. --location ↩

  219. --max-time ↩

  220. --manual ↩

  221. --netrc ↩

  222. --no-buffer ↩

  223. --remote-name ↩

  224. --proxytunnel ↩

  225. --ftp-port ↩

  226. If used as the first parameter disables .curlrc ↩

  227. --quote ↩

  228. --range ↩

  229. --remote-time ↩

  230. --silent ↩

  231. --show-error ↩

  232. --telnet-option ↩

  233. --upload-file ↩

  234. --user ↩

  235. --proxy-user ↩

  236. --write-out ↩

  237. --proxy ↩

  238. --request ↩

  239. --speed-time ↩

  240. --speed-limit ↩

  241. --time-cond ↩

  242. --http1.0 ↩

  243. --tlsv1 ↩

  244. --sslv2 ↩

  245. --sslv3 ↩

  246. --ipv4 ↩

  247. --ipv6 ↩

  248. --progress-bar ↩

  249. tar (GNU tar) 1.26 tar --help 参照 ↩

  250. --auto-compress ↩

  251. --catenate, --concatenate ↩

  252. --blocking-factor ↩

  253. --read-full-records ↩

  254. --create ↩

  255. --directory ↩

  256. --diff, --compare ↩

  257. --info-script ↩

  258. --listed-incremental ↩

  259. --incremental ↩

  260. --dereference ↩

  261. --format ↩

  262. --ignore-zeros ↩

  263. --use-compress-program ↩

  264. --bzip2 ↩

  265. --xz ↩

  266. --keep-old-files ↩

  267. --starting-file ↩

  268. --check-links ↩

  269. --tape-length ↩

  270. --touch ↩

  271. --multi-volume ↩

  272. --seek ↩

  273. --newer ↩

  274. 作成時は --old-archive と同じ. 抽出時は--no-same-owner と同じ ↩

  275. --to-stdout ↩

  276. --preserve-permissions, --same-permissions ↩

  277. --absolute-names ↩

  278. --append ↩

  279. --block-number ↩

  280. --preserve-order, --same-order ↩

  281. --sparse ↩

  282. --list ↩

  283. --files-from ↩

  284. --unlink-first ↩

  285. --label ↩

  286. --interactive, --confirmation ↩

  287. --verify ↩

  288. --extract, --get ↩

  289. --gzip, --gunzip, --ungzip ↩

  290. --compress, --uncompress ↩

  291. --help ↩

  292. gzip 1.5 gzip --help 参照 ↩

  293. --stdout ↩

  294. --decompress ↩

  295. --list ↩

  296. --license ↩

  297. --no-namet ↩

  298. --name ↩

  299. --quiet ↩

  300. --test ↩

  301. --fast ↩

  302. --best ↩

  303. kill from util-linux 2.23.2 /bin/kill --help 参照 ↩

  304. --table ↩

  305. --pid ↩

  306. --queue ↩

  307. --signal ↩

  308. df (GNU coreutils) 8.22 df --help 参照 ↩

  309. --block-size ↩

  310. --si ↩

  311. --inodes ↩

  312. --block-size=1K と同様 ↩

  313. --local ↩

  314. --portability ↩

  315. --type ↩

  316. --print-type ↩

  317. (ignored) ↩

  318. --exclude-type ↩

  319. free from procps-ng 3.3.10 free --help 参照 ↩

  320. --bytes ↩

  321. --giga ↩

  322. --human ↩

  323. --kilo ↩

  324. --lohi ↩

  325. --mega ↩

  326. --seconds ↩

  327. --total ↩

  328. --wide ↩

  329. vmstat from procps-ng 3.3.10 vmstat --help 参照 ↩

  330. --active ↩

  331. --disk ↩

  332. --disk-sum ↩

  333. --forks ↩

  334. --slabs ↩

  335. --one-header ↩

  336. --partition ↩

  337. --stats ↩

  338. --unit ↩

  339. --timestamp ↩

  340. git version 2.25.1 git clone -h 参照 ↩

  341. --branch ↩

  342. --config ↩

  343. --jobs ↩

  344. --no-checkout ↩

  345. --origin ↩

  346. --shared ↩

  347. --upload-pack ↩

  348. git version 2.25.1 git init -h 参照 ↩

  349. git version 2.25.1 git add -h 参照 ↩

  350. --edit ↩

  351. --dry-run ↩

  352. --intent-to-add ↩

  353. --patch ↩

  354. git version 2.25.1 git mv -h 参照 ↩

  355. skip move/rename errors ↩

  356. git version 2.25.1 git restore -h 参照 ↩

  357. --source ↩

  358. --staged ↩

  359. --worktree ↩

  360. --ours ↩

  361. --theirs ↩

  362. git version 2.25.1 git rm -h 参照 ↩

  363. allow recursive removal ↩

  364. git version 2.25.1 git diff -h 参照 ↩

  365. --break-rewrites ↩

  366. --find-copies ↩

  367. --irreversible-delete ↩

  368. look for differences that change the number of occurrences of the specified regex ↩

  369. prevent rename/copy detection if the number of rename/copy targets exceeds given limit ↩

  370. --find-renames ↩

  371. control the order in which files appear in the output ↩

  372. swap two inputs, reverse the diff ↩

  373. --no-patch ↩

  374. look for differences that change the number of occurrences of the specified string ↩

  375. generate patch ↩

  376. --function-context ↩

  377. --dirstat ↩

  378. do not munge pathnames and use NULs as output field terminators in --raw or --numstat ↩

  379. git version 2.25.1 git grep -h 参照 ↩

  380. match <pattern> ↩

  381. read patterns from file ↩

  382. don't show filenames ↩

  383. show filenames ↩

  384. don't match patterns in binary files ↩

  385. --open-files-in-pager ↩

  386. --show-function ↩

  387. git version 2.25.1 git log -h 参照 ↩

  388. Process line range n,m in file, counting from 1 ↩

  389. git version 2.25.1 git show -h 参照 ↩

  390. Process line range n,m in file, counting from 1 ↩

  391. git version 2.25.1 git status -h 参照 ↩

  392. --short ↩

  393. --untracked-files ↩

  394. git version 2.25.1 git branch -h 参照 ↩

  395. --copy ↩

  396. copy a branch, even if target exists ↩

  397. --delete ↩

  398. delete branch (even if not merged) ↩

  399. --move ↩

  400. move/rename a branch, even if target exists ↩

  401. --remotes ↩

  402. --track ↩

  403. --set-upstream-to ↩

  404. git version 2.25.1 git commit -h 参照 ↩

  405. --reedit-message ↩

  406. --reuse-message ↩

  407. --message ↩

  408. --no-verify ↩

  409. --only ↩

  410. --signoff ↩

  411. --gpg-sign ↩

  412. --template ↩

  413. git version 2.25.1 git merge -h 参照 ↩

  414. do not show a diffstat at the end of the merge ↩

  415. --strategy ↩

  416. --strategy-option ↩

  417. git version 2.25.1 git rebase -h 参照 ↩

  418. passed to 'git apply' ↩

  419. --force-rebase ↩

  420. --keep-empty ↩

  421. --no-stat ↩

  422. --rebase-merges ↩

  423. --exec ↩

  424. git version 2.25.1 git reset -h 参照 ↩

  425. git version 2.25.1 git switch -h 参照 ↩

  426. --force-create ↩

  427. --detach ↩

  428. git version 2.25.1 git tag -h 参照 ↩

  429. --annotate ↩

  430. print <n> lines of each tag message ↩

  431. --sign ↩

  432. --local-user ↩

  433. --verify ↩

  434. git version 2.25.1 git fetch -h 参照 ↩

  435. --keep ↩

  436. --multiple ↩

  437. do not fetch all tags (--no-tags) ↩

  438. --server-option ↩

  439. --prune ↩

  440. --prune-tags ↩

  441. --tags ↩

  442. --update-head-ok ↩

  443. git version 2.25.1 git pull -h 参照 ↩

  444. do not show a diffstat at the end of the merge ↩

  445. --rebase ↩

  446. git version 2.25.1 git push -h 参照 ↩

  447. --push-option ↩

  448. --set-upstream ↩

  449. Client: Docker Engine - Community; Version: 19.03.8; API version: 1.40; docker build --help 参照 ↩

  450. --cpu-shares ↩

  451. --memory ↩

  452. --tag ↩

  453. Client: Docker Engine - Community; Version: 19.03.8; API version: 1.40; docker commit --help 参照 ↩

  454. --author ↩

  455. --change ↩

  456. --pause ↩

  457. Client: Docker Engine - Community; Version: 19.03.8; API version: 1.40; docker cp --help 参照 ↩

  458. --follow-link ↩

  459. Client: Docker Engine - Community; Version: 19.03.8; API version: 1.40; docker create --help 参照 ↩

  460. --attach ↩

  461. --env ↩

  462. --hostname ↩

  463. --label ↩

  464. --publish ↩

  465. --publish-all ↩

  466. --tty ↩

  467. --volume ↩

  468. --workdir ↩

  469. Client: Docker Engine - Community; Version: 19.03.8; API version: 1.40; docker events --help 参照 ↩

  470. --filter ↩

  471. Client: Docker Engine - Community; Version: 19.03.8; API version: 1.40; docker exec --help 参照 ↩

  472. Client: Docker Engine - Community; Version: 19.03.8; API version: 1.40; docker export --help 参照 ↩

  473. Client: Docker Engine - Community; Version: 19.03.8; API version: 1.40; docker history --help 参照 ↩

  474. Client: Docker Engine - Community; Version: 19.03.8; API version: 1.40; docker images --help 参照 ↩

  475. Client: Docker Engine - Community; Version: 19.03.8; API version: 1.40; docker import --help 参照 ↩

  476. Client: Docker Engine - Community; Version: 19.03.8; API version: 1.40; docker info --help 参照 ↩

  477. --format ↩

  478. Client: Docker Engine - Community; Version: 19.03.8; API version: 1.40; docker inspect --help 参照 ↩

  479. Client: Docker Engine - Community; Version: 19.03.8; API version: 1.40; docker kill --help 参照 ↩

  480. Client: Docker Engine - Community; Version: 19.03.8; API version: 1.40; docker load --help 参照 ↩

  481. --input ↩

  482. Client: Docker Engine - Community; Version: 19.03.8; API version: 1.40; docker login --help 参照 ↩

  483. --password ↩

  484. Client: Docker Engine - Community; Version: 19.03.8; API version: 1.40; docker logs --help 参照 ↩

  485. --timestamps ↩

  486. Client: Docker Engine - Community; Version: 19.03.8; API version: 1.40; docker ps --help 参照 ↩

  487. --latest ↩

  488. --last ↩

  489. Client: Docker Engine - Community; Version: 19.03.8; API version: 1.40; docker pull --help 参照 ↩

  490. Client: Docker Engine - Community; Version: 19.03.8; API version: 1.40; docker restart --help 参照 ↩

  491. --time ↩

  492. Client: Docker Engine - Community; Version: 19.03.8; API version: 1.40; docker rm --help 参照 ↩

  493. --volumes ↩

  494. Client: Docker Engine - Community; Version: 19.03.8; API version: 1.40; docker rmi --help 参照 ↩

  495. Client: Docker Engine - Community; Version: 19.03.8; API version: 1.40; docker run --help 参照 ↩

  496. Client: Docker Engine - Community; Version: 19.03.8; API version: 1.40; docker save --help 参照 ↩

  497. Client: Docker Engine - Community; Version: 19.03.8; API version: 1.40; docker search --help 参照 ↩

  498. Client: Docker Engine - Community; Version: 19.03.8; API version: 1.40; docker start --help 参照 ↩

  499. Client: Docker Engine - Community; Version: 19.03.8; API version: 1.40; docker stats --help 参照 ↩

  500. Client: Docker Engine - Community; Version: 19.03.8; API version: 1.40; docker stop --help 参照 ↩

  501. Client: Docker Engine - Community; Version: 19.03.8; API version: 1.40; docker update --help 参照 ↩

  502. Client: Docker Engine - Community; Version: 19.03.8; API version: 1.40; docker version --help 参照 ↩

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