はんなりと、ゆるやかに

アジャイル、スクラムが好きが日々から学んだことをアウトプット

Git

git diff で コミット間に変更されたファイルの一覧を取得する

Git

git diff で コミット間に変更されたファイルの一覧を取得する方法を確認したのでまとめておきます。 方法 --name-only オプションをつけることで変更があったファイル名だけ出力できます。コミット間はコミットのハッシュ値を「..」で繋げることで指定でき…

GitHub ActionsでPowerShellを実行する

GitHub ActionsでPowerShellを実行する方法を調べて、サンプルコード書いたのでまとめておきます。ワークフローから直接実行するパターンと、ps1ファイルを実行するパターンがあります。今回まとめてみて分かったことは、書き方によって実行されるPowerShell…

現在のブランチ名が取得できる git rev-parse を調べた

Git

git rev-parse --abbrev-ref @ というコマンドを見かけて、「rev-parse?」「--abbrev-ref?」とちんぷんかんぷんだったのでrev-parse コマンドについて調べました。ちなみに、git rev-parse --abbrev-ref @ を実行すると、現在のブランチ名が取得できます。…

GitHub Actions で ビルド→テストを実行する(Windows+C#+NUnit)

はじめに GitHub Enterprise 3.0.0 で GitHub Enterprise にもGitHub Actions が搭載されました。これをきっかけに勉強を始めていきます。 docs.github.com今回はGitHub Acionsで Windows + Visual Studio + C# + nunit でビルドからテストまで実行してみま…

ブラウザ上でGitHubのコードを見るときに便利な方法「1s」

cloneするほどではないけど、GitHubのコードを確認したいときに使える便利方法「1s」を知りました。ブラウザ上のGitHubのコードがVisual Studio Code(VSCode)の見た目と操作方法に変わります。しかも、インストール不要。github.com 操作方法 1.GitHubのリ…

特定のコミットを取り込むGitコマンド:cherry-pick

Git

別ブランチの特定のコミットだけを取り込みたいことはありませんか。そんな時に使えるコマンドが git cherry-pickです。git cherry-pickは特定のコミットだけを取り込めます。 git-scm.com今回の検証に使ったgit version は 2.28.0 です。 変更を取り込む gi…

git 2.28でgit statusにsparse checkout のレポートが追加

Git

git 2.28でgit statusにsparse checkoutのレポートが追加されました。sparse checkoutは過去に記事を書いていますが、リポジトリの一部のディレクトリだけをチェックアウトするコマンドです。不要なオブジェクトを除外してダウンロードできるので、大きなリ…

git2.27以降にgit sparse-checkoutを使う場合はno-checkoutではなくsparseを使おう

Git

以下の記事で紹介したPartial Cloneとgit sparse-checkoutコマンドの組み合わせが、git 2.27 から使えなくなっていました。自分の記事を参考に同じ手順で進めても成功しなかったので気づきました。本記事はgit 2.27 以降で同じようなことをする解決策をまと…

操作履歴を調べるGitコマンド:reflog を使うと間違った操作前に戻れます

Git

push前のブランチを消してしまったり、間違ってresetしてコミット消えたり、したことありませんか。そんな時に使えるコマンドがgit reflogです。git reflogはローカルブランチに対する操作履歴が見れます。その確認した操作履歴から間違う前の操作まで戻れま…

リポジトリの一部だけcheckoutするGitコマンド:sparse-checkout

Git

大きなリポジトリを扱うときにリポジトリの一部だけcloneしたい時があります。そんなときに使えるコマンドがgit sparse-checkoutです。Partial Cloneとgit sparse-checkoutコマンドを使うとリポジトリの一部ディレクトリだけcheckoutできます。 Partial Clon…

git pullでerror: The following untracked …やYour local changes…が出たときの原因と対処

Git

Your local changes to the following files would be overwritten by merge: The following untracked working tree files would be overwritten by merge: この2つのエラーを対処する方法

変更を一時退避するGitコマンド:stash

Git

開発中、最新の環境にしたくてPullしたとき、競合することはありませんか。または急ぎで別の開発を頼まれて今の変更をコミットせずにおいておきたいことはありませんか。そんな時に使えるコマンドがgit stashです。git stashは現在の変更点を一時領域に退避(…

変更された行のコミットを確認するGitコマンド:blame / おすすめのツールはVSCode+GitLens

Git

前回の記事はgit bisectを紹介しました。 iucstscui.hatenablog.com今回は同じくバグ調査に役立つgit blameです。 git blameは変更された行の情報(コミットのハッシュ値や更新者)を確認するコマンドです。誰が変更したか分かれば変更の意図などを確認できま…

バグの混入コミットを発見するGitコマンド:bisect

Git

開発をしているといつの間にかバグが混入することがありますよね。混入タイミングが分からない場合はとりあえず正しく動く時期のコミットを見つけて、バグが発生するまで地道に調べていくと思います。そんなときに使えるコマンドが git bisect です。 git bi…

Git : shallow clone を使ってcloneを早くしよう

Git

テレワークが始まって家で仕事される方も増えましたね。家のネット環境が弱くてgitのcloneが遅いという声を聞くことがあったのでcloneを早くする方法はないかと調べました。 shallow cloneで取得するコミット数を減らす git-scm.com取得するコミット数を減ら…

git restore で変更の取り消し

Git

git checkoutは「指定ブランチに切り替え」と「指定したコミットのファイルをワーキングツリーに復元」ができる機能を持っています。「指定ブランチに切り替え」は git switchでも行えるようになりました(git switch でブランチの切り替え - はんなりと、ゆ…

git switch でブランチの切り替え

Git

git でブランチを切り替えるには "git checkout"を使っていましたが、 Version 2.23.0 から"git switch"が追加されました。 git checkoutはブランチの切り替えと、変更の取り消しの二つの機能として使えるコマンドでした。それゆえ、少し違和感のあるコマン…

意外と知らない? git clean のオプションについて調べた

Git

gitで追跡されていないファイルを再帰的に消したいけど、消せない場合があってgit cleanを調べました。 git cleanとはgitで追跡されていないファイルを削除するコマンド です。 公式ドキュメントはこちら Git - git-clean Documentation git clean に関する…

Gitで別ブランチのフォルダを取得する(コピーする)

Git

Gitで別ブランチのフォルダを取得する際に迷ったのでまとめておきます。 git checkout で取得できる git checkout で取得できるのはファイルだけだと勘違いしていて、調べるのに時間がかかってしましたが、フォルダーも同じように取得できました。 git check…