git-grep には --exclude オプションがないので ls-files や パイプラインで除外するしかないと思っていたのだけど、指定するパスにglobのワルドカードパターンで否定条件を渡せることを知った。
git-grep には --exclude オプションがないので ls-files や パイプラインで除外するしかないと思っていたのだけど、指定するパスにglobのワルドカードパターンで否定条件を渡せることを知った。
Gitのコミットメッセージの書き方 自分なりにまとめてみました。Git歴浅いので、意見募集中です。 (2014年12月17日追記) 想像以上にたくさんの方にストックなりはてブなりいただいたので、はてブでなるほど!と思ったコメントをもとに少し修正・加筆してみました。 (2022年1月4日追記) 最新の書き方をこちらに書きました。 https://zenn.dev/itosho/articles/git-commit-message-2023 原則 以下のフォーマットとします。 1行目:変更内容の要約(タイトル、概要) 2行目 :空行 3行目以降:変更した理由(内容、詳細) 日本語でも英語でもOKですが、リポジトリで統一してください。 1行目 コミット種別と要約を書きます。フォーマットは以下とします。 [コミット種別]要約 コミット種別 以下の中から適切な種別を選びます。 (多すぎても悩むので
% git add . (あ、add じゃなかった。取り消そ) % git reset --hard HEAD (あれ?…ファイルは!?)ってなことが最近あって*1、サルベージ方法を調べたので覚書。 まず git fsck する。*2 % git fsck --full Checking object directories: 100% (256/256), done. Checking objects: 100% (316/316), done. dangling blob 05fc993def3f6d6130e530d1a8fca9c81e05d4c0 dangling blob 089434c22dd051562c3ca2193ebe3e562274a555 dangling blob 2338da1104c033c8266d6ec82833f051521b1063 dangling
2015-06-01 gitのコミットメッセージをsublime text 3で編集する方法(Git for Windows) git難しいですなぁ gitのコミットメッセージをsublime text 3で編集する方法 git commit でコミットしようとするとエディタが立ち上がってコミットメッセージを入力できると思います。 立ち上がったエディタはおそらくviなのでしょうが、僕はあまり得意ではないのでいつも使っているsublime textで開ける方法を探してみました。 以下のコマンドで出来ました。 git config --global core.editor "'sublime_text.exeの絶対パス' --new-window --wait" ※ダブルクォーテーションの中をシングルクォーテーションで囲んでいます。 絶対パスにスペースが含まれている場合に対しての対処方法を見つ
peco と alias -g で git に便利革命がおきるので、ぜひご活用ください。 記事の一番下に設定のまとめがあります。 目録 便利革命1: git commit → g c 便利革命2: git checkout feature/something-great → g o B 便利革命3: git push -u origin feature/something-great → g puu R B 便利革命4: git remote add origin git@github.com/user/repo → g r add origin H 便利革命5: git checkout -b feature/something-great remotes/origin/feature/something-great → g b LR めんどいコマンド1: git commit Befo
Gitで無視ファイルを細かく設定する際にはまったので、メモ ヘルプ こまったら、これで $ man gitignore web版 前提 まずは前提を抑えておかないと、はまる 既にトラックされたファイルはgitignoreが効かない $ git init $ touch hoge.txt $ git add hoge.txt # トラックされた後に $ vim .gitignore # 無視設定しても hoge.txt $ git status # 効かない 既にトラックされたファイルを無視対象にしたければ、git rm --cached $ git rm --cached hoge.txt # 上記のトラックされたファイルをインデックスから削除すれば(ワークツリーはそのまま) $ git status #gitignoreが効く # もしhoge.txtをcommit済みの場合 $ git
TL;DR: グローバルな gitignore に ,/ を追加して、作業用スクリプトを , ディレクトリに入れると便利。 ,/tmp_script.sh で実行できる。 Git リポジトリの中に一時的に使う作業用スクリプトを置いておきたいことがある。自分だけが使うものなのでコミットはしたくないが、いちいち .git/info/exclude に追加して無視させるのも面倒臭い。 今まで自分は、 tmp_script.sh~ や tmp_script.sh.bak など、グローバルな gitignore で無視されるファイル名にしていたが、これは不要なファイルと間違えて消してしまう危険がある。 ignored.tmp_script.sh は分かりやすいぶん長い。 _tmp_script.sh は悪くないが、コミットすべきファイルにもアンダースコアで始まるものがあって紛らわしい。 そこで、作業
.gitignoreとは? .gitignoreはGitのリポジトリのルート(.gitフォルダと同じ位置)にあるときに使えます。 Railsの場合 Railsアプリとかだと、logディレクトリはバージョン管理したくないから とか書いてある。 同じように、バージョン管理の必要性がなかったり、していると不都合がおきる、 - sqlite3のDBファイル - キャッシュが入るtmpフォルダ - プロセス監視のpidファイル 等はignoreしておくべきです。(デフォルトで.gitignoreに書かれていますが) .gitignore自体はignoreにするべき? それを ignore するなんて とんでもない! .gitignoreはプロジェクト全体で共有しておくと、環境が変わっても(パソコンが変わっても)ignoreされるファイルやフォルダは 一緒な"はず" なので、ignoreはしなくて大丈
Git 初心者〜中級者に向けて、目立たないけど便利なコマンドを紹介します。
あるファイルに大量のコンフリクトが発生し解決が面倒なとき、パッチを使ってファイルに1コミットずつ変更を適用する方法を示す。この方法のメリットは: ファイルへの変更を1コミットずつ適用・コンフリクト解決することができる それぞれのコミットを適用する前に、コミットをパッチファイルの形で編集できる 注目するファイル以外への変更をいったん無視し、そのファイルに関係する変更に集中できる の3点である。複数コミットの変更が混ざった大量のコンフリクトマーカーを手作業で消すような状況に陥ったとき、この方法を使えばいくぶんかは楽にマージ作業を進められる。 概要 マージ中に特定のファイルに大量のコンフリクトが起きたら、マージを中止する。一時作業用ブランチを作り、そのファイルに1コミットずつパッチを当てて編集する。パッチを当て終わったらマージをやり直し、コンフリクト解決作業中に、コンフリクトしたファイルを一時作
以下のようなシナリオを想定してください。 A氏が最初のコミットをして、中央リポジトリにpush: % echo 'ABC' > test.txt % git add test.txt % git commit -m '1st commit' % git push B氏が2番目のコミットをして、中央リポジトリにpush: % git fetch % git merge % echo 'CBA' > test.txt % git add test.txt % git commit -m '2nd commit' % git log --oneline 035b3d2 2nd commit 496cc84 1st commit その間にA氏が同じファイルを編集。B氏の編集をマージせずに、自分の編集内容をstash: % echo 'ACB' > test.txt % git fetch % gi
With the Subversion VCS, one way to import external modules or libraries into a code tree is by defining the svn:externals property of your repository. Subversion will then check out the specified revision (or the latest revision) of the other repository into your source tree when checking out your code. Submodules are basically the same thing in the "git" world. And since git can talk to subversi
Is there a way to add a Subversion repository as a Git submodule in my Git repository? Something like: git-svn submodule add https://svn.foo.com/svn/proj --stdlayout svn-project Where https://svn.foo.com/svn/proj points to a Subversion repository. I know there is git-svn which allows one to interact with a Subversion repository. So I am thinking, maybe there is a way to checkout a Subversion repos
git stash 使い方 現在のワークツリーを一時的に保存する 現在のブランチのワークツリーを一時的に保存するには stash を利用する。 git stash save とするか、save を省略して git stash とする。 このとき、stash にメッセージをつけるには git stash save "message" とする。 stash に保存されている状態の一覧を見る git stash list で stash に保存されている状態のリストを見ることができる。 stash@{0}: WIP on master: 1c2aadc "COMMIT_MESSAGE" stash@{1}: WIP on master: 1c2aadc "COMMIT_MESSAGE" stash@{?} とブランチ、親コミットが表示される。 stash に保存されている状態に戻し、stash
ばいんでぃんぐぷらい便利ですね。 コミットすると、binding.pryがコミット予定のファイルに含まれていれば、コミットを中止すフックスクリプトを書きました。.git/hooks/pre-commitにコピペしてお使いください。ハードコーディングしちゃってるんで、適当に修正するといいですね。 gistにもあげてるので、forkなんかしてもらえるといいですね。 https://gist.github.com/2970881 #!/usr/bin/env ruby cached_files = `git diff --cached --name-only` if cached_files.split($/).any? {|path| File.read(path).include?('binding.pry') } puts 'ERROR: binding.pry is found' exi
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く