タグ

Gitに関するmasa8aurumのブックマーク (49)

  • 【Git】同じコンフリクト解消を繰り返している人に教えたい「git rerere」 - Qiita

    はじめに こんにちは、kenです。みなさんコンフリクト解消してますか! チーム開発をしているとコンフリクトとは嫌でも向き合うことになりますが、コンフリクト解消って緊張感のある作業なのでやりたくないですよね。 そんなコンフリクト解消をちょっぴり楽にする(かもしれない)コマンドを最近知ったので今回はそれを紹介します、その名もgit rerereです。 git rerereとは Gitの公式ドキュメント(日語版)には次のように記載されています。 git rerere コマンドはベールに包まれた機能といってもいいでしょう。これは “reuse recorded resolution” の略です。その名が示すとおり、このコマンドは、コンフリクトがどのように解消されたかを記録してくれます。 そして、同じコンフリクトに次に出くわしたときに、自動で解消してくれるのです。 ここに書かれているように、git

    【Git】同じコンフリクト解消を繰り返している人に教えたい「git rerere」 - Qiita
  • Inside .git

    Hello! I posted a comic on Mastodon this week about what’s in the .git directory and someone requested a text version, so here it is. I added some extra notes too. First, here’s the image. It’s a ~15 word explanation of each part of your .git directory. You can git clone https://github.com/jvns/inside-git if you want to run all these examples yourself. Here’s a table of contents: HEAD: .git/head b

  • 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 のはてなブログ
    masa8aurum
    masa8aurum 2022/12/18
    mainブランチ云々のブコメがついてるのは結局、例示が悪いという話なので、今からでもfeature-aとかに直すほうがいいと思う(それかせめてdevelopにするとか)
  • たぶんもう怖くないGit ~Git内部の仕組み~ - Qiita

    追記 先日外部向けに、この記事の内容に追加補足などを加えて発表しました。動画のアーカイブ、資料も公開しましたので、もし動画の方がわかりやすい方はこちらをオススメします。 注意: 動画の質疑の中で、 github のリリース機能が、アノテートタグを使っていると明言してしまいましたが、間違いです。gitのデータ上はただの軽量タグで、 release の内容は軽量タグに紐づく形で、 github のアプリケーション上で管理されているはずです。 はじめに 調べてもう1年放置していた内容なんですが、アドベントカレンダーで重い腰を上げました。 Gitの内部の仕組みを知りたい(動機) 毎日使うといってもいいGitですが、どうやって履歴を管理してるんだとか、よくわからないまま使っているのが急に怖くなりました。 Gitを触り始めで、よく以下のような疑問が沸くと思います。 どうやってGitは履歴を管理してるん

    たぶんもう怖くないGit ~Git内部の仕組み~ - Qiita
  • branch を寝かせるときは TODO.txt を置いている - id:onk のはてなブログ

    タイトルがすべて。 思いついたら手を動かしてしまう性質なので、秘蔵のブランチを大量に持っている。 秘蔵のブランチというのは、動いたけどチームメンバーを説得するのが面倒とか、テスト書くのが面倒とか、だいたい動いているけどやりきるのが面倒とかで main にマージしていないヤツ。 例えばフレームワークのメジャーバージョン上げるブランチとか、依存ライブラリをより一般的/現代的なものに交換するブランチや、より良い設計を思いついたのでガッと書き換えてしまうブランチが多いかな。 だいたい 1 年所属していると 80 ブランチぐらい溜まるので、週 1 つ以上は何か作りかけてる計算になる。 ローカルブランチの数、プロンプトに出しておくかな……。(秘蔵のブランチが溜まってる— Takafumi ONAKA (@onk) March 28, 2017 もちろん自分でいいアイディアだと思っているから実装している

    branch を寝かせるときは TODO.txt を置いている - id:onk のはてなブログ
    masa8aurum
    masa8aurum 2021/09/30
    よさそう
  • Take the pain out of git conflict resolution: use diff3

    +1 for telling me about diff3 alone—how often I was looking on an incomprehensible conflict, cursing whoever is responsible for not telling me what the common ancestor had to say. Thank you very much. Well said, John of StackOverflow. The diff3 conflict resolution strategy is a hidden gem in git that has saved me uncountable conflict-resolution headaches and has turned git conflict resolution into

    Take the pain out of git conflict resolution: use diff3
  • 「GitとGitHub用語」の可愛いイラストを使用した解説に対して圧倒的わかりやすさを感じる人たち

    ちづみ @098ra0209 Webサイト屋さん👩🏻‍💻と古民家🏡のカフェ&コミュニティスペースimawoを運営しています/WordPress/figma/半Web半DIY生活 🛠 SoftwareDesignでgitイラスト連載中📖/ちゃんとプロになるWordPress基礎入門出版 ちづみ @098ra0209 去年Gitまわりを触った時に用語多いし意味がわけワカメで、うへぇ🤢てなったけど、いやぁでもこういう類はアウトプットを見据えたインプットが定着が早いし手が動くよなぁと思って「これだけはおさえよう」みたいなのを誰でもわかるように意識して書いて覚えたやつが出てきた…なつい🍉 pic.twitter.com/XHxagBso8S 2019-08-17 20:59:58

    「GitとGitHub用語」の可愛いイラストを使用した解説に対して圧倒的わかりやすさを感じる人たち
  • DropboxにGitの共有リポジトリを作成する手順 | vdeep

    こんにちは、okutani(@okutani_t)です。最近、Gitの素晴らしさをやっと理解してきた、へっぽこプログラマーな僕。 最初はローカルだけでGitを使っていましたが、「Gitの共有リポジトリでソースコードを管理したい!」と思うようになって、いろいろ方法を調べてみました。 GitHubを使う手のが一番よさそうな感じがしましたが、無料プランではソースコードが公開されてしまうので、それはちょっと恥ずかしい。有料プランにすればプライベートな共有リポジトリを作成できるのですが、そこまでして作りたくもないし。。 そんな人はぜひDropboxを使ってGitの共有リポジトリを作成してみましょう。無料で非公開の共有リポジトリを作ることができます。 また、記事ではDropboxとGitは導入済みと仮定して進めています。Dropboxのアカウントをまだ持っていない方は、この機会に作っておくと何かと便

    DropboxにGitの共有リポジトリを作成する手順 | vdeep
    masa8aurum
    masa8aurum 2019/04/09
    ローカルマシン上の別フォルダをリポジトリとして使えるということ? 便利そう。試そう。
  • 世の中の小説作家と編集者は今すぐ Word や G Suite を窓から投げ捨てて Git と GitHub の使い方を覚えるべきだ - Qiita

    世の中の小説作家と編集者は今すぐ Word や G Suite を窓から投げ捨てて GitGitHub の使い方を覚えるべきだGitGitHub小説 タイトルは釣りではありません。 最近、小説の執筆にあたって Git を導入して原稿の進捗履歴を管理しました。めちゃくちゃ便利でした。 GitHub を使って友人と一緒に校正校閲の作業をしました。めちゃくちゃ捗りました。 短編 SF 小説が短期間で完成しました。でも広告が目的ではないのでリンクは貼りません。 Git のことを何も知らない奴が GitGitHub の使い方を覚えたら便利だったし捗ったので、記事にしてしまおうぜという試みです。 2019年1月4日 追記 記事は「執筆」および「校正・校閲」の段階における GitGitHub の有用性を主張する記事です。 「組版」や「デザイン」の段階における Git の有用性について

    世の中の小説作家と編集者は今すぐ Word や G Suite を窓から投げ捨てて Git と GitHub の使い方を覚えるべきだ - Qiita
  • git pullの詳細な挙動を追ってみる - hokaccha memo

    git push/pullは何気なく使ってるけど実はよくわかってなかった。ことのきっかけはこういう質問。 hogeというリモートブランチをローカルのhogeブランチにもってきたい hogeをローカルのmasterにはマージしたくない pullでなんかこんな感じでいけそう? $ git pull origin hoge:hogeでもこれは間違えで、なぜか今いるブランチ(master)にhogeがmergeされるし、期待してる動作じゃない。正解はこう。 $ git branch hoge origin/hogeもしくはチェックアウトも同時にするなら $ git checkout -b hoge origin/hogeこう。自分は普段後者のやり方でやってたけど、なんで上のはダメで下のが正解なのか説明できなかったのでちゃんと調べてみた。 入門Gitと実用Git、あとhelpを参考にした。 ブランチ

    git pullの詳細な挙動を追ってみる - hokaccha memo
  • 横着で神経質な私とあなたに贈るgit add -p - Qiita

    特技はgit commit -a -m いろいろ修正です! ダメ。ゼッタイ。 しかしこまめにコミットするのは面倒臭いですよね。でもrebaseやらrevertやらcherry-pickするにもコミットログは綺麗にしたい。そんなズボラで凝り性なあなたはgit add -pでコミットを整えるといいと思います。

    横着で神経質な私とあなたに贈るgit add -p - Qiita
  • [Git] .gitignoreの仕様詳解 - Qiita

    対応バージョン この記事の内容は、少なくともGitのバージョン2.19.1までは対応している。 もし最新のGitで新しい動きがあれば随時更新する。 基 .gitignoreを使うと無視する(Gitのトラッキングの対象外とする)ファイル or ディレクトリを指定できる。 .gitignoreは複数のディレクトリに置くことができる。 深い階層の.gitignoreに書かれた指定の方が優先順位が高い。(後に解釈される) .gitignore内の記述は上の行から順に以下のように解釈される。 /を含まない行(fileなど) .gitignore以下の全サブディレクトリ下にあるこの名前のファイル or ディレクトリを無視する 末尾以外にのみ/を含む行(/file, /path/to/file, path/to/fileなど) .gitignoreが置いてあるディレクトリをカレントディレクトリとする相

    [Git] .gitignoreの仕様詳解 - Qiita
    masa8aurum
    masa8aurum 2018/06/23
    「末尾のスラッシュ」は directory のみにマッチさせる。 「末尾以外のスラッシュ」があると、.gitignore からの相対パスにマッチする。 「末尾以外のスラッシュ」がないと、場所は関係なく、名にマッチする。
  • Git for Windows 2.xのシステムコンフィグファイルは2つある - Qiita

    # 全ユーザで共有している設定を出力する git config --system --list # ユーザ固有の設定を出力する git config --global --list # リポジトリ固有の設定を出力する git config --local --list の3つのコマンドを続けて実行したときと同じものになるはずである。 ところが、Git for Windows 2.7.0のGit Bashで同じコマンドを実行してみると、 $ git config --list core.symlinks=false core.autocrlf=false color.diff=auto color.status=auto color.branch=auto color.interactive=true help.format=html http.sslcainfo=C:/Program Fi

    Git for Windows 2.xのシステムコンフィグファイルは2つある - Qiita
  • クラウド破産しないように git-secrets を使う - Qiita

    AWS のクレデンシャルを GitHub に載せてしまう事故 相変わらず続いてますが、以下秘密情報の公開を防ぐ方法。 ( AWS の Glacier とか GCP の BigQuery とか 課金の仕組み系も気をつけないとですね・・) AWS が公開しているツール。パスワードなどの秘密情報を 誤って git リポジトリに commit する ことを防いでくれます。 https://github.com/awslabs/git-secrets 設定手順 1. インストール ツールを置いておくためのフォルダを作り、 あとはそこにソースを落としてきて make install するだけ。

    クラウド破産しないように git-secrets を使う - Qiita
  • Git 別のリポジトリを履歴を残したまま取り込みたい - かもメモ

    Gitで別々に作ってたリポジトリをコミットログを残したまま1つにしてしまいたい時のめも。 例えばkankore_repoとkuchikukan_repoという2つのリポジトリが別々にあったとします。 これらを別々のリポジトリで管理するのが大変になってきたのでkankore_repo内の'destroyer'ディレクトリに kuchikukan_repoで管理していた全てをコミットログを残したまま入れてしまいたい。そんな感じです。 図で書くと /kankore # kankore_repo リポジトリのあるディレクトリ |--- .git /kuchikukan # kuchikukan_repo リポジトリのあるディレクトリ |--- .git これを ↓ のような感じにしたいのです! /kankore # kankore_repo リポジトリのあるディレクトリ |--- .git |--

    Git 別のリポジトリを履歴を残したまま取り込みたい - かもメモ
    masa8aurum
    masa8aurum 2018/06/23
    git remote add ... と git merge -X subtree=foo ...
  • Choosing between Single or multiple projects in a git repository?

    In a git environment, where we have modularized most projects, we're facing the one project per repository or multiple projects per repository design issue. Let's consider a modularized project: myProject/ +-- gui +-- core +-- api +-- implA +-- implB Today we're having one project per repository. It gives freedom to release individual components tag individual components But it's also cumbersome t

    Choosing between Single or multiple projects in a git repository?
    masa8aurum
    masa8aurum 2018/05/30
    複数 project をそれぞれ別々の Git repo にするか、それとも 1 つの Git repo の中に入れるか
  • 他人のコミットをgit merge --squashするべきでないのではという話 - Qiita

    最近某OSSに出されたPRが、git merge --squash <branch> でマージされたことにより、コミットのAuthorが書き換えられてしまったことが一部界隈で話題になっていました。この件にはマージを行った人に悪意はなかったようなのですが、gitの理解不足により生じてしまった案件だとすると悲しい話なので一応メモ 何が起きたか コミッターが複数の内容が含まれたPRを送った 管理者はその中の一部の内容だけをマージするために、管理者はgit merge --squashを実施し、コミットを改変した上でmergeを実施した ←これが問題 コードの内容はコミッターのものなのに、Authorだけ管理者にすげ変わってしまいコミッターのモチベを損ねた そもそもsquashするとどうなるの ここに分かりやすくまとまっています。 アジャイルSEを目指すブログ 図で分かるgit-mergeの--f

    他人のコミットをgit merge --squashするべきでないのではという話 - Qiita
    masa8aurum
    masa8aurum 2018/04/15
    squash すると author が変わるらしい
  • How do you merge two Git repositories?

    Consider the following scenario: I have developed a small experimental project A in its own Git repo. It has now matured, and I'd like A to be part of larger project B, which has its own big repository. I'd now like to add A as a subdirectory of B. How do I merge A into B, without losing history on any side?

    How do you merge two Git repositories?
  • モノリシックなバージョン管理の利点 | POSTD

    以下は、私がよく交わす会話の一例です。 人物A:FacebookやGoogleは、巨大なモノリシックリポジトリ(モノレポ)を使っているんだってよ。 私:みたいだね。あれは当に便利だと思う。 人物A:僕に言わせれば最悪の愚行さ。全てのコードを単一のリポジトリに入れるのがヒドイ考えだと、FacebookやGoogleはなぜ思わないんだろうか。 私:FacebookやGoogleエンジニアたちも小さなリポジトリには精通しているだろうけど( 濱野純(Junio Hamano) 氏はGoogle勤務だし)、単一の大きなリポジトリの方が、きっと”ある理由”で好みなんだよ。 人物A:なるほどね。僕としては、まだちょっと違和感はあるけど、モノレポが使われる理由は分かったような気がするよ。 “ある理由”はかなり長いので、同じ会話を何度も繰り返さなくていいように、ここに書き留めておこうと思います。 シンプ

    モノリシックなバージョン管理の利点 | POSTD
  • 権限がなくてGitHubにpushできなかった話 - Araoの技術ブログ

    GitHubにpushしようとしたら、パーミッションに関するエラーメッセージが表示されてpushできなかった話です。 調べてみても解決方法がよく分からなかったので、数時間前の僕と同じエラーで困っている人のために書いてみます。 gitGitHubに関しては初心者もいいところなので、書き方が変だったり言葉を誤って使用していたりするかもしれません。ご了承ください。 数週間前に、SSH公開鍵のGitHubへの登録を済ませ、Macのターミナルからお手軽にGitHubを使えるようになりました。その後、いろいろありまして、所属しているOrganizationのRepositoryに参加することになりました。 さっそくgit cloneして、コードをちょちょいと書き換え、addしてcommitしてpushしようとしたのですが、どうもpushができない。途中まで順調だったのに、なぜ? というわけでエラーメ

    権限がなくてGitHubにpushできなかった話 - Araoの技術ブログ
    masa8aurum
    masa8aurum 2018/01/15
    GitHub 公式に連絡した例。おそらく、まれ。