20191126のGitに関する記事は10件です。

Git のリモート操作で毎回パスワード聞かれる件

git の push や pull するときに毎回パスワードきかれて、入力するのが手間なので、どうにかしたいなぁと思いつつ、調べてみると、記事によってまちまちの情報ばかり。

おそらくこれが正しいのかなと思う方法を残しておきます。

bash
$ eval `ssh-agent`
$ ssh-add ~/.ssh/id_rsa

これで SSH キーが登録されて、パスワード聞かれなくなる。

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

Gitのコマンド With 英単語

この記事はこちらのブログ記事をQiitaに移したものです。

普段よく使っているGitコマンド。でも、意外とその意味については十分に理解していないのかもしれません。というのも、Gitのオプションの単語で日常あまり使わないなーという単語が結構あるような気がします。
今回はGitのコマンドに出てくる単語をGooのオンライン英和辞典で調べてみようと思います。

commit 身を委ねる、引き渡す、約束させる
git add (変更したファイル名)で変更をインデックスに上げて、git commit -m "コメント"でインデックスに上がっている変更を確定させるというのは基本中の基本。
で、commitを調べると、身を委ねるとか引き渡すとかの他に(犯罪を)犯すとか物騒な意味も。まあGitのコマンドの場合は変更内容をリポジトリに引き渡すとかそんな感じだろう。
余談だけど、ライザップのCMで良く言っている「結果にコミット」は、どちらかというと約束させるとかに近いのかな。

amend 訂正する、改良する、修理する
上のgit commitで変更内容をコメントとともにリポジトリに渡したはいいが、コメントに間違ったことを書いてしまったとか、たまにありますよね。こんな時はgit commit --amendと打つと、エディタが開いてコメントを訂正することができます。1番目の意味そのまんまですね、変なコメントが残ったままだと何かと格好悪いので、コメントを間違えた!という時はこのコマンドを使いましょう。

revert (元の習慣・状態・話題などに)戻る,(元の考え・議論に)立ち帰る,戻る,(…を)顧みる,回顧する
上のamendはコミットコメントを修正するものですが、コミットそのものをなかったことにしたい場合もあります(なるべく避けたいケースですが)。そんな場合はgit revert ***(コミットID)でコミットを打ち消します。この場合は、まさに元の状態に戻るという意味ですね。

stash  …を(秘密の場所に)しまっておく,かたづけておく,隠しておく
作業の途中で別のブランチに切り替えて作業したりするときに現在の変更を一時的に退避しておくときにgit stashを使います。stashの詳しい使い方はこの記事が参考になります。
秘密の場所というと大げさですが、一時的に別の場所にしまっておくという感じですね。

fetch 行って取ってくる、奪い取る、もたらす
最近だとgit pull origin masterでリモートブランチの中身をローカルに取り込んで更新することが多いのでgit fetchはそんなに使うことはないのですが、git fetchでリモートの更新内容をローカルに持ってきて、git merge origin masterで持ってきた内容に更新するということなので、意味は知っておいたほうがいいと思います。
fetchという単語は色々な意味があるようですが、この場合は行って取ってくるに近いですね。

rebase 新しいベース[土台・基準レベル]を~に設定する
この単語はGooのオンライン辞典ではなかったので、アルクの英辞郎 on the webで調べました。
チーム開発ではよく使うコマンドで、マスターブランチ(例えばdevelopとします)を他の人が更新したとき、git rebase developで更新内容を自分が今いるブランチに取り込んで、自分のブランチを最新のdevelopから派生したようにすることです。詳細な説明はこちらの記事をみてください。
英単語としてはそんなに使う単語ではないようですが、新しいベースに設定するという意味を見ると、なるほどという感じですね。
それ以外だと、歯科医が義歯の交換をするなどの意味で使うようです。

gitのコマンドの意味を正しく理解してより正確に使えるようにして、ついでに英語にも強くなりたいですね。

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

覚えておきたいGitコマンドまとめ

TL;DR

  • gitコマンドの個人的備忘録です。

実行環境

ハードウェア

項目 情報
OS macOS Catalina(10.15.6)
ハードウェア MacBook Pro (13-inch, 2019, Two Thunderbolt 3 ports)
プロセッサ 1.4 GHz クアッドコアIntel Core i5
メモリ 16 GB 2133 MHz LPDDR3

コマンド

設定

fetchするたびに、pruneを実行

terminal
$ git config --global fetch.prune true

reset コミットを取り消す

コミットのみ取り消して、変更自体は残す

terminal
$ git reset --soft HEAD^

コミット・変更を全て取り消す

terminal
$ git reset --hard HEAD^

rebase 複数のコミットをまとめる

$ git rebase -i HEAD~n

リモートブランチから、ローカルブランチを作成

$ git checkout -b LOCAL_NAME origin/REMOTE_NAME

参考情報

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

pre-commit時にphp-cs-fixierを走らせる

作業者それぞれ書き方にブレがあるとウガーってなりますよね。
コミット時にphp-cs-fixierを走らせて強制的にfixするようにします。

pre-commitのファイルを作成します

リポジトリの.gitディレクトリの中にあるpre-commit.sampleファイルをリネームコピーします。

cp .git/hooks/pre-commit.sample .git/hooks/pre-commit

pre-commitファイル

pre-commitファイルに下記を記述します。

#!/bin/sh

# php-cs-fixerを適用してからコミットします

if git rev-parse --verify HEAD >/dev/null 2>&1
then
  against=HEAD
else
  # Initial commit: diff against an empty tree object
  against=$(git hash-object -t tree /dev/null)
fi

# If you want to allow non-ASCII filenames set this variable to true.
allownonascii=$(git config --bool hooks.allownonascii)

# Redirect output to stderr.
exec 1>&2

# 終了コード
IS_ERROR=0

# 区切り文字を改行のみにする
IFS=$'\n'

for FILE in `git diff --cached --name-only --diff-filter=d | grep .php`; do
  if php -l $FILE; then
    php-cs-fixer fix $FILE
    git add $FILE
  else
    IS_ERROR=1
  fi
done

if [ $IS_ERROR -eq 1 ] ; then
  echo syntax error was detected. please correct.
fi

exit $IS_ERROR

fixする対象は作業した(差分のある)ファイルです。
phpのsyntaxなどでエラーが出た場合は別途メッセージが表示されます。

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

GitHubにローカルのプロジェクトをpushしてみよう!

はじめに

ローカル環境で作成したプロジェクトとGitHubにpushする方法です。
なお、GitのインストールとGitHubアカウントの作成はすでに完了している体で進めていきます。やり方がわからないよーという人は別の記事を参照してみてください。

1.GitHub上でリポジトリ作成

最初にGitHubにプロジェクトをpushするリポジトリを作成します。
まず、GitHubにアクセスし、画面右上の+アイコンをクリックします。メニューからNew Repositoryを選択します。
スクリーンショット 2019-11-26 13.08.43.png

次にリポジトリの情報を追加していきます。リポジトリ名は必須です。必要に応じてDescriptionやlicenseなどを追加しましょう。
スクリーンショット 2019-11-26 13.11.51.png

入力が完了したらCreate Repositoryを選択します。

以下の画面が表示されたらリポジトリの作成が完了しました。
スクリーンショット 2019-11-26 13.14.39.png

2.ローカルの環境をgit initする

次にpushしたいファイルのディレクトリに移動し下記コマンドを実行します。

$ git init
$ git add .
$ git commit -m ‘First commit.’

1つずつ軽い解説をします。

git initはリポジトリを新規作成するときに使用するコマンドです。pushしたいプロジェクトのディレクトリまで移動し、git initを実行します。

完了したら次にgit add .を実行します。git add .はワーキング・ツリーの中でコンテンツ(ファイルなど)を見つけてインデックスに追加するコマンドです。(ワーキング・ツリーやインデックスの説明はここでは割愛します。気になる人は調べてみてください。)

最後にgit commit -m ‘First commit.’を実行します。これでコンテンツが先程git initで作成したリポジトリに追加されます。-mはコミット時のメッセージを記述するオプションです。ここでは最初のコミットなのでFirst commitにしています。

3.リモートリポジトリ(GitHub)の登録

先程作成したGitHubのリポジトリを登録します。GitHub上で作成したリポジトリのページにアクセスします。1番上に出ているURLをコピーします。
スクリーンショット 2019-11-26 13.31.21.png

pushしたいプロジェクトのディレクトリで

$ git remote add origin 上記画面でコピーした内容

を実行します。
具体的には

$ git remote add origin https://github.com/Shinnopo/NewRepository.git

のようになると思います。

これでリモートリポジトリの登録が完了しました。

4.GitHubにpush

いよいよGitHubにpushします。
先程と同じディレクトリで

$ git push origin master

を実行します。

GitHubのリポジトリにアクセスしてファイルが追加されていたら成功です!

なお、すべてのファイルをpushしたいときは

$ git push -u origin --all

を実行すればOKです。

まとめ

これでローカル上のプロジェクトをGitHubにpushすることができました。今後はGitHubでバージョン管理しながらプロジェクトの開発ができますね!

参考文献

https://blog.urouro.net/entry/2012/12/22/164157

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

トピックブランチの作成

トピックブランチ:機能追加やバグ修正といったある課題に関する作業を行うために作成するブランチのこと。複数の課題に関する作業を同時に行う場合、その数だけトピックブランチを作成する。
トピックブランチの分岐元を統合ブランチという。

  1. git branch:現在のブランチの確認

  2. git branch 作成するブランチ名:新しいブランチの作成

  3. git checkout 使用したいブランチ名:ブランチの変更
    (git checkout -b 作成したいブランチ名:新しいブランチの作成とそのブランチへの切り替えを同時に行う)

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

Githubの使い方を忘れないようにメモする。

とりあえずgitを使う

そもそもgitを使おうと思ったのは、就活用として必要なのでは?と言うこととあまりにもtwitterの強い人たちがGitHubやらなんやら言っていあせってました。くそおお!!!自分もつかいたい!!

そんなこんなで使い始めようと決意。まず、GitとGitHubの違いって何?みたいなレベルなのでその段階から調べることにしました。
↓を参考にしました。
https://t.co/g9Bp31FtKM?amp=1

目標は以下の環境でコードを書いてgithubにpushすること
windows10
vscode
python3.7
コマンドプロンプト
gitのダウンロード(調べれば出てくる)

gitにpushするまでの流れ

GitHubの使い方
①コードを書く「保存)
②コマンドプロンプトでコードが書いてある(cd)フォルダを開く
③git init (すでにレポジトリがあるときはいらない)
④git add 書いたファイルの名前~.py
⑤git commit -m "なんかコメント"
⑥録GitHubでニューレポジトリを作る。(すでにレポジトリがあるときはいらない)
⑦GitHubページに書いてある。git remote addの所をコピペ(すでにレポジトリがあるときはいらない)
⑧git push -u origin master

完了

まとめ

今回でGitHubを完全に理解したわけだが(嘘です)もっとgitの理解を深めたいのでまたなんかあったら書きます。それでは、また。

チャオ!!!!!

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

【Git】Gitの基本的なコマンドと流れ【Rails Tutorial 1章まとめ】

Gitによるバージョン管理とコード保存のコマンドと流れを整理?

Gitの初期化

アプリケーションごとに最初に一回だけ行う。

$ git init

add→commit→push

$ git add -A
$ git commit -m "comment"
$ git push

addでコミットするファイルを選択する。
-Aは全てのファイルを選択するオプション。
個別のファイル・ディレクトリを選択する場合は、addの後にファイル名・ディレクトリ名を置く。
特定の拡張子のファイルのみを選択する場合は、*.jsのようにする。
コミットの前に$ git statusで状態を確認できる。

commitで選択したファイルをローカルレポジトリ(要は自分のパソコン)に保存する。
-m "comment"のようにしてコメントを付ける。
コメントは命令形で書くのが慣例。
コミット後は$ git logでコミットメッセージの履歴を確認できる。
ちなみに-aをつけることで新規ファイル以外の全ての変更をcommitできるため、addは不要。

pushでGithubにファイルを保存する。
最初はGithubでレポジトリを作成した際に表示される「…or push an existing repository from the command line」のところにあるコマンドをコピペして使用する。
以降は$ git pushのみでOK。

トピックブランチの使い方

作業の大枠ごとにブランチを作って作業する。

$ git checkout -b ブランチ名
$ git checkout master
$ git merge ブランチ名

$ git branch -d ブランチ名

checkoutでブランチを切り替える。
-bを付けてブランチ名を入力することで、ブランチの作成と切り替えを同時に行える。
コードを書き終わったらmasterブランチに戻る。
mergeでブランチの変更をmasterブランチに適用する。
トピックブランチが不要であれば、-dを用いてトピックブランチを削除できる。
ちなみに-Dとすると、マージ前でもブランチを削除できる。
ブランチの一覧と、今どのブランチを使用しているかは$ git branchで確認できる。

herokuへpush

$ git push heroku master

本番環境のherokuにコードをプッシュする。
masterは省略可。

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

Gitでローカルリポジトリを作成して、Salesforceソース管理する

1.Gitインストールする
2.TortoiseGitインストールする

3.ロカールでフォルダを作成する(例として:Sampleフォルダ)
4.Sampleフォルダ下に、[git init]コマンドを実行して、ロカールリポジトリを作成する
  C:\Sample>git init

5.VSCodeでSalesforceソース取得して、Sampleフォルダ下に保存する
6.下記のコマンドでSalesforceソースをロカールリポジトリに追加する
  C:\Sample>git add .
  C:\Sample>git commit -m メッセージ
7.または、フォルダ選択して、右クリックして、TortoiseGitでコミットする
  TortoiseGit ⇒ 追加 ⇒ Gitコミット(C)
8.修正・追加があれば、上記の6OR7を実行する

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

GitHubへのgit pushで怒られた時の対処(同一リモートリポジトリを多重でcloneしてしまった場合)

こちらの記事作成の過程で、ローカルリポジトリがあるにもかかわらず、同じリモートリポジトリを別ディレクトリにcloneしたところ、git pushするときに怒られた。

GitHubリモートリポジトリをローカルにcloneする

k_kanazawa@MyComputer MINGW64 /c/kana/dev (master)
$ git push
To https://github.com/kanazwk/dev.git
 ! [rejected]        master -> master (fetch first)
error: failed to push some refs to 'https://github.com/kanazwk/dev.git'
hint: Updates were rejected because the remote contains work that you do
hint: not have locally. This is usually caused by another repository pushing
hint: to the same ref. You may want to first integrate the remote changes
hint: (e.g., 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.

k_kanazawa@MyComputer MINGW64 /c/kana/dev (master)
$

・fetch firstがいるからpushできません
・another repository pushingしてんじゃないの
・git pullしてからやってみたら

ここでgit fetchをためすといいらしいので以下の通り実行。

k_kanazawa@MyComputer MINGW64 /c/kana/dev (master)
$ git fetch
remote: Enumerating objects: 4, done.
remote: Counting objects: 100% (4/4), done.
remote: Compressing objects: 100% (1/1), done.
remote: Total 3 (delta 1), reused 3 (delta 1), pack-reused 0
Unpacking objects: 100% (3/3), done.
From https://github.com/kanazwk/dev
   f41d5ac..c968ccd  master     -> origin/master

k_kanazawa@MyComputer MINGW64 /c/kana/dev (master)
$

通ったのでローカルリポジトリをgit mergeする。
カレント以外の同じローカルリポジトリは消え、統合されるので注意が必要。

k_kanazawa@MyComputer MINGW64 /c/kana/dev (master)
$ git merge origin/master
Merge made by the 'recursive' strategy.
 QIITAARTICLE.txt | 0
 1 file changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 QIITAARTICLE.txt

k_kanazawa@MyComputer MINGW64 /c/kana/dev (master)
$

merge完了後、git pushを実行すると成功。

k_kanazawa@MyComputer MINGW64 /c/kana/dev (master)
$ git push -u origin master
Enumerating objects: 9, done.
Counting objects: 100% (9/9), done.
Delta compression using up to 4 threads
Compressing objects: 100% (7/7), done.
Writing objects: 100% (7/7), 1.02 KiB | 131.00 KiB/s, done.
Total 7 (delta 2), reused 0 (delta 0)
remote: Resolving deltas: 100% (2/2), completed with 1 local object.
To https://github.com/kanazwk/dev.git
   c968ccd..4b9413d  master -> master
Branch 'master' set up to track remote branch 'master' from 'origin'.

k_kanazawa@MyComputer MINGW64 /c/kana/dev (master)
$

まとめ

本来ならbranch切るなり、リポジトリをforkするなりしてローカルリポジトリにcloneするのが使い方なのだろうけど、うっかり多重でcloneして開発を進めてしまった場合には使えそう。

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