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

「git cloneしたソースコードの作業ブランチを切り替えて」と言われたので先輩に教わりながらやってみた

この記事を書いた理由

入社2週目でリモートワークが始まり、チャットで「昨日git cloneしたソースコードの作業ブランチ切り替えて」と言われたのですが、頭の中は「?」だらけだったので、この記事に残します。

先輩社員から実行すべきGitコマンドは教えていただいたのですが、そのまま実行するのも自分のレベルアップのためにならないかなと思い、調べた結果自分以外の人にもわかりやすいようにまとめてみます。

行った手順

この記事では「branchAというリモートで作成されたブランチをローカルに持ってきてその作業ブランチに切り替える」ために行った手順を書きます。

git fetchでリモートの情報を取得する

元々masterブランチのソースコードをgit cloneしていたので、まずはリモートリポジトリで新たに作成されたbranchAの情報を取得します。

$ git fetch

git fetchコマンドの詳しい内容はこちらの記事がわかりやすいです↓
git fetchの詳しい説明はこちら

git checkoutコマンドでローカルの作業ブランチを切り替える

実際に作業ブランチをmaster→branchAに切り替える

$ git checkout -b branchA origin/master

上のコマンドにより、branchAブランチがローカルに作成され、作業ブランチがbranchAに切り替わる。

git checkout -bコマンドは以下のように使う。

$ git checkout -b {作成して切り替えたいローカルブランチ名} origin/{起点とするリモートブランチ名}

git checkout -bコマンドはローカルに新しいブランチを作成し、作業ブランチを作成したブランチに切り替える。

git checkout -bコマンドは以下のコマンドを1回で行うことができる。

//git branchコマンドで新たにブランチを作成する
$ git branch  branchA origin/master

//git checkoutコマンドで作業ブランチを切り替える
$ git checkout branchA

git checkoutコマンドの詳しい内容はこちらの記事がわかりやすいです↓
git checkoutコマンドの詳しい説明はこちら

git branchコマンドで現在の作業ブランチを確認する

以下のコマンドで現在の作業ブランチを確認する。

$ git branch

ターミナルに以下の通り表示され、masterブランチからbranchAにブランチが切り替わっているにがわかる。
(*がついているのが現在の作業ブランチ)

 * branchA
   master

おわりに

この作業は今後も使いそうなので都度確認しようと思います。

ブランチの概念についてまだまだ理解が甘いと自覚しているのでそこも勉強していきます。

完全未経験から実務に入って2週間目ですが、Gitの知識はないとマズいな実感しています。

頑張ります!泣

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

【超図解】OSSにPull Requestを出す時の備忘録

OSS(Open Source Software)のコミュニティー(本家)のリポジトリにPull Requestを出す時にいつも手順が分からなくなってしまいます1。例によって調べながらやりますが、ページによって記載がまちまちだったりします。そこで備忘録として手順をまとめておくことで迷わずスムーズにPull Requestを出せる様にしておこうと思いました。また、ただGitのコマンドを羅列しただけの備忘録では無く、実際にVega EditorというOSSにコントリビュートしてみた行程をまとめて残しておこうと思います。

OSSのリポジトリをForkする

今回はVega EditorというOSSにコントリビュートしてみようと思います。たまたま今回この記事を執筆するタイミングで修正箇所が有った為、選択したという次第です。Forkを実施するためにまずはOSSのGitHubのリポジトリ2にアクセスします。OSSのリポジトリを自分のGitHubアカウントにForkして自分リポジトリとして扱える様にします。Forkの方法は下図の赤丸のForkボタンをクリックするだけです。

fork.png

Forkしたリポジトリのクローン

Forkしたリポジトリは自分のユーザー名/リポジトリ名3という名前が付きます。このリポジトリにまず修正を反映します。修正作業を行うためにリポジトリをローカルにクローンします。下図のClone or downloadをクリックします。ここで、パスワード認証(HTTP)かSSH認証によってURLが異なります。URL横のクリップボードマークをクリックすることでURLをコピー出来ます。

clone.png

今回の検証に使っているリポジトリでは以下のコマンドになります。

git clone git@github.com:y-vectorfield/editor.git

Upstreamブランチ情報の登録

これ以降登場する用語の早見表をまず掲載します。これは所謂どこのリポジトリを指しているかのエイリアスの様な物です。

エイリアス 指しているリポジトリ
リモート(origin) 自分のアカウントのリモートリポジトリ4
ローカル 自分のローカル作業環境上のリポジトリ
upsteream OSS本家のリポジトリ5

それでは本家のリポジトリをupstreamとしてgit configに登録します。URLは本記事での例です。

git remote add upstream https://github.com/vega/editor

登録結果を確認します。

git config -l

末尾に以下の内容が追加されていれば成功です。

remote.upstream.url=https://github.com/vega/editor
remote.upstream.fetch=+refs/heads/*:refs/remotes/upstream/*

修正を反映し、Commit & Push

修正用のブランチに必ずスイッチしてからローカルで修正を行い、まずリモートリポジトリに修正を反映させます。今回はdocker-compose.ymlにrestartオプションを追加する修正を行います。

:warning: OSSのコミュニティーによってContributionルール(ブランチ名の付け方、commitメッセージの書き方等を指定)を定めている場合はルールに則ります。

$ git checkout -b add-restart-option
Switched to a new branch 'add-restart-option'
version: "3.7"
services:
  editor:
    init: true
    build: .
    ports:
      - "8080:8080"
    volumes:
      - "./src:/usr/src/app/src"
+   restart: "always"

この修正が反映されることで、マシーンの再起動後必ずコンテナが再起動する様になります。後はリモートにcommit & pushを実施します。

$ git add .
$ git commit -m "Add restart option into docker compose yml file"
$ git push origin add-restart-option

Pull Requestをコミュニティー(本家)に提出

Compare & pull requestをクリックします。Pull Requestに添付するコメントを入力する画面が表示されます。コメント後Create pull requestをクリックし、提出します。

pull request.png

提出後、多くの場合テストやフォーマットチェックなどが実行されます。完了すると下図の様な表示となります。

completed.png

無事Mergeされました

Pull Requestが無事Merge(採用)されました!!これでOSS本家のリポジトリに修正が反映されました。

merged.png

merged2.png

Merge後のupstreamの内容をローカル, リモートに反映

無事Pull RequestがMergeされたので、その内容をローカルリモート(origin)に反映します。この行程は今後Pull Requestを出す時に、コミュニティーのリポジトリが更新されていた(手元のリポジトリが古い)場合にも実施します。

ローカルブランチがmasterにチェックアウトされて居ない場合はチェックアウトします。

git checkout master

まずupstreamの最新版の内容をfetchします。

git fetch upstream

ローカルのmasterブランチにupstreamの内容をmergeします。

git merge upstream/master --ff-only

最後にリモートのmasterブランチに更新を反映します。

git push origin master -u

下図の様にコミュニティーのリポジトリ(upstream)とリモートリポジトリが同じ状態になりました。

community.png

remote.png

まとめ

OSSのコミュニティーにPull Requestを出す手順を備忘録を兼ねてまとめてみました。これでGitの仕様が変更にならない限りは操作に困らなくなります。

Reference


  1. 業務等で頻繁にPull Requestを出しておられる方には何でも無いことなのかもしれませんが、趣味でやっているため、どうしても断続的になりがちです。。。 

  2. 本記事の場合: https://github.com/vega/editor 

  3. 筆者の場合: y-vectorfield/editor 

  4. 本記事の場合: https://github.com/y-vectorfield/editor 

  5. 本記事の場合: https://github.com/vega/editor 

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

GitHubでリモートとローカルのコミット時間がずれるとき

はじめに

開発環境については以下の通りです。
OS:CentOS
仮装環境:vagrant

事象

今回、一人でアプリケーションを作成している最中に
ローカル環境からGitHub上にあげたコミットメッセージの日付が2日前の日付で更新されるという現象が起きました。
解決するまでの流れを備忘録として残しておきます。

解決までの流れ

まず、GitHub上で何か悪さしているのではないかと思い、「git 日時ずれる」などで検索かけてみましたが、日付が9時間ずれている場合の対処などは見つけることができましたが、2日もずれるという記事が全然見つかりませんでした。

git上での日時がずれる事象の記事を読んでいる時に、ntpというワードがでてきたので、これはgitではなく仮装環境のvagrantの設定日時がおかしいという事に気がつきました。

仮装環境に入りターミナルで以下確認すると、確かに2日前の日付となっており、
ここを変えてあげれば改善することが分かりました。(正常日時は2020/4/7 17:30頃)

$ date
Sun Apr  5 07:22:16 UTC 2020

対処法

vagrant関連で検索を行うと、すぐに対処法に辿りつくことができました。
結論からいうと今回の事象は、システム時刻がUTCになってしまっていることが原因でした。

UTCになっているかいないかは、以下で確認ができます。

$ date
Sun Apr  5 07:22:16 UTC(←ここで確認できます。) 2020

 
今回行なったことは、仮装環境上で以下2つのコマンドを実行しました。

$ sudo rm /etc/localtime
$ sudo ln -s /usr/share/zoneinfo/Asia/Tokyo /etc/localtime

①「etc」配下にある「localtime」ファイルを削除
②「/usr/share/zoneinfo/Asia/Tokyo」のシンボリックリンクを「etc」配下に「localtime」として作成する。

 

vagrantを再起動し、確認する。

$ date
Tue Apr  7 18:36:26 JST 2020

UTCからJSTに変更されたことと、日時も問題なく戻りました。

軽く補足。UTCとJSTについて

UTCは”Universal Time”の略で、世界共通の標準時間と定めているもの。
JSTは”Japan Standard Time”の略で、日本の標準時間と定めているもの。
上記の通り、それぞれ大きく違いがあります。

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

各ソフトウェアのインストール方法

はじめに

この記事では以下のソフトウェアのインストール方法を紹介します.

  • SSHクライアント( OpenSSH )
  • git
  • Atom
  • Atom Package

SSHクライアント

まずSSHクライアントがインストールされているかどうかを確認する.
Windowsの人はコマンドプロンプト,Macの人はターミナルを起動して以下のコマンドを入力する

ssh -V

以下のような出力がされれば,SSHクライアントがインストールされている.

OpenSSH_for_Windows_7.7p1, LibreSSL 2.6.5   # Windowsの人
OpenSSH_7.9p1, LibreSSL 2.7.3               # Macの人
Open SSH_8.0p1 Ubuntu-6build1, ...          # Linux(Ubuntu)の人

SSHクライアントがインストールされていない人は以下の操作を実行してください.(主にWindows8の人)

Windows8の人

  1. コマンドプロンプトを起動する
  2. systeminfoと入力する
  3. 「システムの種類」がx64_based PCx86_based PCかを確認
  4. SSHのダウンロードページにアクセス
  5. システムの種類に合わせてzipフォルダをダウンロードする
    1. x64_based PCの人:OpenSSH-Win64.zip
    2. x86_based PCの人:OpenSSH-Win32.zip
  6. ダウンロードしたzipフォルダをダブルクリックして,表示されるフォルダをC:/にコピー
  7. スタート画面の検索欄に環境変数と入力し,システム環境変数の変数を選択
  8. システム環境変数中のPathを選択し,編集ボタンをクリック
  9. 変数値の末尾に;OpenSSH-Win64または;OpenSSH-Win32と入力してOKをクリック
  10. コマンドプロンプトを開き直してssh -Vでインストールできたか確認する
    • このとき画面・文字サイズが小さくなった場合はウィンドウ左上のアイコンをクリックしてプロパティを選択し,フォントタブからフォントをConsolas,サイズを24に設定する

command_prompt.png

64_32.PNG

キャプチャ.PNG
キャプチャ2.PNG
キャプチャ3.PNG


sshの設定(公開鍵認証)

コマンドプロンプト,またはターミナルを開いく.
カレントディレクリがホームであることを確認して,以下のコマンドを実行する

mkdir .ssh
cd .ssh
ssh-keygen
  1. ssh-keygen -t rsaと入力した後
    1. Enter file in which to save the keyと聞かれたらEnterを押す
    2. あとはEnterを押していく
  2. ~/.ssh以下にid_rsaid_rsa.pubができていることを確認する
    1. Windowsの人:dir .sshと入力
    2. Mac/Linuxの人:ls .sshと入力
  3. 以下のコマンドでid_rsa.pubをサーバーに転送する.login_nameとserver_urlは指示されたものを入力してください.
ssh login_name@server_url "cat >> ~/.ssh/authorized_keys" < id_rsa.pub

コマンドを入力したらEnterを押して,指示されたパスワードを入力(キーを打っても表示されませんが,入力されています).途中で何か聞かれたらyesと入力してEnterを押してください.

keygen2.PNG

gitのインストール

gitのダウンロードページにアクセスし,自分のOS用のインストーラをダウンロードする

スクリーンショット 2020-04-07 16.05.06.png

インストーラを実行し,nextをクリックしていきinstallボタンを押す
a.PNG

コマンドプロンプト/ターミナル でgit --versionと入力し,インストールできたか確認する.versionが表示されれば成功!
スクリーンショット 2020-04-07 16.24.43.png

そうでない場合は,gitのPATHを通す必要がある.

gitを利用するため,ユーザー名とメールアドレスを設定する.自分でgitを使わないのであれば適当な値で良いので,コピペしてEnterを押す

git config --global user.name "John Doe"
git config --global user.email johndoe@example.com

ユーザー名が日本語の人はインストール場所をホームディレクトリにする!!!!
Windowsの場合,C¥Program Filesには権限の問題でインストールできなかった.

Atomのインストール

Atomのダウンロードサイトにアクセス
スクリーンショット 2020-04-07 17.01.32.png

Downloadボタンを 押してダウンロードする.

Windowsの人はインストーラをダブルクリックして実行し,インストールする.
Macの人はアプリをアプリケーションフォルダにコピーする.

Atom Packageのインストール

Windowsの人はコマンドプロンプト,Mac/Linuxの人はターミナルを開く.
以下のコマンドコピペしてEnterを押す.

cd ~/.atom/packages
git clone https://github.com/kenglwo/atom-package

Atomを起動すれば自動的にPackageが読み込まれる.

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

Atomパッケージの利用・そのために必要なソフトウェアのインストール方法

はじめに

この記事ではまず授業で利用するAtomパッケージを使うために必要な,以下のソフトウェアのインストール方法を紹介します.その後にAtomパッケージの使い方をまとめています.

  • SSHクライアント( OpenSSH )
  • git
  • Atom
  • Atom Package

SSHクライアント

まずSSHクライアントがインストールされているかどうかを確認する.
Windowsの人はコマンドプロンプト,Macの人はターミナルを起動して以下のコマンドを入力する

ssh -V

以下のような出力がされれば,SSHクライアントがインストールされている.

OpenSSH_for_Windows_7.7p1, LibreSSL 2.6.5   # Windowsの人
OpenSSH_7.9p1, LibreSSL 2.7.3               # Macの人
Open SSH_8.0p1 Ubuntu-6build1, ...          # Linux(Ubuntu)の人

SSHクライアントがインストールされていない人は以下の操作を実行してください.(主にWindows8の人)

Windows8の人

  1. コマンドプロンプトを起動する
  2. systeminfoと入力する
  3. 「システムの種類」がx64_based PCx86_based PCかを確認
  4. SSHのダウンロードページにアクセス
  5. システムの種類に合わせてzipフォルダをダウンロードする
    1. x64_based PCの人:OpenSSH-Win64.zip
    2. x86_based PCの人:OpenSSH-Win32.zip
  6. ダウンロードしたzipフォルダをダブルクリックして,表示されるフォルダをC:/にコピー
  7. スタート画面の検索欄に環境変数と入力し,システム環境変数の変数を選択
  8. システム環境変数中のPathを選択し,編集ボタンをクリック
  9. 変数値の末尾に;OpenSSH-Win64または;OpenSSH-Win32と入力してOKをクリック
  10. コマンドプロンプトを開き直してssh -Vでインストールできたか確認する
    • このとき画面・文字サイズが小さくなった場合はウィンドウ左上のアイコンをクリックしてプロパティを選択し,フォントタブからフォントをConsolas,サイズを24に設定する

command_prompt.png

64_32.PNG

キャプチャ.PNG
キャプチャ2.PNG
キャプチャ3.PNG


sshの設定(公開鍵認証)

コマンドプロンプト,またはターミナルを開いく.
カレントディレクリがホームであることを確認して,以下のコマンドを実行する

mkdir .ssh
cd .ssh
ssh-keygen
  1. ssh-keygen -t rsaと入力した後
    1. Enter file in which to save the keyと聞かれたらEnterを押す
    2. あとはEnterを押していく
  2. ~/.ssh以下にid_rsaid_rsa.pubができていることを確認する
    1. Windowsの人:dir .sshと入力
    2. Mac/Linuxの人:ls .sshと入力
  3. 以下のコマンドでid_rsa.pubをサーバーに転送する.login_nameとserver_urlは指示されたものを入力してください.
ssh login_name@server_url "cat >> ~/.ssh/authorized_keys" < id_rsa.pub

コマンドを入力したらEnterを押して,指示されたパスワードを入力(キーを打っても表示されませんが,入力されています).途中で何か聞かれたらyesと入力してEnterを押してください.

keygen2.PNG

gitのインストール

gitのダウンロードページにアクセスし,自分のOS用のインストーラをダウンロードする

スクリーンショット 2020-04-07 16.05.06.png

インストーラを実行し,nextをクリックしていきinstallボタンを押す
a.PNG

コマンドプロンプト/ターミナル でgit --versionと入力し,インストールできたか確認する.versionが表示されれば成功!
スクリーンショット 2020-04-07 16.24.43.png

そうでない場合は,gitのPATHを通す必要がある.

gitを利用するため,ユーザー名とメールアドレスを設定する.自分でgitを使わないのであれば適当な値で良いので,コピペしてEnterを押す

git config --global user.name "John Doe"
git config --global user.email johndoe@example.com

ユーザー名が日本語の人はインストール場所をホームディレクトリにする!!!!
Windowsの場合,C¥Program Filesには権限の問題でインストールできなかった.

Atomのインストール

Atomのダウンロードサイトにアクセス
スクリーンショット 2020-04-07 17.01.32.png

Downloadボタンを 押してダウンロードする.

Windowsの人はインストーラをダブルクリックして実行し,インストールする.
Macの人はアプリをアプリケーションフォルダにコピーする.

Atomパッケージのインストール

Atomのパッケージが管理されているGithubリポジトリにアクセスする.

スクリーンショット 2020-04-28 14.20.43.png

①"Clone or Download",②Download ZIPの順にクリックしてパッケージ(atom-package-master)をダウンロードする.

"ダウンロード"フォルダにあるatom-package-masterをコピーして,ホームディレクトリ下の.atom/packagesにペーストする.
Macの人で隠しフォルダ(.atom)が見えていない人は,Command-Shift-. で見えるようになる,

スクリーンショット 2020-04-28 14.27.08.png

Windowsの人はコマンドプロンプト,Mac/Linuxの人はターミナルを開く.
以下のコマンドをコピペしてEnterを押す.

cd ~/.atom/packages
git clone https://github.com/kenglwo/atom-package

Atomを起動すれば自動的にPackageが読み込まれる.

Atom パッケージの使い方(設定方法)

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

社内ネットワークが自己証明書を使っていてあらゆるインストールで「SSL Certificate Error」が出る時の対処法

つよつよエンジニアの皆さんは自己証明書を使っている会社なんかでは働いていないとは思いますが、私のようなクソザコエンジニアはこのような悲惨な環境で働いているわけであります。
さて、この度プロジェクトの環境構築でSSLエラーが頻発しまくり、四苦八苦しながらなんとか対処したのでまとめていきたいと思います。

apt

apt.confというファイルを作り、それをUbuntu/Debianの/etc/apt/apt.confと差し替えます。

apt.conf
Acquire::http::Proxy "false";

Dockerfileの例はこんな感じ

COPY ./docker/app/apt.conf /etc/apt/apt.conf

これで普通にapt installが使えるようになります。

Git

SSLチェックをやめさせます。

git config --global http.sslVerify false

Python

pipのコマンドオプションで「信用できるドメインを指定」することで対処します。

pip install --trusted-host=pypi.org --trusted-host=pypi.python.org --trusted-host=files.pythonhosted.org django

残念ながら同じようなオプションはPoetryやpipenvでは見つけることができませんでした。。。

NodeJS

これもSSLの厳格なチェックをやめさせることで対処します。

npm config set strict-ssl false
yarn config set strict-ssl false

VSCodeのプラグイン(!?)

VSCodeの中身はElectronであり、プラグインはJSのソースによって作られるため、NodeJSの環境変数にNODE_TLS_REJECT_UNAUTHORIZEDを入れたら動くだろうと目論んだらその通りに行きました。
私の場合では特にremote-containerのインストールでエラーが起きました。

  • C:\Users\ユーザーID\.vscode\extensions\ms-vscode-remote.remote-containers-0.94.0\dist\extension.jsを開く
  • 先頭に以下のコードを追加
process.env["NODE_TLS_REJECT_UNAUTHORIZED"] = 0;

ms-vscode-remote.remote-containers-0.94.0のプラグイン名やバージョン情報の部分は適時読み替えてください。

以上です。

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

【Git】Gitで現在のbranchを環境変数にセットする方法

方法

現在developブランチにいるとして下記を実行します。

$ export CURRENT_BRANCH="$(git branch --contains | cut -b 3-)"
$ echo $CURRENT_BRANCH
develop

developブランチが$CURRENT_BRANCHにセットされました。

何をやっているか

$ git branch --contains
* develop

特定のコミットが所属するブランチを探す --contains を使えば、「現在のコミットの所属するブランチ」に絞り込むことができるので、今いるブランチが分かります。(ただし、今のコミットを含むブランチが複数あるときはあんまり意味ないです。当たり前ですが。)

引用

--containsは自動的にHEADを参照します。

これで現在のブランチを出力します。
ただこのままだとカレントブランチを表す*が含まれたままです。

| cut -b 3-

これでパイプで渡された標準出力の3バイト以降を出力します。
* developではd行こうが3バイト目なのでd以降が出力されます。

最後に$()で囲った処理を実行してexoprt CURRENT_BRANCHCURRENT_BRANCHにセットします。

$ export CURRENT_BRANCH="$(git branch --contains | cut -b 3-)"

参考

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

GitHubでゼロからコードを公開するまで【初心者】

はじめに

 この記事ではwindows環境において、Git、GitHubを用いたコードの公開までの流れをまとめます。

GitHubのアカウント作成

・GitHubの公式からアカウントを作成する (https://github.co.jp/)

Gitのダウンロード

・「git for windows」の公式サイトよりインストーラーのダウンロードを行う(https://gitforwindows.org/)
・インストーラーの指示に従いダウンロードを完了させる
 ここからはダウンロードしたファイル内の「Git Bash」を使用していきます。

Gitの設定

・Git Bashを起動し、まずはGitで使用する名前とメールアドレスを設定する

$ git config --global user.name "名前"
$ git config --global user.email "メールアドレス"

SSH Keyの設定

・次のように実行してSSH Keyを作成する

$ ssh-keygen -t rsa -C "メールアドレス"
Generating public/private rsa key pair.
Enter file in which to save the key
(Users/ユーザーネーム/.ssh/id_rsa):

・上のようなメッセージが出たら、Enterキーを押す
・その後にパスワードを入力する (このパスワードは後に使用するので忘れないようにする)
 パスワードの入力後、randmart image が表示されたら成功です。

公開鍵の登録

・GitHubのアカウント → setting → SSH and GPG keys →SSH keys よりNew SSH Keys ボタンを押す
・タイトルをつけ、Keyの部分には公開鍵の内容をコピー&ペーストする
 公開鍵の内容は以下のようにして参照できます。

$ cat /c/Users/ユーザーネーム/.ssh/id_rsa.pub
ssh-rsa (公開鍵の内容)= メールアドレス

・登録が完了するとメールが届く
 以上の設定を行えば、先ほど自分で設定したパスワードを用いて、GitHubに向けた認証と通信が可能になります。

・次のように実行する
 下のようなメッセージが表示されたら成功です。

$ ssh -T git@github.com
Hi 名前! You've successfully authenticated, 
but GitHub does not provide shell access.

コードの公開

コードの公開は次の3ステップで完了します。

①clone

・GitHubでリポジトリを作成する
・cloneする際の指定パスをSSH形式で控えておく

・次のように実行する。

$ git clone 指定パス
$ cd リポジトリ名

完了すると、PC内(ローカル)にフォルダが生成されます。

②commit

・公開したいファイルまたはフォルダを、クローンしたローカルのフォルダに移動させる
・次のように実行する、任意のメッセージの箇所は"Add ファイル名"などとする

$ git add ファイル名、または、"フォルダ名"
$ git commit -m "任意のメッセージ"

③push

・次のように実行する

$ git push 

この操作によってGitHub側のリポジトリが更新されます。

これでGitHubにコードが公開されました!

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

SourceTreeやIDEのプラグインでも.gitmessageのコメントアウトを使用できるようにする

背景

チーム開発をしていると、コミットメッセージにもルールを設けておきたくなる。
そういう時に便利なコミットテンプレート。
.gitmessageを追加すれば、コミット時に定型文を表示してくれる。

プロジェクトでEmoji Prefixを導入したため、
文化に慣れるまでは絵文字の役割や入力方法などを覚えるのが手間だったこともあり、テンプレートを設定しておきたくなった。

しかし、(普段僕はCLIでGitを操作するので知らなかったのだが)SourceTreeやIDEプラグインといった、
GUIでのコミットには.gitmessageのコメントアウトが反映されないとのこと。
参考:https://qiita.com/mfks17/items/e68adc058e1a9e519807#-todo

チーム内ではGUIでGit操作を行っているメンバーもいるため、環境に依存してテンプレートが使えない人が出てくるのを避けたい。
何とかできないか調査した。

結論

↓を、.gitが格納されているディレクトリで入力する。

git config --add commit.cleanup strip

グローバルに設定したくなければ--localオプションをつけるなり、includeIfセクションで分岐させるなりすればよい。
もちろん.gitconfigに直接書いてもよい。

[commit]
        cleanup = strip

何をやっているのか?

--cleanup=<mode>オプションは、コミットする前にコミットメッセージを整形する方法を指定する。

Git | git-commit-Documentation

変数の種類

strip

先頭と末尾の空白行、末尾の空白、コメント(#が前頭についた行)を削除する。

whitespace

先頭と末尾の空白行、末尾の空白を削除。ただし、コメントを削除しない。
SourceTreeの設定はデフォルトでコレかdefaultになっている可能性がある。

default

メッセージを編集するときはstrip、それ以外の時はwhitespaceが適用される。

verbatim

メッセージを変更しない。

scissors

基本的にwhitespaceと同じだが、

# ------------------------> 8 ----------------------- -

というコメント以下の行がすべて削除される。

SourceTreeで設定する方法

GUIツールでGitを操作している人の中にはCLIに苦手意識を持っている人もいるので、操作手順をまとめた。

  1. 作業するリポジトリをSourceTreeで開く
  2. 右上の「設定」>「コミットテンプレート」からコミットテンプレートを設定。設定する範囲はプロジェクトや開発ルールに合わせて
  3. CLIでリポジトリの場所まで移動
  4. git config --add commit.cleanup strip を入力
cd path/to/dir # path/to/dir をテンプレートを適用するリポジトリの場所に変更する

最後に

コミットメッセージはキレイにしましょう:smile:

参考

Gitのコミットコメントを絵文字Prefixにして楽しく開発する | Qiita
Emojiで楽しく綺麗なコミットを手に入れる | Goodpatch Blog

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