タグ

gitに関するmztnsのブックマーク (94)

  • Dangit, Git!?!

    Gitって難しい。簡単にぐちゃぐちゃの状態になっちゃうし、失敗を直す方法を知ろうとしたところで不可能。Gitのドキュメンテーションって卵とニワトリの問題みたいなところがあって、ハマりから抜け出すために知ってないといけない事柄の名前をあらかじめ知っていないと、どうやって問題を解決したらいいのか検索することすらできないんだよね。 だからここに、私が遭遇したことのあるよろしくない状況から、最終的にどうやって抜け出したかをフツーの日語で書いていこうと思う。 もー、超絶やらかした。お願い、Gitには魔法のタイムマシンがあるって言って? git reflog # こうすると、Gitでやったことがすべてのブランチに渡って全部見えるよ! # どのブランチにも HEAD@{index} ってインデックスがあるはずだから # やらかす前のやつを見つけて git reset HEAD@{index} # ほら

    mztns
    mztns 2024/08/09
  • 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

    mztns
    mztns 2024/02/17
  • [Git] 1回の git push で複数のoriginに送信する - ねこの足跡R

    普段GitHubを利用しているのですが、たまにサービス毎落ちるんですよねw 大抵の場合は仕事を切り上げる理由になって良いのですが、取り急ぎpushだけでもしたいといった場合に困るわけです。VCSはバックアップも兼ねてますからね。 そんなときに普段から別のリポジトリを作成し、バックアップ用に毎回pushしておきます。 コマンドは以下の通り。 $ cd (作業ディレクトリ) $ git remote set-url --add origin git@github.com:katsube/example.git 正常に登録されたか確認しておきます。1-2行目が最初からあるもの、3行目が新たに追加した物ですね。 $ git remote -v origin git@github.com:katsube/original.git (fetch) origin git@github.com:katsu

    [Git] 1回の git push で複数のoriginに送信する - ねこの足跡R
    mztns
    mztns 2024/01/15
  • Git で複数のコミットを1つにまとめられる「スカッシュ」というテクニック | DevelopersIO

    こんにちは、CX 事業部 Delivery 部の若槻です。 今回は、Git で複数のコミットをまとめる方法を確認してみました。 ちなみに Git で行うこの操作のことを「スカッシュ(squash)」するとも言います。squash は「押しつぶす」とか「ぺちゃんこにする」という意味だそうです。 環境 $ vim --version VIM - Vi IMproved 9.0 (2022 Jun 28, compiled Jun 23 2023 22:12:29) macOS version - arm64 Included patches: 1-1544 確認してみた スカッシュしたいコミットが「連続する」場合と「連続していない」場合の 2 通りの方法を確認してみました。 連続するコミットの場合 まずは「連続する」複数のコミットをスカッシュする場合の方法です。 スカッシュ前の状態 次のよう

    Git で複数のコミットを1つにまとめられる「スカッシュ」というテクニック | DevelopersIO
    mztns
    mztns 2023/10/07
  • git logの内容を検索する-Sと-Gの違い - $shibayu36->blog;

    ずっとgit logの内容を検索するときに-Sオプションを使っていたが、実は近いオプションに-Gオプションもあり、探したい内容によっては使い分けないとダメということを初めて知った... 詳しくはhttps://git-scm.com/docs/git-logの-Sと-Gのドキュメントを見てほしい。簡単にまとめると -Sは指定した文字列の出現回数が変わるdiffがあるcommitを検索する -Gは指定した正規表現がマッチする文字列がdiffにあるcommitを検索する ドキュメントの事例部分が結構わかりやすくて、以下のようなdiffがあった場合 + return frotz(nitfol, two->ptr, 1, 0); ... - hit = frotz(nitfol, mf2.ptr, 1, 0); -S frotzで検索をかけると、frontsの出現回数は変わってないのでマッチしない

    git logの内容を検索する-Sと-Gの違い - $shibayu36->blog;
    mztns
    mztns 2023/09/21
  • git pull と git pull --rebase の違いって?図を交えて説明します! | KRAY Inc

    はじめに こんにちは、クレイの亀井です。ここ最近一気に気温が上がりましたね。顔に重点的に汗をかくタイプの私には憂な季節がやってまいりました さて、今月正式リリースしました(!) DocBase プロジェクトではクレイ外部のデザイナーの方と一緒に開発しています。SourceTree で Git を使っている方で、軽いデザイン修正などは弊社の Rails プロジェクトに直接手を加えてプルリクエストを送ってくれます。 こちらのデザイナーさんに「プルリクエストを送る際は、作業ブランチで git pull --rebase origin master してから送ってもらえますか?」とお願いすると「pull はわかるんですけど、この --rebase ってなんですか?これつけると何が変わるんですか?」と質問がきたのです。 作業ブランチで git pull --rebase origin master

    git pull と git pull --rebase の違いって?図を交えて説明します! | KRAY Inc
    mztns
    mztns 2023/01/12
  • .ssh/configで複数アカウント運用するならIdentitiesOnlyを有効化すべし

    去年の12月に「Gitで複数アカウントのssh接続ができたー」みたいな記事を書いてましたが、最近また問題が勃発。各リポジトリのgitのconfigファイルで正しくssh接続名を指定しても、sshでユーザ切り替えをしようとしても、なぜかユーザーが切り替わりません。 自分の環境ではGitHubアカウントごとにssh接続用の秘密鍵を使い分けているのですが、どうしても片方の秘密鍵でログインされてしまいます。 おかしいなと思ってググったら、~/.ssh/configで複数アカウントを運用する上で重要な設定IdentitiesOnly yesが抜けていたことが判明しました。 問題点 gitのconfigファイルに接続先を正しく設定していても、なぜかpermission deniedになってしまう。 さらに、sshコマンドでアカウント切り替えをしようとしても、なぜかアカウントが切り替わらない。 例) $

    .ssh/configで複数アカウント運用するならIdentitiesOnlyを有効化すべし
    mztns
    mztns 2023/01/11
  • 大学の情報工学科はGitを教えませんが、それで実務ができるのでしょうか?企業は大学で習わなくても自分で勉強しており、入社したらGitは当たり前に使える人間が欲しいですか?

    回答 (13件中の1件目) 社会に出てすぐ役立つスキルを教える大学は「職業訓練校」です(暴言) 大学の情報工学科の役目を図で表してみましょう。 まず、横軸は分野・ジャンルを表します。世界全体はもっと広いものですが、画面の横幅には制限があるのでご勘弁を。 縦軸は一般から専門までの、専門性の高さを表します。 一番下の層は「常識」です。だれもが持つべき知識や能力です。この常識をなるべく埋めようと、長い年月をかけて義務教育が行われます。 下から二番目の層は「スキル」です。社会で付加価値を生む専門性です。例えば、IT・財務・外国語・プレゼンテーション・交渉術・チームマネジメント・・・等...

    大学の情報工学科はGitを教えませんが、それで実務ができるのでしょうか?企業は大学で習わなくても自分で勉強しており、入社したらGitは当たり前に使える人間が欲しいですか?
    mztns
    mztns 2022/11/30
  • 初学者が覚えたいチーム開発でのGit操作 - Qiita

    はじめに 個人開発の場合はそんなに意識することがないGitですが、チーム開発においては重要な役割を果たします。 はじめのうちは構造が見えず混乱するかと思いますが、流れをイメージ出来ればそんなに難しいものではありません。 これを見れば開発に必要なGitコマンドとリポジトリの構造、Githubでの管理手順を理解し開発の現場で実践できるようになります。 そもそもGitとは? 変更履歴を記録・追跡するための分散型バージョン管理システムである。 ざっくりいうとファイルのバージョン管理が簡単にできるツールといえます。 目次 Gitを理解するための基用語 開発の流れ その他開発で覚えておきたい便利コマンドと注意点 vscodeでのGUI操作について 最後に Gitを理解するための基用語 リポジトリ(repository) ファイルやディレクトリを入れて保存しておく貯蔵庫 リモートリポジトリ...特定

    初学者が覚えたいチーム開発でのGit操作 - Qiita
    mztns
    mztns 2022/09/06
  • 趣味の開発で使えるGitHubのブランチ運用 - t-hom’s diary

    今回はGitHubの話。 基的な使い方は入門書がいくらでも出ているので今更私が解説するまでもないけど、ブランチ運用については腑に落ちるまで少し苦労したので今回は自分流のブランチ運用をメモとして残しておこうと思う。 ガチの開発勢から色々と文句を言わるかもしれないけど、趣味開発なのでご容赦願いたい。 thomの2ブランチ開発フロー 私は次の表の1~8のような流れで開発を進めている。 このブログの読者はExcelマクロ開発者が多いのでバージョン管理システムを使わないExcel開発を例えとして挙げてみた。対比させるとGitでやっている作業が何をしているのか少しは分かりやすいかなと思う。 来は2~4を繰り返してこまめにdevブランチを更新しつつ、ある程度キリの良いところで充分にテストをしたうえでmasterへ取り込むんだけど、なんせ一人で開発していてユーザーも大抵自分ひとりというケースが多いので

    趣味の開発で使えるGitHubのブランチ運用 - t-hom’s diary
    mztns
    mztns 2022/01/10
  • たぶんもう怖くないGit ~Git内部の仕組み~ - Qiita

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

    たぶんもう怖くないGit ~Git内部の仕組み~ - Qiita
    mztns
    mztns 2021/12/25
  • Git はなぜ空のディレクトリを無視するのか? - Qiita

    LAPRAS アドベントカレンダー2021 の 17 日目の記事です。 概要 Git では空のディレクトリをそのままリポジトリに追加することはできません。 この問題は.gitkeep等を作成することで解決しますが、そのやり方を知ったとき 「なぜ普通のファイルと同じように追加できないのだろう?」 と疑問に思った方も多いのではないでしょうか。 というわけで記事では、空ディレクトリを追加できない仕様になっている理由について調査してみました。 Gitが管理するのはファイルの内容 「空ディレクトリをaddできないのは何故か?」という疑問への答えとして、 「そもそもどんなディレクトリもaddはできないから」がまず挙げられるでしょう。 もちろんgit add directory/とコマンドを打つこと自体は可能です。 しかしこのとき実際にインデックスに追加されるのは、そのdirectory自身ではなく、

    Git はなぜ空のディレクトリを無視するのか? - Qiita
    mztns
    mztns 2021/12/19
  • Gitリポジトリを別のGitサーバーに移行する - Qiita

    やりたいこと 既存のGitリポジトリを別のGitサーバーに移行する その時、コミット履歴なども移行する 前準備 Gitリポジトリを移行する先のリポジトリを作成する 作成し終わったら、GitのURL(末尾が.gitで終わるURL)をコピーしておく やってみる 調べてみると、手順が既に存在する 参考:Gitレポジトリを移行する方法 この通りに実施してみればできたので、詰まったところを説明 $ git clone --mirror <SOURCE_REPOSITORY_URL> $ cd <REPOSITORY> $ git push --mirror <DESTINATION_REPOSITORY_URL> コマンド自体はこの通りでOK それぞれのパラメータについて少し説明 SOURCE_REPOSITORY_URL 移行する対象のリポジトリのURLのこと 末尾が.gitで終わるURL REP

    Gitリポジトリを別のGitサーバーに移行する - Qiita
    mztns
    mztns 2021/11/02
  • git gc の仕組みを原理から理解してサイズを 136MB → 7.2MB(95%減)まで削減した時の勉強メモ

    個人用メモです。 「git gcってあんまし容量減らないよなぁ」 と思ったのが動機です。調べたけどパッと腑に落ちる記事がなかったので「自分で git のソースコード見た方がいいな」と急にモチベ発動してグワっと勉強しました。またついでに歴史改変の方法も調べたのですが、公式で既に WARNING が出てるほど非推奨化されてるfilter-branchを使用してる記事が多かったので、2021 年現在で多分一番推奨されてるfilter-repoを使ってやる方法もまとめました。 ちなみに容量減らしても高速化するかというとそこまで単純ではないです。そもそも減らさなくても partial clone で blob オブジェクトを必要最低限に指定して昔の blob をデフォルトで持ってこないようにしたり(--no-checkoutと併用するとより効果有る)、その後当に自分が必要なやつだけ sparse-

    git gc の仕組みを原理から理解してサイズを 136MB → 7.2MB(95%減)まで削減した時の勉強メモ
    mztns
    mztns 2021/05/13
  • Oh My Git! – git の使い方を学べるゲーム

    Oh My Git! は、バージョン管理ツール git の使い方を学ぶためのゲームです。 中央にgitツリーのグラフが表示され、手元にはgitコマンドを表すカードが配られます。 カードを使わずに右側のターミナルでコマンドライン操作することも可能。お題で出てきた課題を満たすためのカード/コマンドを正しく実行すると、右側の達成項目が緑に反転し、すべて達成すればそのレベルはクリアです。 commit を指定し、そこにカードを捨てることでカード上のコマンドを適用。 levels にあるステージ一覧から、好きな項目について遊ぶことが可能です。 カードを使っても解けますが、コマンドラインで解くと右端のボックスを黄色にすることができます。 ソースコードは GitHub で公開されていて、バイナリ版も Windows, MacOS, Linux 向けに提供されています。 テキストファイルで新たなlevel

    Oh My Git! – git の使い方を学べるゲーム
    mztns
    mztns 2021/02/27
  • 美容内服薬ラボットメディカルクリニック【公式】

    オンライン診療とは、自宅にいながら医師に直接毎日のスキンケアを相談したり、医薬品や漢方薬の処方を受けることができたりする診察のこと。お薬が処方された場合は郵送で薬局等にお薬を取りにいかなくても、自宅に届けられます。 普段、病院では発生する診察費用や処方箋費用はもちろん、お薬代以外の費用は一切かかりません。

    美容内服薬ラボットメディカルクリニック【公式】
    mztns
    mztns 2019/07/02
  • Gitea - Go製のGitリポジトリ管理サーバ

    Gitリポジトリは分散型ではありますが、一つ信頼できるサーバがある方が便利です。そこでGitHubやBitBucketなどが使われるわけですが、企業によってはセキュリティ上の理由で使えないこともあるでしょう。 そんな方に使ってみて欲しいのがGiteaです。日語化も行われているGitサーバです。 Giteaの使い方 トップページです。Goで書かれているのでサーバのOSを選ばず実行できるのが特徴です。 登録しました。個人のリポジトリはもちろん、組織にも対応しています。 新しいリポジトリを作りました。この辺りはGitHubに似ていますね。 ちゃんと日語化されています。 自分に割り当てられている課題があれば、ここで一覧表示されます。 プルリクエストです。 履歴です。 GiteaはWikiの機能があったりと、基的にはGitHubと同じような機能が並んでいます。さらに課題をプロジェクトを横断して

    Gitea - Go製のGitリポジトリ管理サーバ
    mztns
    mztns 2017/02/07
  • Microsoft、巨大リポジトリを快適に管理できるGVFS(Git Virtual File System)を発表 | ソフトアンテナ

    Microsoft日、巨大なGitリポジトリを快適に管理するための専用ファイルシステム「GVFS(Git Virtual File System)」を発表しました(slashdot)。 GVFSはGitリポジトリを格納するための専用ファイルシステムで、リポジトリを仮想化し、巨大なリポジトリでも高速な動作を可能とすることを目指して開発されているものです(具体例としてあげられているWindowsのコードベースは350万件を超えるファイルが存在し、サイズは270GBを超えている模様)。 必要なファイルだけをダウンロードすることでcloneを高速化し、リポジトリの状態を積極的に管理することで、checkoutやstatusなどに必要な時間も短縮します。例えばcloneにかかる時間が12時間から数分に、checkoutは2〜3時間から30秒に、statsuは10分から4〜5秒に短縮されるとしてい

    Microsoft、巨大リポジトリを快適に管理できるGVFS(Git Virtual File System)を発表 | ソフトアンテナ
  • fork元のリポジトリへの変更をforkしたリポジトリに反映する - Qiita

    20190429追記 わかりにくい表現を修正しました。 内容の変更はしていません。 追記ここまで forkしたリポジトリのブランチを、fork元のリポジトリのブランチに追従させる、ということをGitコマンドで実行します。 このコマンドをJenkins等で実行することもできます。 ※ここではGit初心者に役立つ「よく使うコマンド集」②で紹介したコマンドを使用しています。 0.今回の環境 fork元のリポジトリ名:fork_master 追従したいブランチ:develop forkしたリポジトリのリモートリポジトリ名:origin 1.fork元のリポジトリがリモートリポジトリとして存在しなければ、リモートリポジトリとして追加する 1.リモートリポジトリの一覧を表示して確認します。

    fork元のリポジトリへの変更をforkしたリポジトリに反映する - Qiita
    mztns
    mztns 2016/12/17
  • 【派閥別】Gitのコミットを間違えたときの対処法まとめ - 本当は怖いHPC

    追記:たくさんブクマしていただいて驚いております。ブクマコメントだと、やはり git push -f は反則だろという意見がサイレントマジョリティのようですが、そこはそれ、自 己 責 任 追記2(2011/11/07):commit messageをミスった場合について訂正しました。 git rebase -i で直近のコミットを "edit" にして修正すると、 「--amend使えや」と言われるようです。 gitのコミットをしくじった時の対処法について、一覧性の高いまとめがなかったので作りました。正確さは保証できないので、コマンド名ヒントに自分でググって下さい ほかのやり方があるよ、間違ってるよ等のご指摘歓迎です。 派閥別 gitでコミットミスった時のまとめ | ├─ 一人で使ってるよ |   | |   ├─ 手元に変更を取り戻したいよ(1)(そうだね、add忘れだね派) |   |

    【派閥別】Gitのコミットを間違えたときの対処法まとめ - 本当は怖いHPC
    mztns
    mztns 2016/11/05