Loading... Git Internals by Nikita Leshenko Comments Leave a comment for this change: Name: Email: Submit Thank you, your comment will be posted shortly! Diff Download Clone μgit using: Copy Checkout this commit: Copy File - Loading...
猫より犬好きプログラマのにゃんです。主な仕事はマサカリの投擲とベランダに来る野良猫の餌やりです。よろしくお願いします。 皆さんバージョン管理システムを使ってますか?今では多くの現場でGitを使っていると思います。ゲーム開発など巨大なバイナリのアセットが多い現場ではGitではなくプロプライエタリのPerforceを使用されているかもしれません。他にもGitと同時期に開発されたMercurialというツールもありますが、いずれにせよ現在のdevシーンではバージョン管理システムはあって当たり前のツールの一つになっています。 弊社ではGitを使っています。Gitは機能豊富ですがその分知られていない機能も多く、ネットを見渡せば色々な記事が転がっていますが、今回は私も一つGitの便利機能を紹介したいと思います。 worktreeで複数の作業ディレクトリを作る 複数のブランチを同時並行で修正したくなった
前回のエントリで作った Docker イメージ motemen/datastore-emulator は、google/cloud-sdk をベースにしているが、このベースイメージがけっこうな頻度で更新される。とうぜん自分はその追従に手を煩わせる気はなくて、全部自動でやってほしい。 やりたかったこと google/cloud-sdk:x.y.z がリリースされたら、 リポジトリ中の ./Dockerfile と ./alpine/Dockerfile の FROM を google/cloud-sdk:x.y.z(-alpine) に更新し、 x.y.z タグを打って git push することで、 Docker Hub に x.y.z(-alpine) タグとしてリリースする これを自動かつ無料で実現したい。 採用しなかった案: 自分でなんか作る はじめは適当な GitHub Actio
「2つのgitリポジトリがあって、その片方をもう一方に取り込みたい」という状況を考えます。依存ライブラリのソースを自分のプロジェクトで保持したい、といった状況が典型的でしょう。 この場合、通常は git submodule を使うと思います。 git submodule であれば、他のプロジェクトを履歴ごと自分のソースの一部として管理できて、かつ双方の履歴をきれいに分離できます。 Git - Submodules ただ、双方の履歴が分離できるということは、双方の履歴を混ぜられないということでもあります。そのため、 git submodule は、他のプロジェクトのソースに自プロジェクト独自の変更を加えて管理するといった用途には向かないように思います。ではどうすればいいだろうか、という試行錯誤の記録です。 git submodule で取り込む 「Aのcloneにおけるsubmoruleへの
はじめに git checkoutの機能 既存のブランチに移動する 新しいブランチを作成してそれに移動する あるファイルを特定のコミットハッシュ/ブランチから取得 checkout vs switch & restore 対応表 はじめに gitのバージョン2.23からgit switch及びgit restoreコマンドが入り、git checkoutがこれらの2つに分離されるようになりました。これに伴い、git checkoutも将来的に廃止の方向に向かうでしょう。 ※switch/restoreはまだ実験的導入のため、今後文法などが変更になる場合があります。 git checkoutの機能 git checkoutには大きく分けて以下のような機能があります。 既存のブランチに移動する 例えば自分が作業ブランチbranch-aにいたとして、masterブランチに移動したい時に使います。
ツイッターでポロっとつぶやいたのだけど、ここでも記事をば。 某プログラマが34年前に発売された某有名ファミコンゲームのソースをgitに公開したので、以下にリンクを置いておく。 GitHub - omuanko/nnjhtrkn: Famous Ninja game for NESFamous Ninja game for NES. Contribute to omuanko/nnjhtrkn development by creating an account on GitHub. 某プログラマからの箴言は以下。 ■某プログラマ ちなみに びるど とおりますうご(www act65 を cpm86 エミュで 試してみた ソース見られるの恥ずかしい いまさらおそいか ちなみに act65は つけてないよ どっかで ひろってね ところで、イマドキな方には全く理解できないことがいろいろあるだろう
Kubernetes Advent Calendar 2019 その3 の 2日目です。 WeaveworksによってGitOpsが提案されてから2年ほどが経ち、僅かですが本番導入事例も耳にするようになりました。とはいえ案外まとまったドキュメントは作られていません。特にGitOpsで複数の環境 (e.g., 開発環境、本番環境、etc.) をハンドリングするためには欠かせないブランチ戦略については殆ど語られていないようです。これではたとえGitOpsの概要 (Single Source of Truthの概念等) を知っていても本番導入には大きなハードルが残ったままで、本番導入事例がまだまだ少ないことにも納得できてしまいます。そこでこの記事ではブランチ戦略に焦点を当て、サンプルプロジェクトを交えながら紹介していこうと思います。k8s/GitOps中級者向けです、多分。 以前GitOpsにつ
Git is hard: screwing up is easy, and figuring out how to fix your mistakes is fucking impossible. Git documentation has this chicken and egg problem where you can't search for how to get yourself out of a mess, unless you already know the name of the thing you need to know about in order to fix your problem. So here are some bad situations I've gotten myself into, and how I eventually got myself
CentOS 6 の Git で急に fetch や pull ができなくなってハマったので、その記録です。なお、サーバー側は GitLab です。 症状 以前はできていたはずのリポジトリで git fetch が下記のようなエラーを出して、実行できなくなりました。 同じく、別ディレクトリで同一サーバーからの git clone もできなくなっていました。ただ BitBucket のリポジトリは同症状なのに GitHub のリポジトリだけは成功してしまうという困った状態でした。 なお OpenSSL は yum で更新できる最新の状態でした。 試行錯誤 1. git の SSL 検証を OFF にしてみる よくある対処法ですが、 SSL/TLS 系のエラーなのは間違いなさそうだったので、 SSL 検証を OFF にしてみましたが、効果はありませんでした。 2. GitLab 側の認証を外す
Code Privacy. Just because you support OSS, doesn't mean you want your name forever associated with every project you ever touch Last login: Sat Aug 5 2017 23:34:14 on ttys000 ➜ ~ git clone https://github.com/AnalogJ/gitmask.git ➜ ~ git checkout -b feat_branch ➜ ~ echo "update readme" >> README.md ➜ ~ git commit -am "Commits will be squashed and messages overwritten" ➜ ~ git remote add gitmask htt
2019/12/11 分かりやすいサイトへのリンクを追加しました hub コマンドの hub fork について追加しました 2013/04/11 興味深い手法があれば随時追加していきます ネットを検索すると、色々な手法が出てきますが、自分としては「WEB+DB PRESS plus 開発ツール徹底攻略」p.71 に載っていた以下の手法がシンプルで良く理解できました。 本家リモート upstream を追加する方法 本家リポジトリの例として、実際にGitHubに存在する練習用リポジトリ git@github.com:DQNEO/Renshu.git を使います あなた (youraccount) が既にForkしているRenshuリポジトリをcloneします。 $ git clone git@github.com:youraccount/Renshu.git Cloning into 'R
この記事は CAMPHOR- Advent Calendar 2017 8日目の記事です. 学位論文を書く季節になってきました.論文を書く際にはきちんとバックアップを取っておかなければならないなど,実際の執筆以外でも気を遣わなければならないことが多くあります.この記事では,ソフトウェア開発における継続的インテグレーション (CI) や継続的デリバリー (CD) の考え方を取り入れ,様々なツールを活用することで,論文の執筆に集中できる環境を整備する方法を紹介します. 対象読者 基本的に TeX を使って論文を書く人を想定しています.(Word などで論文を書かざるを得ない環境にいる方には申し訳ない) 目標 この記事では以下のようなものを作っていく方法について説明します. Git と GitHub でバージョン管理 CircleCI でコンパイルやスペルチェックを実行 生成された PDF ファ
This essay explains how Git works. (If you’d rather absorb the same information as a talk, you can watch this video instead.) The essay assumes you understand Git well enough to use it to version control your projects. It focuses on the graph structure that underpins Git and the way the properties of this graph dictate Git’s behavior. Looking at fundamentals, you build your mental model on the tru
Gitで自宅サーバに置いていたレポジトリをWindows PCへCloneしようとしていた時の事 事象 以下のようなエラーが発生した fatal: early EOF fatal: The remote end hung up unexpectedly fatal: index-pack failed 原因 調べていくと原因はレポジトリがでかすぎることっぽい。 解決策は大体以下3つなのかなと思った。 1.gitのhttp通信制限を増やす 2.サーバー側でgc&repackする 3.そもそも一度にcloneする量を減らす 事象の原因によって1~3のどれで直るかは違う模様。 筆者は1を試したがダメで、3を試してうまくいった。 各解決策がどういった詳細な原因と結びついているのか、については調べていない。 1は1つのファイルに対する制限で、3は全体の容量を減らしてるから違うとかそんな感じなのかなと
GitHubにpushしようとしたら、パーミッションに関するエラーメッセージが表示されてpushできなかった話です。 調べてみても解決方法がよく分からなかったので、数時間前の僕と同じエラーで困っている人のために書いてみます。 gitやGitHubに関しては初心者もいいところなので、書き方が変だったり言葉を誤って使用していたりするかもしれません。ご了承ください。 数週間前に、SSH公開鍵のGitHubへの登録を済ませ、Macのターミナルからお手軽にGitHubを使えるようになりました。その後、いろいろありまして、所属しているOrganizationのRepositoryに参加することになりました。 さっそくgit cloneして、コードをちょちょいと書き換え、addしてcommitしてpushしようとしたのですが、どうもpushができない。途中まで順調だったのに、なぜ? というわけでエラーメ
ピクシブ株式会社 Advent Calendar 2016の時間です。今回はピクシブ株式会社でエンジニアをしている @catatsuy が担当します。今回は意外と書いてなかったのでGitLabを社内でどう運用しているかの話を書こうと思います。 GitLabとGitHub ピクシブ社内では以下の2つの方法でソースコードを管理しています。 自社でホストしているGitLab GitHub Organization それぞれ以下の特徴があります。 GitLabのメリット 自社でホストしているため、アメリカにサーバーがあるGitHubよりもgit cloneでリポジトリをダウンロードする場合などは速い オープンソースのプロジェクトのため、社内のサーバーにインストールするだけで使える ソースコードを読めば内部でやっていることが分かる ユーザー数やリポジトリ数などで料金がかからないため、気軽に使える G
このエントリでは、Gitの基本的な使い方は理解している前提で、そのリポジトリの構造をなるべく正確に説明する。 ここに書いてあることは概ね、筆者がO’Reillyの蝙蝠本を読んで得た知識に基づく。 リポジトリの構造というとコアで上級者向けの知識のように聞こえるが、これをまず理解しておくことで強力で複雑なGitの機能を習得するのが非常に楽になる。 具体的には、Gitにおけるブランチの概念などの理解が深まったり、git resetなどのGit特有で分かり辛いコマンドを自信をもって使えるようになったり、なにより、Gitを使う上での最大のハードルである インデックス や HEAD の概念を完璧に理解できるというメリットがある。 チュートリアルを終えたくらいの初心者にこそ読んでほしいエントリである。 Gitリポジトリの中身 Gitのリポジトリは、プロジェクトをクローンしたときとかにできる.gitディレ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く