- 投稿日:2019-11-26T23:22:42+09:00
Git のリモート操作で毎回パスワード聞かれる件
git の push や pull するときに毎回パスワードきかれて、入力するのが手間なので、どうにかしたいなぁと思いつつ、調べてみると、記事によってまちまちの情報ばかり。
おそらくこれが正しいのかなと思う方法を残しておきます。
bash$ eval `ssh-agent` $ ssh-add ~/.ssh/id_rsaこれで SSH キーが登録されて、パスワード聞かれなくなる。
- 投稿日:2019-11-26T23:14:29+09:00
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のコマンドの意味を正しく理解してより正確に使えるようにして、ついでに英語にも強くなりたいですね。
- 投稿日:2019-11-26T20:16:35+09:00
覚えておきたい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参考情報
- 投稿日:2019-11-26T19:47:33+09:00
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_ERRORfixする対象は作業した(差分のある)ファイルです。
phpのsyntaxなどでエラーが出た場合は別途メッセージが表示されます。
- 投稿日:2019-11-26T13:44:25+09:00
GitHubにローカルのプロジェクトをpushしてみよう!
はじめに
ローカル環境で作成したプロジェクトとGitHubにpushする方法です。
なお、GitのインストールとGitHubアカウントの作成はすでに完了している体で進めていきます。やり方がわからないよーという人は別の記事を参照してみてください。1.GitHub上でリポジトリ作成
最初にGitHubにプロジェクトをpushするリポジトリを作成します。
まず、GitHubにアクセスし、画面右上の+アイコンをクリックします。メニューからNew Repositoryを選択します。
次にリポジトリの情報を追加していきます。リポジトリ名は必須です。必要に応じてDescriptionやlicenseなどを追加しましょう。
入力が完了したらCreate Repositoryを選択します。
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をコピーします。
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でバージョン管理しながらプロジェクトの開発ができますね!
参考文献
- 投稿日:2019-11-26T11:33:21+09:00
トピックブランチの作成
トピックブランチ:機能追加やバグ修正といったある課題に関する作業を行うために作成するブランチのこと。複数の課題に関する作業を同時に行う場合、その数だけトピックブランチを作成する。
トピックブランチの分岐元を統合ブランチという。
git branch
:現在のブランチの確認
git branch 作成するブランチ名
:新しいブランチの作成
git checkout 使用したいブランチ名
:ブランチの変更
(git checkout -b 作成したいブランチ名
:新しいブランチの作成とそのブランチへの切り替えを同時に行う)
- 投稿日:2019-11-26T09:42:25+09:00
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の理解を深めたいのでまたなんかあったら書きます。それでは、また。
チャオ!!!!!
- 投稿日:2019-11-26T02:19:24+09:00
【Git】Gitの基本的なコマンドと流れ【Rails Tutorial 1章まとめ】
Gitによるバージョン管理とコード保存のコマンドと流れを整理?
Gitの初期化
アプリケーションごとに最初に一回だけ行う。
$ git initadd→commit→push
$ git add -A $ git commit -m "comment" $ git pushaddでコミットするファイルを選択する。
-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は省略可。
- 投稿日:2019-11-26T02:01:56+09:00
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を実行する
- 投稿日:2019-11-26T00:52:07+09:00
GitHubへのgit pushで怒られた時の対処(同一リモートリポジトリを多重でcloneしてしまった場合)
こちらの記事作成の過程で、ローカルリポジトリがあるにもかかわらず、同じリモートリポジトリを別ディレクトリにcloneしたところ、git pushするときに怒られた。
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して開発を進めてしまった場合には使えそう。