20211124のGitに関する記事は4件です。

【Git】GitHubでリポジトリを作った時に打つコマンドたち

はじめに GitHubで新規にリポジトリを作成した時に打つコマンドたち、いつもコピペして貼り付けてるだけではありませんか?? そんなあなたに!簡単にですが、解説しようと思います。 コマンドたち git clone git@github.com:westhouseK/qiita.git echo "# qiita" >> README.md git init git add README.md git commit -m "first commit" git branch -M main git remote add origin git@github.com:westhouseK/qiita.git git push -u origin main 解説 git clone git@github.com:westhouseK/qiita.git カレントディレクトリに、ファイルをダウンロードするコマンドです。デフォルトでは、リポジトリ名のディレクトリが作成されます。.gitの後に文字列を書くと、ディレクトリ名を任意に設定することができます。 また、以下のようにgitのリモートリポジトリのURLが自動で設定されます。 git remote -vv origin git@github.com:westhouseK/qiita.git (fetch) origin git@github.com:westhouseK/qiita.git (push) echo "# qiita" >> README.md echo $1 ・・・ $1の文字を画面に出力します。今回でいうと、# qiitaですね。 >> ・・・ リダイレクションと言って、画面に出力するのではなく、右辺のファイルに追記します。今回でいうと、README.mdファイルがないので作成し、最後尾(1行目)に# qiitaを追記します。 git init Gitの初期化を行い、.gitファイルがなければ作成します。.gitファイルはコミット、マージ、ブランチ等の情報をすべて保持します。 中身の詳細はこちらを読んでみてください。 git add README.md 修正したファイル(README.md)をステージングエリアに追加します。一つ前の状態に戻す場合にはgit reset git commit -m "first commit" 初めてのコミットになります!-mは、コメットメッセージをその場で登録できるオプションです。コミットメッセージは任意です。git logでコミット履歴を確認できるようになりました。 git branch -M main こちらのコマンドを打つ前に、git branchすると、master(またmain)になっているはずです。Git version 2.28からデフォルトがmainのようです。 -M(または-m)はブランチ名を変更するコマンドです。ブランチ名をmainに変更しています。 git remote add origin git@github.com:westhouseK/qiita.git リモートのリポジトリの情報を登録するコマンドです。git cloneした方はスキップしていただいて大丈夫です。ここでoriginを決定しています。 git push -u origin main ローカルリポジトリの情報をリモートリポジトリへ同期するコマンドです。-uコマンドは、追跡ブランチを設定するオプションです。要するに、ローカルのmainブランチは、リモートのmainブランチを元にしているという情報を持つイメージです。以下のコマンドで追跡ブランチを確認することができます。 $ git branch -vv * main f24b242 [origin/main] first commit 終わりに いつも全行コピペして貼っていただけなので、まとめらてスッキリしました。 今日はよく眠れそうです?
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

[初心者の備忘録]Gitの使い方

はじめに プログラミング初学者が学習する際に、ほとんどの方がgitに触れると思います。 gitについえは、数多くの記事があり自分自身何度も参考にさせていただきました。 ただ、中にはそもそも解説している用語の意味がわからずとりあえずコピペでその場を凌ぐことがありました。 なので、備忘録もかねて初心者目線で基本的な操作について、記載します。 git init…リポジトリを初期化 Gitでバージョン管理をするには、リポジトリを初期化しなければいけません。 その初期化を行うコマンドが以下です。(初期化を行いたいディレクトリにて実行) git init 実行すると「.git」が作成され、「Gitリポジトリ」と呼ばれるものです。これがバージョンを管理するために必要です。 下記コマンド(ls -a)で、作成されたか確認ができます。 % ls -a . .. .git first_txt git add …ステージング領域へファイルを追加 ファイルを「Gitリポジトリ」で管理していくためには、記録を残すために「commit」をしなければいけません。 その「commit」するファイルをステージング領域と呼ばれるところにファイルを加えてあげる(add)必要があります。 ステージングファイルに「add」したファイルを「commit」することで、ローカルリポジトリに記録されます。 サッカーでいう、選手交代の際にタッチラインで交代を待っている選手みたいな感じです。。(わかりずらい) その際に使用するコマンドが以下です。 git add example.txt 実行後に、「example.txt」がステージングファイルに登録されます。 また、以下のコマンドで変更ファイルをまとめてステージング領域へ追加することができます。 git add . git commit …リポジトリの歴史を記録 「commit」は、ステージング領域に加えられているファイルをローカルリポジトリに記録するためのコマンドです。 git commit -m "first commit" -m はコミットに対して1行メッセージをつけるための記載です。 今回でいうと、"first commit"というメッセージをcommmitに付け加えています。 通常はコミットに対する要約を記述します。 どの作業をなんのためにしたのか、簡単に振り返られるようにするためのものです。 git remote add origin https://*********.git 一度実行すれば、今後はorigin という名前でリモートリポジトリ(GitHub)に接続できます。 git remote add …リモートリポジトリを登録 GitHubで作成したリポジトリのパスをローカルリポジトリのリモートリポジトリとして登録する際に必要なコマンドです。 要するに、Githubとローカルリポジトリを紐づけるために実行するものです。 git push …リモートリポジトリへ送信 ローカルリポジトリの内容をリモートリポジトリ(Github)に送信するためには、下記コマンドを実行します。 git push -u origin master これでローカルリポジトリの変更を、リモートリポジトリのmasterにpushする と言う意味になります。 git status …リポジトリの状態を確 % git status On branch master Your branch is up to date with 'origin/master'. nothing to commit, working tree clean 現在はmasterという名前のブランチにおり、commitするものがないと表示されています。 % git status On branch master Your branch is up to date with 'origin/master'. Changes not staged for commit: (use "git add <file>..." to update what will be committed) (use "git restore <file>..." to discard changes in working directory) modified: first_txt no changes added to commit (use "git add" and/or "git commit -a") この場合は、「first.txt」に変更があったことを示しています。 git log …コミットログを確認 git commit にてコミットされたかを確認できます。 誰がいつコミットをして、差分内容を確認することができます。 % git log commit 0b662f4b1d6003d6ce883c49839d0dcd18f39dae (HEAD -> master) Author: ここにはコミットした人の名前が入ります Date: Wed Nov 24 16:16:27 2021 +0900 天気模様と傘を忘れたことを記載 gitの勉強のため *上記が発生した差分の内容 commit af49de3ea5f621a77f94b526306e30d8446e3717 (origin/master)  githubの$git logを終了する方法は [q]を入力するだけです。 "git log"にはオプションがあります。 "git log --oneline" …コミットメッセージの1行目のみを表示する。 % git log --oneline a9ea7d3 (HEAD -> master, origin/master) second.txt をコミットから削除 d86f41d second.txtを追加 0b662f4 天気模様と傘を忘れたことを記載 af49de3 initial commit コミットメッセージの1行目が最新順に表示されます。 "git log -p" …ファイルの差分を表示する そのままで、ファイルの差分を表示することができます。 git log -p README.md で確認したいファイルを限定することもできます。 git rm …ローカルリポジトリからファイルを削除 ローカルリポジトリに登録されているファイルを削除したい時に使用するコマンド。 % git rm second.txt rm 'second.txt' これにより、ステージングファイルに「second.txt」を削除するよう申請をした状態です。 ローカルリポジトリに反映させるには、”git add”と同様にコミットが必要です。 git diff …変更差分を確認 % git diff (ファイル名をしていることも可能) *"git add"する前に変更差分を確認する際に実行します。 ステージング領域との変更箇所を表示します。 % git diff --staged *"git add"後(ステージング領域に追加後)に変更差分を確認する際に実行します。 "git add"したステージング領域とローカルリポジトリとの差分を表示します。
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

Gitコマンド一覧

はじめに プログラミング初学者が学習する際に、ほとんどの方がgitに触れると思います。 gitについえは、数多くの記事があり自分自身何度も参考にさせていただきました。 ただ、中にはそもそも解説している用語の意味がわからずとりあえずコピペでその場を凌ぐことがありました。 なので、備忘録もかねて基本的な操作について、記載します。 git init…リポジトリを初期化 Gitでバージョン管理をするには、リポジトリを初期化しなければいけません。 その初期化を行うコマンドが以下です。(初期化を行いたいディレクトリにて実行) git init 実行すると「.git」が作成され、「Gitリポジトリ」と呼ばれるものです。これがバージョンを管理するために必要です。 下記コマンド(ls -a)で、作成されたか確認ができます。 % ls -a . .. .git first_txt git add …ステージング領域へファイルを追加 ファイルを「Gitリポジトリ」で管理していくためには、記録を残すために「commit」をしなければいけません。 その「commit」するファイルをステージング領域と呼ばれるところにファイルを加えてあげる(add)必要があります。 ステージングファイルに「add」したファイルを「commit」することで、ローカルリポジトリに記録されます。 サッカーでいう、選手交代の際にタッチラインで交代を待っている選手みたいな感じです。。(わかりずらい) その際に使用するコマンドが以下です。 git add example.txt 実行後に、「example.txt」がステージングファイルに登録されます。 また、以下のコマンドで変更ファイルをまとめてステージング領域へ追加することができます。 git add . git commit …リポジトリの歴史を記録 「commit」は、ステージング領域に加えられているファイルをローカルリポジトリに記録するためのコマンドです。 git commit -m "first commit" -m はコミットに対して1行メッセージをつけるための記載です。 今回でいうと、"first commit"というメッセージをcommmitに付け加えています。 通常はコミットに対する要約を記述します。 どの作業をなんのためにしたのか、簡単に振り返られるようにするためのものです。 git remote add origin https://*********.git 一度実行すれば、今後はorigin という名前でリモートリポジトリ(GitHub)に接続できます。 git remote add …リモートリポジトリを登録 GitHubで作成したリポジトリのパスをローカルリポジトリのリモートリポジトリとして登録する際に必要なコマンドです。 要するに、Githubとローカルリポジトリを紐づけるために実行するものです。 git push …リモートリポジトリへ送信 ローカルリポジトリの内容をリモートリポジトリ(Github)に送信するためには、下記コマンドを実行します。 git push -u origin master これでローカルリポジトリの変更を、リモートリポジトリのmasterにpushする と言う意味になります。 git status …リポジトリの状態を確 % git status On branch master Your branch is up to date with 'origin/master'. nothing to commit, working tree clean 現在はmasterという名前のブランチにおり、commitするものがないと表示されています。 % git status On branch master Your branch is up to date with 'origin/master'. Changes not staged for commit: (use "git add <file>..." to update what will be committed) (use "git restore <file>..." to discard changes in working directory) modified: first_txt no changes added to commit (use "git add" and/or "git commit -a") この場合は、「first.txt」に変更があったことを示しています。 git log …コミットログを確認 git commit にてコミットされたかを確認できます。 誰がいつコミットをして、差分内容を確認することができます。 % git log commit 0b662f4b1d6003d6ce883c49839d0dcd18f39dae (HEAD -> master) Author: ここにはコミットした人の名前が入ります Date: Wed Nov 24 16:16:27 2021 +0900 天気模様と傘を忘れたことを記載 gitの勉強のため *上記が発生した差分の内容 commit af49de3ea5f621a77f94b526306e30d8446e3717 (origin/master)  githubの$git logを終了する方法は [q]を入力するだけです。 "git log"にはオプションがあります。 "git log --oneline" …コミットメッセージの1行目のみを表示する。 % git log --oneline a9ea7d3 (HEAD -> master, origin/master) second.txt をコミットから削除 d86f41d second.txtを追加 0b662f4 天気模様と傘を忘れたことを記載 af49de3 initial commit コミットメッセージの1行目が最新順に表示されます。 "git log -p" …ファイルの差分を表示する そのままで、ファイルの差分を表示することができます。 git log -p README.md で確認したいファイルを限定することもできます。 git rm …ローカルリポジトリからファイルを削除 ワークツリー(作業フォルダ)とリモートリポジトリに登録されているファイルを削除したい時に使用するコマンドです。 % git rm second.txt これにより、ステージングファイルに「second.txt」を削除するよう申請をした状態です。 ローカルリポジトリに反映させるには、”git add”と同様にコミットが必要です。 また、ワークツリーのファイルは残しつつリモートリポジトリに登録されているファイルのみ削除したい場合は"--cached"のオプションを付けて実行する。 % git rm -r <ディレクトリ名> ディレクトリを削除したい場合は以下のように実行する。 % git rm second.txt rm 'second.txt' git diff …変更差分を確認 % git diff (ファイル名をしていることも可能) *"git add"する前に変更差分を確認する際に実行します。 ステージング領域との変更箇所を表示します。 % git diff --staged *"git add"後(ステージング領域に追加後)に変更差分を確認する際に実行します。 "git add"したステージング領域とローカルリポジトリとの差分を表示します。 git reset HEAD …ステージング領域に追加した変更を元に戻したい時 "git add" 等でステージに追加した変更をリセットしたいときは以下を実行します。 #「ファイル名」を対象にリセットする % git reset HEAD "ファイル名" #ディレクトリごとリセットする % git reset HEAD "ディレクトリ名" #全変更を対象にリセットする % git reset HEAD . 指定した変更をステージング領域から取り消すだけで、ワークツリー(作業しているエディタのスペース)の ファイルには影響を与えません。
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

pre-commitするときにマルチバイトを含んでいたらrijectする。

あるプロジェクトで多言語化対応する必要があったのですが、日本語がベタ書きされている箇所もちらほらありつつ「これからコーディングする際はマルチバイトを含んでいたらcommit時に弾こう!」となりました。 そのときに行った処理を記載します。 使用するライブラリ husky この記事で説明しないこと huskyがなんなのか huskyのinstallから設定方法 参考にした記事 Git でコミット前に禁止ワードが入っていないかチェックする 実際のコード #!/bin/sh rootPath=$(git rev-parse --show-toplevel) diffArray=() show_message () { cat <<EOL [WORD CHECK ERROR] Cannot commit multibyte characters [RESULT] $1 [HINT] If you want to force commit, please append prefix 'NO_WORD_CHECK=1' to command. EOL } for file in $(git diff --cached --name-only) do extention=${file##*.} if [ $extention = 'ts' ] || [ $extention = 'js' ] || [ $extention = 'vue' ]; then result=$(less "${rootPath}"/"${file}" | grep -A5 -B5 -i [0-9A-z、-◯ぁ-んァ-ヶ亜-腕弌-熙]) if [ $? -eq 0 ]; then diffArray+=("\n$result\n\n") fi fi done if [ ${#diffArray[@]} -gt 0 ] && [ -z $NO_WORD_CHECK ]; then joinedStr="$(IFS=; echo "${diffArray[*]}")" show_message "$joinedStr" exit 1 else exit 0 fi 説明 git diff --cached --name-only まずは、これでaddしたファイル名を取得しforでブン回します。 extention=${file##*.} if [ $extention = 'ts' ] || [ $extention = 'js' ] || [ $extention = 'vue' ]; then 次に、ts js vueのファイルだけに絞り込みます。 result=$(less "${rootPath}"/"${file}" | grep -A5 -B5 -i [0-9A-z、-◯ぁ-んァ-ヶ亜-腕弌-熙]) lessでファイル開いて、マルチバイトや記号でgrepかけます。 if [ $? -eq 0 ]; then $?には直前の結果が格納されています。 それをarrayに追加しまして。 if [ ${#diffArray[@]} -gt 0 ] && [ -z $NO_WORD_CHECK ]; then joinedStr="$(IFS=; echo "${diffArray[*]}")" show_message "$joinedStr" exit 1 else exit 0 fi 最後に表示させます。 このチェックを回避する場合は、commit時にNO_WORD_CHECK=1のパラメーターを指定するとそのままコミットできます。 NO_WORD_CHECK=1 git commit
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む