Gitでファイルを管理しない方法としては.gitignoreや.git/info/excludeに記述する方法があります。 これらの方法はGitでまだ管理されていない(Untracked)ファイルに対して行うものです。 しかし、既にGitで管理されているファイルをローカルで修正しても無視してもらいたいときがないでしょうか? 例えば、アプリケーションの設定ファイルをローカル用に少しだけ変更するときなど、Gitの管理から除外したいですよね。 今回は既にGitで管理されているファイルをローカルで修正しても無視できるような設定と確認方法について説明します。 方法は2つあります。 git update-index –skip-worktree まずはgit update-index --skip-worktreeについてです。 どんな時に使う? --skip-worktreeはローカルでファイルが変
はじめに 突然ですがみなさんはgit blameしてますか? 私は毎日git blameしています! git blameした結果、その差分をコミットしたのは過去の自分と知るのは日常茶飯事です。 git blameはコードリーディングの強力な味方ですが、LinterやFormatterをコードベース全体に適用すると、差分の情報がそれらで上書きされてしまい情報量が減ってしまいます。 そのような場合はgit historyで歴史を遡るしかないのでしょうか? いいえ、git v2.23から追加された--ignore-revオプションで指定したコミットをblameから除外することができるようになりました。 git blame --ignore-revの使い方 --ignore-revにコミットハッシュを渡すとそのコミットはblameから除外されます。 # コミットハッシュは架空のものです $ git
この記事はGit Advent Calendar 2013の12日目の記事です. 前日は@sonotsさんのgit current-branch, git fetch-pulls, git pull-dry-run など git alias ネタでした. gitはコマンドを実行するとき,まずgit --exec-pathのパスの中からコマンドを探し,なければユーザーのPATHの中からコマンドを探して実行します. そのためPATHの通った場所にgit-コマンド名という実行ファイルを置くだけでユーザーが自由にサブコマンドを作れる便利な仕組みとなっています. ということで,pythonでgitのサブコマンドを作ってみました. git-ls-date ton1517/git-ls-date このサブコマンドはファイルを最初にコミットした日付と最後にコミットした日付(とそのハッシュ)を表示するコマン
# ~/.gitconfig file [alias] gone = "!f() { git fetch --all --prune; git branch -vv | awk '/: gone]/{print $1}' | xargs git branch -D; }; f" If your git workflow is using Pull Requests that are merged into main branch, after a while your local list of branches will get very messy, because most of the time the PR is merged and remote branch is deleted. However on local you just create a new branch f
Gitでブランチ(コミット)間の違いを表示するgit diffコマンドに存在するダブルドット(..)記法とトリプルドット(...)記法の違いについて、Stackoverflowの分かりやすい回答。 「git diffコマンドで比較する時のダブルドット(..)とトリプルドット(...)の違いとは?」という質問へのMark Longair氏の回答 git diffコマンドは通常(「通常」というのは、例えばマージコンフリクトを解消する際などには3ウェイマージを表示することがあるため)、コミットグラフにおける完全な2つのポイント間のツリーの状態の違いを表示します。git diffでの..と...の表記は、以下の意味になります。 言い換えると、git diff foo..barはgit diff foo barと完全に同じです。どちらも2つのブランチfooとbarの最新の変更同士の違いを表示します。
緊急新人エンジニア応援企画! ということで自分が Git のエイリアスとして設定している便利コマンドを紹介していく。 直前のコミットに追いコミットする (git fixit) git commit --amend --no-edit もろもろ整えて git push しよう、とすると「あっちょっと修正したい」となるのはよくあること。その際いちいちコミットメッセージを書いて rebase するかというとそんな面倒はとりたくなく、一撃で終わらせたい。--no-edit でコミットメッセージを編集せずに --amend できる。 git fixit に設定している。git commit の引数をそのまま受け付けるので、git fixit -a や git fixit <file> のように使える。 メインブランチに戻る (git com) f() { remote_head=$(git symb
背景 railsでdelay_jobやwheneverを実装し、ローカル開発環境では問題なくジョブが走った。 しかし本番環境にデプロイ後、ジョブが走らなかった。 エラーログを確認したところrailsのbinディレクトリ以下の各ファイルの権限が644となっており、実行権限がないことが判明。 だとしたら、ローカル開発環境でも動かないはずだろ?? そんな思いからいろいろ調べてみた。 windows環境でのgitbashはchmodが効かない!! chmod 777 ファイル名してもchmod 644 ファイル名してもchmod o+w ファイル名しても何しようが権限が変更されない。 大丈夫! これはwindowsの仕様の問題らしい。 なのでスッキリあきらめよう! git addするとパーミッションが自動的に変更され644になってしまう!! これはgitの仕様。 おそらくですが、大規模開発を想定し
Conventional Commits 人間と機械が読みやすく、意味のあるコミットメッセージにするための仕様 Conventional Commits 1.0.0 概要 Conventional Commits の仕様はコミットメッセージのための軽量の規約です。 明示的なコミット履歴を作成するための簡単なルールを提供します。この規則に従うことで自動化ツールの導入を簡単にします。 コミットメッセージで機能追加・修正・破壊的変更などを説明することで、この規約は SemVer と協調動作します。 コミットメッセージは次のような形にする必要があります: 原文: <type>[optional scope]: <description> [optional body] [optional footer(s)] 訳: <型>[任意 スコープ]: <タイトル> [任意 本文] [任意 フッター] あな
こんにちは、@yoheiMuneです。 Gitを使って開発をしていると、時々自分だけgitignoreにしたいファイルができます(例えばエディタのメタファイルとか)。そのようなファイルを、自分の環境からバージョン管理から外す方法をブログに書きたいと思います。 特定のプロジェクトにある指定したファイルを、自分だけgitignoreしたい 掲題のような場合には、.git/info/excludeのファイルにバージョン管理外にしたいファイルを指定します。 # .git/info/exclude my-gitignore-target.txt すると、ファイルをGitレポジトリ上に追加しても、バージョン管理対象外になります。 # ファイルを追加する $ touch my-gitignore-target.txt # しかし、バージョン管理対象に入らない $ git status # On bran
B! 19 0 0 0 Gitで長いコマンドをエイリアスにして短いコマンドにしておくと便利ですが、 ちょっと複雑なことまでやろうとした場合について。 git config alias 外部コマンドを渡す 引数を渡す 実行されるディレクトリ より長いコマンド サブコマンドを作る まとめ git config alias Gitでエイリアスを追加したい時は $ git config --global alias.st status などとすると、~/.gitconfigへ [alias] st = status という行が付け加えられ、今後 $ git st とすると、git statusとした時と同じ結果が見られます。 --globalを除けば現在の作業リポジトリのみに反映される様に.git/configへ追加されます。 もちろん、~/.gitconfig等に直接[alias]下にコマンドを
Windows GitBash のプロンプト表示がやたらと遅い。何のコマンドも打たずに Enter を押しただけでも、何か表示がつっかえる。 何が原因かと思って調べてみたところ、どうも GitBash デフォルトのプロンプト内に設定されている __git_ps1 という関数が遅いようだ。 その証拠に、プロンプトを PS1='$ ' と簡素化すると、かなりサクサク動くようになった。 It looks like there problem lies in your bash prompt setting. Try setting PS1='$ ' so that whatever fancy prompt setting is deactivated, then see if it is still slow to you. 参考:Git Bash (mintty) is extremely
最近発見したGitHubのTemplate Repository機能の紹介です。 リンターやらテストライブラリの設定等は、ほぼどの環境でも行いますが毎回設定するのは地味に面倒ですよね。 GitHubのTemplate Repository機能を使えばその環境構築が不要で、本質的な開発をすぐに始められるようになります。 GitHubのTemplate Repositoryとは? あるリポジトリのコードベースをそっくりそのまま新規のリポジトリ作成で利用できる機能です。 「え、それってforkと違うの?」っと思った方もいるかもですが、以下の点でforkとは異なります。 1つのリポジトリから複数作成できる(forkだと、同名のリポジトリとなるので1人のユーザー内で複数作成は不可) 元となったリポジトリのコミット履歴を継承せず、クリーンな状態でスタートできる 使い方 以下実際にTemplate Re
はじめに サーバのID/Passwordをソースにべた書きして開発することは誰しもあるかと思います。しかし先日話題になっていた「AWSから120万円の高額請求が来た話」というQiitaエントリのように、public gitリポジトリにAWSのアクセス情報を置こうものならばあっという間に悪用されてしまいます。 そんな他人に知られると悪用されかねない情報は「他人が容易にアクセス可能な場所に置かないこと」が鉄則なのですが、心掛けだけではどうやってもヒューマンエラーを避けることができません。そこで本エントリでは、そういったヒューマンエラーが起きた際の水際防止策として「gitリポジトリへのアクセス情報(ID/Passwordなど)の含まれたファイルのコミット」を機械的にリジェクトするgit-secretsの使い方を簡単に紹介します。1 Q: git-secretsは何ができる? A: gitのcom
Latest topics > GitHubに多数ある自分のリポジトリのデフォルトブランチをmasterからtrunkに切り替えた 宣伝。日経LinuxにてLinuxの基礎?を紹介する漫画「シス管系女子」を連載させていただいています。 以下の特設サイトにて、単行本まんがでわかるLinux シス管系女子の試し読みが可能! « ポジショントークに騙されないようにしたいし、狭い視野でポジショントークじみた極論を言うよりも、メリットとデメリット両方を把握した上でソフトランディングを図っていきたい Main Chromiumのコミットメッセージの「よりinclusiveにする」とはどういう意味か、GitHubがしている事の何がキナ臭いのか » GitHubに多数ある自分のリポジトリのデフォルトブランチをmasterからtrunkに切り替えた - Jun 12, 2020 Gitのデフォルトブランチ名
使い分けの基準 .gitkeep と .gitignore は、「空のディレクトリにファイルが追加されたときに、そのファイルを Git での管理対象に含めたいか?」という基準で、使い分けられます。 含めたい場合は .gitkeep 、含めたくない場合は .gitignore を使います。 .gitkeep を使う基準と例 .gitkeepは、「デフォルトではファイルが存在しないけれど、ファイルが追加されたら、そのファイルを Git での管理対象にしたい」場合 に使います。 例えば、lumen の databse/migration ディレクトリなどは、良い例です。 このディレクトリは、データベースの初期化をするスクリプトをおいておくために使われるディレクトリなので、「フレームワーク開発者的には、 デフォルトでおいておくファイルは特にない。しかし、 ユーザが 作ったファイルは Git でバー
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く