タグ

gitに関するkazuomabuoのブックマーク (31)

  • Popular git config options

    Hello! I always wish that command line tools came with data about how popular their various options are, like: “basically nobody uses this one” “80% of people use this, probably take a look” “this one has 6 possible values but people only really use these 2 in practice” So I asked about people’s favourite git config options on Mastodon: what are your favourite git config options to set? Right now

  • git push -f が更に安全になる --force-if-includes - id:onk のはてなブログ

    歴史改変、してますか? 私は歴史改変が大好きで、毎日 rebase しています。なので割と毎日 git push -f することになっています。 口で -f と言っても、実際には --force-with-lease --force-if-includes をしているので、これらのオプションのご紹介。 この記事は はてなエンジニア Advent Calendar 2022 の 18 日目です。昨日は id:rokoucha さんで 壊れたデータベースとの向きあいかた - rokoucha でした。 qiita.com -f の危険性 ...--F--G--H <-- main という状態で push した後、H をコミットし直したとしよう。 ...--F--G--H' <-- main \ H <-- origin/main このまま H' (main) を origin/main に p

    git push -f が更に安全になる --force-if-includes - id:onk のはてなブログ
    kazuomabuo
    kazuomabuo 2022/12/18
    1回やった。手動リカバリして、対応してくれた方に迷惑かけた。。。
  • git blameで「あ~、もっと過去があるじゃん、そこまでさかのぼってよ~」というときのtips - Qiita

    履歴が複雑になっているケースでは(過去にgit mvを何度もやったとか、svnからgitプロジェクトを移管したとか) git blameしたときに、いちばん初めのコミットまでさかのぼって表示してくれない場合があります。 もっとさかのぼってYO!! そんなときにgit blameをもっとさかのぼって見る方法。 結論 git blame (コミットハッシュ値) -- (ファイル名) これで任意のリビジョンを起点にして、そこから過去をみることができます。 詳細 まず、普通にgit blameします。 git blame hoge/file.php ここで見れた一番古そうなコミットハッシュ値(仮にbadcafeとします)をメモします。 メモしたら、その1個前を起点にして過去にさかのぼります。 git blame badcafe^ -- hoge/file.php これでも途中までしかさかのぼれな

    git blameで「あ~、もっと過去があるじゃん、そこまでさかのぼってよ~」というときのtips - Qiita
  • Git tips by symbols

    @ represents the HEAD commit. - indicates where you were previously checked out. -- declares the next argument is a file. : specifies a file in a revision. ~ refers to the parent commit of the current commit. This document provides Git tips and shortcuts for commands like log, diff, checkout, merge, rebase using symbols like @, -, :, ~ to reference commits, files, and revisions.Read less

    Git tips by symbols
  • git を https 経由で使うときのパスワードを保存する - Qiita

    git を https 経由で使う場合、pull や push のたびに毎回パスワードを聞かれてしまいます。 これを改善するには git-credential を使うと良いです。 git-credential は git 1.7.9 以降で使用可能です。 なお、古いやり方としては .netrc を使う方法もありますが、パスワードを平文でファイルに保存するので、やらないほうがいいと思います。 使用可能な管理方式 git-credential では、以下のような方法でユーザ名とパスワードを管理できます。 git-credential-store : ファイルに保存します。ただし、パスワードが平文が保存されます。 git-credential-cache : 常駐プロセスに記憶させます。 git-credential-osxkeychain : Mac OS X のパスワード管理を使います。 G

    git を https 経由で使うときのパスワードを保存する - Qiita
  • 既に git 管理しているファイルをあえて無視したい - Qiita

    git でファイルを無視するには、通常は .gitignore や .git/info/exclude を使います。 しかし、既に git 管理下にあるファイルは、これらの設定があっても無視されません。 以下の方法を使えば、git 管理下にあるファイルをあえて無視することが可能です。 方法 次の2つの方法があります。どちらを使っても、ファイルの変更を無視できます。 方法(1) assume-unchanged

    既に git 管理しているファイルをあえて無視したい - Qiita
  • git configをプロジェクトによって使い分ける - Qiita

    Git v2.13.0(2017/05/10リリース)でgit configにConditional includes(条件付きインクルード)という機能が実装され、特定のリポジトリに対して一括でgit configを適用できるようになりました。 会社用と個人用でプロファイルを使い分けたり、たまに使う設定をまとめて適用する場合などに役立ちそうです。 設定方法 includeIfセクションを使います。git configコマンドか、~/.gitconfigを直接編集して追記します。

    git configをプロジェクトによって使い分ける - Qiita
  • Git で Pull-Request を fetch する alias - pockestrap

    GitHub で Pull-Request を fetch する為に、以下の特殊なブランチ名を使うことが出来ます。 sinsoku.hatenablog.com $ git fetch origin pull/ID/head # 42番の PR を fetch する $ git fetch origin pull/42/head 毎回これを打つのはめんどくさい、また checkout するのがめんどくさい為、alias にしました。 以下を .gitconfig に追記すると動きます。 [alias] fpr = "!f(){ git fetch origin pull/$1/head:$1; git checkout $1; };f" Usage: # 42 番の PR を fetch して、42 というブランチを作成しそこに checkout する $ git fpr 42 前の例に比

    Git で Pull-Request を fetch する alias - pockestrap
  • Git Large File Storage

    An open source Git extension for versioning large files Git Large File Storage (LFS) replaces large files such as audio samples, videos, datasets, and graphics with text pointers inside Git, while storing the file contents on a remote server like GitHub.com or GitHub Enterprise. Getting Started Download and install the Git command line extension. Once downloaded and installed, set up Git LFS for y

    Git Large File Storage
  • これまで知らなかったGit機能を調べたまとめ - Qiita

    変更のdiffを見ながらコミットメッセージを書く 教えてもらってから活用してる。見ながら書いたほうが具体的に書けるような気がする。 $ git commit -v 変更のdiffを見ながらコミットメッセージを編集できます # Please enter the commit message for your changes. Lines starting # with '#' will be ignored, and an empty message aborts the commit. # On branch commit-v # You are currently bisecting, started from branch 'test-git-bisect'. # # Changes to be committed: #>modified: fruits.txt # # -------

    これまで知らなかったGit機能を調べたまとめ - Qiita
  • git-svnでSVN→Gitへの移行をやってみたログ - Qiita

    稿は諸事情により過去の投稿を再投稿したものです。 はじめに git-svn を使うと、素直な SVN リポジトリーなら簡単に移行できますが、実運用してきた SVN リポジトリーを移行する際はつまづくことも多々あります。 また Git リポジトリー化ができてもブランチやタグは手作業で作ることになります。 今回、たまたま移行を検討する機会があったので、その予行作業のなかで得た知識をメモしておきます。 作業を行ったクライアント環境は Ubuntu 14.04 / Git 1.9.3 です。 SVN リポジトリーは HTTPS でアクセスできる状態です。 移行の第一歩 まずは SVN リポジトリーからローカル環境に Git リポジトリーを作成します。 git svn clone または git svn init + git svn fetch を使います。 ヘルプや Book にも記載されてい

    git-svnでSVN→Gitへの移行をやってみたログ - Qiita
  • 楽々GitLabサーバー作成手順 - yuumi3のお仕事日記

    教育仕事GitLab(プライベートでpull requestなどが出せる安いサービス)が必要になり、サーバーを立ち上げました。以前は自社のコードもGitLabで管理していたのですが、今は 改造版Ginatra を使っているので、教育の期間のみGitLab用のサーバーを立ち上げる事にしました。 GitLabのインストール 以前はGitLabのインストールはたいへんでしたが、今は apt や yum でインストールできます。 IaaSクラウドサービスでサーバーを準備し、インストールすれば簡単に完了です。 RDB(PostgreSQL), nginx 等もインストールされます。 私は Ubuntu が慣れているので、Ubuntu 14.04 にインストールしましました。 $ sudo apt-get update $ sudo apt-get -y dost-upgrade $ sudo a

    楽々GitLabサーバー作成手順 - yuumi3のお仕事日記
  • Git-it - 手を動かしながら習得できる日本語対応のGit/GitHub学習アプリ | ソフトアンテナ

    GitGitHubの使い方を学習することができるデスクトップアプリ「Git-it」。Electronで作られていて、Mac / Windows / Linux用の実行ファイルをGitHubよりダウンロードすることができます。英語表記のみだけでなく、日語に対応しているところもありがたいところです。 使用方法 Git-it自体は問題集のようなもので特別な仕掛けはありません。画面の指示に従いローカルの環境でGitを使いながら学習を進めていきます。Git-itではGitHub Desktopの使用を推奨していますが、実際の運用を考えてターミナルでGitを勉強してみるのも良いでしょう(Windowsの場合若干めんどくさいですが)。 Git-itでは、Gitのインストールから始まり、リポジトリの作成やコミット、GitHubの使い方、最終的にはプルリクエストの送信方法まで学ぶことができます。 プルリ

    Git-it - 手を動かしながら習得できる日本語対応のGit/GitHub学習アプリ | ソフトアンテナ
  • git add -A と git add . と git add -u の違い - Qiita

    結論から言えば、git add -A は git add . と git add -u を足したものです。 git add . はワーキングツリーに新規作成された、もしくは変更されたファイルをaddします。つまり、rmコマンドなどで削除されたファイルはaddされません。 git add -u は一つ前と最新のステージを比較して、変更があった部分のみをaddします。つまり、新しく作られたファイルはaddされません。 最初にも述べたように、git add -A は git add . と git add -u を足したものですから、新規作成、修正、削除といった全てのファイルをaddします。 分かり易い例がさきのリンクに記述されているので読んでみてください。 Register as a new user and use Qiita more conveniently You get articl

    git add -A と git add . と git add -u の違い - Qiita
  • GitHub にパスワードとかセンシティブなファイルを push してしまったときの対処法 - Qiita

    .gitignore し忘れて他人に見えちゃマズいファイル(パスワードをベタ書きしたファイルや AWS_SECRET_ACCESS_KEY を書いたファイルとか)を git commit しちゃった!そんなときは すればすぐ何もなかったことにできます。 が!そこで気付かずに GitHub へ git push してしまった!こうなると容易に何もなかったことにはできません。 この記事では、こういうときに何もなかったことにする方法を紹介します。 そのデータを無効にする 特に Public Repository の場合はすでにそのデータが他人の目に触れていた…ということも十分ありえます。AWS_SECRET_ACCESS_KEY なんかは取得用のクローラが存在するとも聞きます。ので、まずは不正利用されても影響が出ないように、パスワードの書き換えやトークンの無効化を施しましょう。 (この時点でもう

    GitHub にパスワードとかセンシティブなファイルを push してしまったときの対処法 - Qiita
  • git stash save で一時退避した変更を、誤って git stash clear で消してしまったときの回復法 - t-wada の日記(旧)

    一年くらい前から git を使い始め、ここ半年くらいは毎日の開発に git を使っています。昨日 git stash という機能を使っている時に失敗してしまい、何人かの方にアドバイスいただくことによって無事回復することが出来たので、感謝の印として、そして運悪く同じ問題に遭遇してしまった人たち(私もまたやるかも)へのメモとして記しておきます。 御託はいいから、早く回復法を知りたい人のためのまとめ $ git fsck | awk '/dangling commit/ {print $3}' 候補の sha1 がいくつか出てくる(長く開発していると、結構多く候補が出てきます) $ git show --summary 候補のsha1 一つ一つの sha1 の内容を確認 $ git cherry-pick -n -m1 見つけたsha1 いきさつ 私の作業のやりかたでは、 タスク毎にブランチを切

    git stash save で一時退避した変更を、誤って git stash clear で消してしまったときの回復法 - t-wada の日記(旧)
  • Gitでやらかさないための事前予防策 - Qiita

    Gitでやらかした時に使える19個の奥義を書いてやらかしたときになんとかリカバリできるようにした。 今回は、そもそもやらかさないようにしたいよねっていうお話。 コミット編 .gitignoreを細かく指定しておく .gitignoreを指定しておけば余計なファイルをコミットしちゃうことを予防できます 過去に似たようなプロジェクトがあるのならそれを流用しましょう。 ないのであれば.gitignore.ioで生成してそれをカスタムしましょう。 ワイルドカード指定やディレクトリまるごとの指定は副作用ある可能性があるので慎重に。 コミットメッセージのフォーマットを決めておく コミットメッセージのフォーマットを決めておけば書き直したいということも減ります コミットメッセージをやらかして直したいと思うことはよくあります。 そういうのって案外コミットメッセージが自由すぎることが問題だったりします。 ある

    Gitでやらかさないための事前予防策 - Qiita
  • composer 導入をまじめに考える - Qiita

    これは結構大きいPHPプロジェクトに composer を導入する機会があったので、そのときに考えてたことや行ったこと、使い方などをメモするために書いた。 モチベーション 私達は PHP のパッケージの管理を管理する際は pear と git submodule を利用していた。これらのやり方は意外と長続きした。これらにはついて様々な問題を抱えており、ついに限界がきてしまった。 pear pear でパッケージを導入するには root 権限が必要なので、毎回インフラチームに導入を依頼するのが必要があった。 pear で導入されたパッケージについてバージョンを上げようとすると、全APサーバーで更新をかける必要があった。 これらの点から面倒だったのと、気軽に変更できないので、不要になったものも削除されることなく、放置されるのが問題だった git submodule こちらは pear とは異

    composer 導入をまじめに考える - Qiita
    kazuomabuo
    kazuomabuo 2015/04/10
    git submoduleとcomposerでどっちがなういか調べてたけど、やっぱcomposerで統一が良さげか。
  • Git submodule の基礎 - Qiita

    この記事は Git Advent Calendar 6日目の記事です! Git submodule って最初わかりにくいと思うので、基的な説明をしようと思います。 git submodule とは git submodule は、外部の git リポジトリを、自分の git リポジトリのサブディレクトリとして登録し、特定の commit を参照する仕組みです。 Subversion でいうところの、external と似ています。 さて、解説のため、手元に、リポジトリA (/path/to/a) とAの submodule として、よく使う例として Bootstrap (元Twitter Bootstrap) を登録してみます。 git submodule を理解するうえで重要なのは、 リポジトリAが指し示すsubmoduleとしてのBootstrapのcommit 現在のBootstr

    Git submodule の基礎 - Qiita
  • Git - サブモジュール

    1. 使い始める 1.1 バージョン管理に関して 1.2 Git略史 1.3 Gitの基 1.4 コマンドライン 1.5 Gitのインストール 1.6 最初のGitの構成 1.7 ヘルプを見る 1.8 まとめ 2. Git の基 2.1 Git リポジトリの取得 2.2 変更内容のリポジトリへの記録 2.3 コミット履歴の閲覧 2.4 作業のやり直し 2.5 リモートでの作業 2.6 タグ 2.7 Git エイリアス 2.8 まとめ 3. Git のブランチ機能 3.1 ブランチとは 3.2 ブランチとマージの基 3.3 ブランチの管理 3.4 ブランチでの作業の流れ 3.5 リモートブランチ 3.6 リベース 3.7 まとめ 4. Gitサーバー 4.1 プロトコル 4.2 サーバー用の Git の取得 4.3 SSH 公開鍵の作成 4.4 サーバーのセットアップ 4.5 Git