- 投稿日:2020-03-25T22:41:51+09:00
gitで変更したファイル一覧を出力するコマンド
静的解析ツールのCLIに食わせたかった
動作はmacOS Catalina、bashで確認コミットするファイル一覧を出力する
git diff --cached --name-only --diff-filter=ACMR
- cachedオプションでステージしたファイルを対象にする
- pre-commitフックで使用できる
- name-onlyオプションでファイル名のみを出力する
- diff-filterオプションは結果に含めたい変更の種類に応じて変更
参考 https://git-scm.com/docs/git-diff#Documentation/git-diff.txt---diff-filterACDMRTUXB82308203
動作
$ git add test.php temp/test2.php $ git diff --cached --name-only --diff-filter=ACMR temp/test2.php test.php使用例
- phpstan analyzeコマンドの引数にしたい場合
$ PATHS=$(git diff --cached --name-only --diff-filter=ACMR | tr '\n' ' ' 2>&1) $ echo "phpstan analyze $PATHS --level max" phpstan analyze temp/test2.php test.php --level maxブランチで変更したファイル一覧を出力する
git diff --name-only master...$CURRENT_BRANCH
- master…$CURRENT_BRANCH間の.を3つにすることでブランチの変更ファイルのみを対象にしている
参考 https://devconnected.com/how-to-compare-two-git-branches/
動作
# --show-currentオプションはgit v2.22〜 $ CURRENT_BRANCH=$(git branch --show-current 2>&1) $ git diff --name-only master...$CURRENT_BRANCH test.php使用例はコミットの場合と同様なので割愛
- 投稿日:2020-03-25T21:27:52+09:00
【初心者向け】git feature branch作成からpushするまで(備忘録)
会社の研修で先輩のコードレビューを受けるために、gitのリモートリポジトリにプッシュすることがありました。
featureブランチの作成
略してfeatと書くこともある。
$ git branch #現在自分がいるブランチの確認 $ git branch feature #featureブランチ作成 $ git checkout feature #featureブランチへ移動 (変更後、、、) $ git add . #ファイルをインデックスに丸ごと移動 $ git commit -m "message" # ローカルリポジトリへコミット $ git push origin feature # featureブランチの内容をoriginへアップロードこれで行けました。
追記するかもしれません。
- 投稿日:2020-03-25T19:16:55+09:00
対象のリポジトリが大きすぎてgit cloneできない時の対処法
備忘録として。
エラー内容: packet_write_wait: Broken pipe
リモートリポジトリのサイズがクライアント側の受け入れ容量を超えてしまい、
git clone
時に以下のエラーが出る。$ git clone ssh://~ sample Cloning into 'sample'... remote: Counting objects: 1556, done. packet_write_wait: Connection to ~ port ~: Broken pipe fatal: the remote end hung up unexpectedly fatal: early EOF fatal: index-pack faile解決
gitクライアント側でバッファの容量をとりあえず20MBまで増やしてあげる。
$ git config --global http.postBuffer 20M
- 投稿日:2020-03-25T17:59:39+09:00
Githubで自分のリポジトリに他のユーザーを招待する方法
- 投稿日:2020-03-25T17:03:27+09:00
Visual Studio Online の始め方 ~環境構築時代の終焉~
GitHub
https://github.com/RZ-git/vso-test-environment
Visual Studio Online始め方メモ
1.Visual Studio Onlineって? クラウド版IDEで、ネット環境さえあれば使えるVisual Studio Codeみたいなもの。 2. 始め方 公式サイトに飛ぶ https://visualstudio.microsoft.com/ja/services/visual-studio-online/ [開始する] => [Create environment] 環境名、連携するGitリポジトリのURLを入力 マシンタイプを選択 Createするとビルドが開始されるから1分くらい待つ 後は拡張機能入れたりする。 ※ファイル作ったりすると。足りない拡張機能に関するポップアップが右下に出るから迷うことはない ここまで5分程度 3.料金体系 接続している間は課金される4.使ってみて 環境構築迄のスピードが速い。速すぎる。 予め開発に必要な環境が整ってる。アップデートとかはしてくれるかは不明。 Gitは連携もしてるし当然インストールされてる。
- 投稿日:2020-03-25T11:49:43+09:00
gitの競合解消及びdevelop最新版反映
仕事でgit利用していて、リリースの時、競合が結構頻繁にありますので、解決手順をメモしときます。
競合解消
$ git fetch origin develop git checkout feature/XXX $ git merge FETCH_HEAD 手動で解消して $ git add . $ git commit -m "リリース" $ git push origin HEADdevelopの最新版を反映
Bash$ git branch develop * feature/XXX # 一旦ファイルをコミットしても良いが、stashで一時的に別の場所に退避しても良い git stash git checkout develop git pull origin develop git checkout feature/XXX git merge develop あるいは git rebase develop # 退避した変更を適用しなおす $ git stash pop
- 投稿日:2020-03-25T04:17:27+09:00
gitとgithub
はじめに
Gitとは
Gitはバージョン管理システム
バージョン管理すると何が嬉しいのか
- どのファイルの誰がいつ何のために変化したかを残せるGitの仕組み
変更履歴を順々に記録する。記録する際にメッセージをつける。
流れ
- pull
- 共有レポジトリを共有
- レポジトリ
- 変更履歴を記録する場所
- commit
- 個人レポジトリに変更履歴を記録
- push
- 共有レポジトリに登録
GitHubとは
Gitリポジトリのホスティングサービス
特徴
- プルリクエストによるコラボレーション
- 他チームのソフトウェアを見れる
Gitの初期設定
登録
' - git config --global user.name "name" '
' - git config --global user.email mailadress.com 'ローカルレポジトリ作成
- リポジトリとはファイルやディレクトリの状態、変更履歴を記録する場所 ' git init ' .gitディレクトリが作成される
流れ
- ファイルの変更をステージングエリアへ追加する git add
- ローカルリポジトリにコミットする git commit
- リモートリポジトリにプッシュする git push
ブラウザ側でレポジトリを作っておく。
' git remote add origin /// '変更をコミット
- ステージエリアへ追加 git add .ですべて入れることができる
- コミットして変更を記録する。変更にメッセージをつけて記録できる。
- 1行目:変更内容のようやく
- 2行目:空行
- 3行目:変更の理由
- git statusで状態を見れる。緑色になっているとaddされている。最新のgit commitしたものからの変化を見ることができる。
- git logで過去のログを見れる --oneline 一行で表示する -p ファイルの差分を表示
色々な変更をコミットできる
git rmで削除したものをコミットできる
git diff add commitする前に確認する。ステージとcommitとの差をみたいときは--HEADをつけるプッシュする
- 送信
- git push origin master 登録したgithubに送られる
- git push origin feature
Gitの管理から外す
.gitignoreファイルを指定することで、ファイルをGitの管理から外すことができる
自動生成されるファイルやパスワードが記載されているファイル
.gitignoreファイルの書き方
- ファイルを指定、ルートを指定
- コミットしてしまった場合 git rmを使う
- git rm --cachedファイルを無くせる gitignore必須
- 投稿日:2020-03-25T01:57:01+09:00
git pushしたらPermission deniedで403エラーになるときの対処法
git pushしたらエラーで返ってきた!!
会社用と個人用のアカウントを使い分けていたのですが、なぜかpushできなくなりエラーで返ってきてしまいました...
remote: Permission to ユーザー名/リポジトリ名.git denied to 別のユーザー名. fatal: unable to access 'https://github.com/ユーザー名/リポジトリ名.git/': The requested URL returned error: 403そこで
~/.gitconfig
ファイルにメインアカウントとメールアドレスを設定$ git config --global user.name "メインアカウント" $ git config --global user.email "メインアカウントメールアドレス"確認
$ cat ~/.gitconfig [user] name = メインアカウント email = メインアカウントメールアドレスこれでもう一度push
$ git push origin master全然変わらない...
もう一度
~/.gitconfig
ファイルを書き換える$ vi ~/.gitconfig [remote "origin"] url = https://github.com/ユーザー名/リポジトリ名.gitこれにユーザー名とパスワードを追記する
[remote "origin"] url = https://ユーザー名:パスワード@github.com/ユーザー名/リポジトリ名.gitこれでひとまずpushはできるように...
でもこれでは根本の解決にはならないので、PCの方の設定も確認してみました。どうやらキーチェーンから認証情報を更新しなければいけないらしい。
[Finder] で、Keychain Access アプリケーションを検索
青い@のgithub.com(インターネットパスワード)が2つ見つかったので、これを編集または削除する。
これでもう一度
~/.gitconfig
ファイルも元に戻してpush!
無事、できました!mac自体がログイン情報を保存して、それを使い続けるということらしいです...
よかったー
- 投稿日:2020-03-25T01:19:21+09:00
Githubでのプログラム修正の流れ その3
はじめに
以下の記事の続きです。
Githubでのプログラム修正の流れ その1
Githubでのプログラム修正の流れ その2今回の記事に出てくる言葉
用語 意味 リポジトリ ファイルやディレクトリの
変更履歴を保管しておくものローカルリポジトリ 自分のPC上にあるリポジトリ リモートリポジトリ インターネット上に存在するリポジトリ
GitHubやbitbucket等コミット ファイルの修正や追加をローカルリポジトリに
変更履歴として記録することブランチ 変更履歴の流れを分岐して記録していく物。masterブランチという大元があり、そこからブランチ(枝)が分かれている、、、というイメージ。修正する機能ごとにブランチを作り、プログラム修正が完了したらmasterブランチに反映する。 プルリクエスト ローカルリポジトリで修正したコードに対して、レビュー依頼をすること マージ ブランチでの修正内容ををmasterブランチに反映すること ファイル修正
前回の記事まででブランチの作成はできていると思うので、早速ファイルを修正してみましょう。
こんな感じで「hello world」から「hello world!!!」にしてみます。
するとGitHubDesktop上に変更前と変更後の比較が表示されます。
続いて、publish branchを押下してローカルリポジトリの内容をリモートリポジトリに反映します。
プルリクエストを出す
Create Pull Requestを押下してプルリクエストを出しましょう。
するとブラウザでGitHubが開かれるはずなので、何をどのような目的で修正したのか記入してCreate pull request押下しましょう。これでプルリクエストは完了です。
レビュー
レビュアーから修正依頼がきたら、その都度対応しましょう。
今回は以下のような修正依頼が来たとします。
修正内容を確認し、レビュアーからの指摘が無くなるまでファイルの修正→コミット→プルリクエストを繰り返します。マージ
指摘反映が完了したら、Merge pull requestボタン押下 → Confirm meergeボタン押下でmasterブランチへの反映は完了です。
これで完了
以上がGitHubプログラム修正の流れとなります。他にもいろいろな機能があるので、Gitを使いこなして効率の良い開発を進めましょう!
- 投稿日:2020-03-25T00:44:13+09:00
Reinitialized existing Git repository in が出たときの対処法
はじめに
ただの備忘録のうちのひとつ。将来のために、、、
git init したときのやつ
$ git init Reinitialized existing Git repository in ~結論:やることない
特にやることない。Reinitializedとか言うから「初期化して最初から⁉」とか思ってたけどそうではないらしい。
関係ないけど
名前とメールの確認もたまにしたくなる
$git config --global --list user.name=hogehoge user.email=hoge@gmail.com参考
https://qiita.com/ragingalpaca/items/ef247e459ff2e7759ba9
https://hacknote.jp/archives/15745/