Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

タグ

GitとVCSに関するAmaiSaetaのブックマーク (70)

  • Gitで既に管理されているファイルをローカルで無視する方法 | Enjoy IT Life

    Gitでファイルを管理しない方法としては.gitignoreや.git/info/excludeに記述する方法があります。 これらの方法はGitでまだ管理されていない(Untracked)ファイルに対して行うものです。 しかし、既にGitで管理されているファイルをローカルで修正しても無視してもらいたいときがないでしょうか? 例えば、アプリケーションの設定ファイルをローカル用に少しだけ変更するときなど、Gitの管理から除外したいですよね。 今回は既にGitで管理されているファイルをローカルで修正しても無視できるような設定と確認方法について説明します。 方法は2つあります。 git update-index –skip-worktree まずはgit update-index --skip-worktreeについてです。 どんな時に使う? --skip-worktreeはローカルでファイルが変

    Gitで既に管理されているファイルをローカルで無視する方法 | Enjoy IT Life
    AmaiSaeta
    AmaiSaeta 2024/11/07
    `update-index` サブコマンドの `--skip-worktree` 或いは `--assume-unchanged` オプション。
  • gitのサブコマンドを自分で作る - blog.ton-up.net

    この記事は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 このサブコマンドはファイルを最初にコミットした日付と最後にコミットした日付(とそのハッシュ)を表示するコマン

    gitのサブコマンドを自分で作る - blog.ton-up.net
    AmaiSaeta
    AmaiSaeta 2023/06/21
    "まずgit --exec-pathのパスの中からコマンドを探し,なければユーザーのPATHの中からコマンドを探して実行します." "PATHの通った場所にgit-コマンド名という実行ファイルを置くだけでユーザーが自由にサブコマンドを作れる"
  • git diffコマンドで比較する時のダブルドット(..)とトリプルドット(...)の違いとは? | Yakst

    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 diffコマンドで比較する時のダブルドット(..)とトリプルドット(...)の違いとは? | Yakst
    AmaiSaeta
    AmaiSaeta 2022/10/07
    `git rev-list` の `..` と `...` は逆だったら一貫性あったのではという気がする……
  • Windowsローカル開発環境からgit commitする時にはパーミッションに気を付けること - Qiita

    背景 railsでdelay_jobやwheneverを実装し、ローカル開発環境では問題なくジョブが走った。 しかし番環境にデプロイ後、ジョブが走らなかった。 エラーログを確認したところrailsのbinディレクトリ以下の各ファイルの権限が644となっており、実行権限がないことが判明。 だとしたら、ローカル開発環境でも動かないはずだろ?? そんな思いからいろいろ調べてみた。 windows環境でのgitbashはchmodが効かない!! chmod 777 ファイル名してもchmod 644 ファイル名してもchmod o+w ファイル名しても何しようが権限が変更されない。 大丈夫! これはwindowsの仕様の問題らしい。 なのでスッキリあきらめよう! git addするとパーミッションが自動的に変更され644になってしまう!! これはgitの仕様。 おそらくですが、大規模開発を想定し

    Windowsローカル開発環境からgit commitする時にはパーミッションに気を付けること - Qiita
  • Conventional Commits

    Conventional Commits 人間と機械が読みやすく、意味のあるコミットメッセージにするための仕様 Conventional Commits 1.0.0 概要 Conventional Commits の仕様はコミットメッセージのための軽量の規約です。 明示的なコミット履歴を作成するための簡単なルールを提供します。この規則に従うことで自動化ツールの導入を簡単にします。 コミットメッセージで機能追加・修正・破壊的変更などを説明することで、この規約は SemVer と協調動作します。 コミットメッセージは次のような形にする必要があります: 原文: <type>[optional scope]: <description> [optional body] [optional footer(s)] 訳: <型>[任意 スコープ]: <タイトル> [任意 文] [任意 フッター] あな

  • [Git] 自分の環境だけgitignoreする方法(2つ) - YoheiM .NET

    こんにちは、@yoheiMuneです。 Gitを使って開発をしていると、時々自分だけgitignoreにしたいファイルができます(例えばエディタのメタファイルとか)。そのようなファイルを、自分の環境からバージョン管理から外す方法をブログに書きたいと思います。 特定のプロジェクトにある指定したファイルを、自分だけgitignoreしたい 掲題のような場合には、.git/info/excludeのファイルにバージョン管理外にしたいファイルを指定します。 # .git/info/exclude my-gitignore-target.txt すると、ファイルをGitレポジトリ上に追加しても、バージョン管理対象外になります。 # ファイルを追加する $ touch my-gitignore-target.txt # しかし、バージョン管理対象に入らない $ git status # On bran

    [Git] 自分の環境だけgitignoreする方法(2つ) - YoheiM .NET
  • mattn on Twitter: "$ git status --porcelain | vim - してステージングしてないファイル名の中で必要なファイル名だけ抽出して :w !xargs git add みたいなのはよくやる。"

    $ git status --porcelain | vim - してステージングしてないファイル名の中で必要なファイル名だけ抽出して :w !xargs git add みたいなのはよくやる。

    mattn on Twitter: "$ git status --porcelain | vim - してステージングしてないファイル名の中で必要なファイル名だけ抽出して :w !xargs git add みたいなのはよくやる。"
  • Gitのエイリアスで引数を使う

    B! 20 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]下にコマンドを

    Gitのエイリアスで引数を使う
  • git-secretsはじめました - Qiita

    はじめに サーバのID/Passwordをソースにべた書きして開発することは誰しもあるかと思います。しかし先日話題になっていた「AWSから120万円の高額請求が来た話」というQiitaエントリのように、public gitリポジトリにAWSのアクセス情報を置こうものならばあっという間に悪用されてしまいます。 そんな他人に知られると悪用されかねない情報は「他人が容易にアクセス可能な場所に置かないこと」が鉄則なのですが、心掛けだけではどうやってもヒューマンエラーを避けることができません。そこでエントリでは、そういったヒューマンエラーが起きた際の水際防止策として「gitリポジトリへのアクセス情報(ID/Passwordなど)の含まれたファイルのコミット」を機械的にリジェクトするgit-secretsの使い方を簡単に紹介します。1 Q: git-secretsは何ができる? A: gitのcom

    git-secretsはじめました - Qiita
  • 空のディレクトリを維持するための、 .gitkeep と .gitignore の使い分け - Qiita

    使い分けの基準 .gitkeep と .gitignore は、「空のディレクトリにファイルが追加されたときに、そのファイルを Git での管理対象に含めたいか?」という基準で、使い分けられます。 含めたい場合は .gitkeep 、含めたくない場合は .gitignore を使います。 .gitkeep を使う基準と例 .gitkeepは、「デフォルトではファイルが存在しないけれど、ファイルが追加されたら、そのファイルを Git での管理対象にしたい」場合 に使います。 例えば、lumen の databse/migration ディレクトリなどは、良い例です。 このディレクトリは、データベースの初期化をするスクリプトをおいておくために使われるディレクトリなので、「フレームワーク開発者的には、 デフォルトでおいておくファイルは特にない。しかし、 ユーザが 作ったファイルは Git でバー

    空のディレクトリを維持するための、 .gitkeep と .gitignore の使い分け - Qiita
    AmaiSaeta
    AmaiSaeta 2019/03/26
    .gitkeep知らなかった
  • gitでマージ済みの(リモート|ローカル)ブランチを全て削除.md

    gitでマージ済みの(リモート|ローカル)ブランチを全て削除.md マージ済みのリモートブランチを全て削除 git branch -r --merged master | grep -v -e master -e develop | sed -e 's% *origin/%%' | xargs -I% git push --delete origin % remote の master に merge済み の branch をすべて表示して master と develop は消えてほしくないので除外して origin/ を削除して xargs (-I% % で ブランチ名を渡しつつ、全て削除する) マージ済みのローカルブランチを全て削除 $ git branch --merged master | grep -vE '^\*|master$|develop$' | xargs -I %

    gitでマージ済みの(リモート|ローカル)ブランチを全て削除.md
    AmaiSaeta
    AmaiSaeta 2019/03/04
    あとでaliasにする
  • Gitブランチをきれいにするワンライナー - テクめも

    今すぐalias登録すべきワンライナー by ゆめみ① Advent Calendar 2018 10日目の記事です。 開発していると、マージされたfeature/xxxとか不要なブランチが結構でてくるので、一括で削除するコマンドをalias登録しておくと良いです。 git checkout develop && git branch --merged | grep -v '*' | xargs -I{} git branch -d {} && git fetch --prune はじめのdevelopのところはデフォルトブランチです。必要に応じて修正ください。 簡単な解説 developブランチにcheckout $ git checkout develop 現在のブランチを除くマージされたブランチを表示 $ git branch --merged | grep -v '*' 表示された

    Gitブランチをきれいにするワンライナー - テクめも
  • 今すぐaliasを登録しておくべきGitワンライナー - Qiita

    はじめに 今すぐalias登録すべきワンライナー by ゆめみ① Advent Calendar 2018 の2日目です。 私はプロジェクト依存のものはなるべくMakefileから利用するようにしているので,.zshrc は Git 関連程度で薄く保たれています。 皆さんの素敵なワンライナーが見られるよう,貢献させていただきます。 大いに盛り上がって欲しいと思います。 題 業務で叩くものの中で1番多いであろうGitコマンド。 もう checkout のタイポで移動できない,なんて無くしましょう。gc で十分です。 また,GitHub では issue 駆動の開発をしていますが,issues/ は 7 文字です。i で十分です。 以下をコピペし,些細な工夫でモチベーションが下がるのを防ぎましょう。 # g: git alias g='git' # gc: checkout alias gc

    今すぐaliasを登録しておくべきGitワンライナー - Qiita
  • Gitでファイルの特定行の変更履歴を追う - Qiita

    > git log -L 1,10:Gemfile commit d9acf7548943f4c60be50ee43b54ce638d4d0d3a Author: kmagai Date: Sun Apr 24 18:01:22 2016 +0900 hoge -- a/Gemfile ++ b/Gemfile ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── @@ -1,6 +1,5 @@ source 'https://rubyge

    Gitでファイルの特定行の変更履歴を追う - Qiita
    AmaiSaeta
    AmaiSaeta 2018/07/03
    `git log -L (開始行数),(終了行数):(ファイルパス)`
  • Visual Studio Community - Visual Studio

    Visual Studio Community - Visual Studio
  • Gitで日本語長文のdiffをとる方法 - Qiita

    (この記事はここからの転載です) 課題 日語の長文をgitで管理していると、ほんのちょっとの変更でもdiffでは行丸ごと変更されたことになり、変更点がよくわからないことがある。 二泊三日で小説を書く過激なイベントNovelJam 2018参加作品である高橋文樹氏の「オートマティック クリミナル」は、GitHubを使って執筆されている。小説では、git diffの欠点がはっきりでる。高橋氏は参加レポートで、こう書いている。 あと、今回得た重要な知見なのですが、Githubではある程度以上テキストが長くなってくると、数文字の調整で全部差分として判定されたりするので、小説には向いてないかなーと思いました。小説は行の移動とかがよく発生するので、GithubじゃなくてGitとの相性かもしれません。 普通にdiffを取る 確かに、普通にdiffをとるとその通り。コマンドラインで「オートマティック ク

    Gitで日本語長文のdiffをとる方法 - Qiita
  • git で日付を指定して log や diff を見る - Qiita

    Help us understand the problem. What is going on with this article?

    git で日付を指定して log や diff を見る - Qiita
    AmaiSaeta
    AmaiSaeta 2018/02/09
    `--since` と `--until`
  • Commit Hash から、該当 Pull Request を見つける方法 - Qiita

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?

    Commit Hash から、該当 Pull Request を見つける方法 - Qiita
    AmaiSaeta
    AmaiSaeta 2017/10/19
    こういうの欲しかった。 Git Flow 等を考えると、 `$1...master` の `master` は無い方が良いのでは。
  • よりよいGitの設定 | Yakst

    .gitconfigファイルに記入するオプションをカスタマイズすれば、Gitをより上手に、便利に使うことができる。著者のGit設定の紹介と、便利な設定の解説。 私はGitが大好きで、いつでもGitを使っています。私は時々、何かについて深く調べてみたり、ドキュメントを一通り読んでみたり、設定を見直してみたりするのですが、今回はGitについてそれをやってみました。私の書いた4番目の技術スタックの改善に関する記事にようこそ! Gitのすべて 私がコーディングを始めたのは、ただのファイルシステム上でコピーしていたあの辛い日々、そしてチェックアウトに排他的ロックが必要だったVisual SourceSafeを使っていた時でした。それでもその時、ソース管理のコンセプトは私にとって素晴らしいものに思えましたし、家でコーディングする時にはそういったものにアクセスできたらな、と思っていました。 その後カリフ

    よりよいGitの設定 | Yakst
    AmaiSaeta
    AmaiSaeta 2017/06/03
    後で幾つか設定を参考にする。
  • tracking branch(追跡ブランチ)の削除【git】 - DRYな備忘録

    問題 git push ORIGIN-NAME :BRANCH-NAME でリモートは消せるけど、どうやらローカルにあるtrackingは残ってるようだ。これ消したい。 解決 git branch -r -d ORIGIN-NAME/BRANCH-NAME [16:58:13] % git branch -a * develop feature/upload-local-file master refactor remotes/about518/develop remotes/about518/feature-judge-chrome-version remotes/about518/feature/achievement-record remotes/about518/feature/play-sound-at-alert remotes/about518/feature/upload-

    tracking branch(追跡ブランチ)の削除【git】 - DRYな備忘録
    AmaiSaeta
    AmaiSaeta 2017/03/03
    git branch -r -d ORIGIN-NAME/BRANCH-NAME