物理情報工学ソフトウェア開発演習
はじめに 都内でひっそり見習いエンジニアをしている@noshishiです。 addしてcommitするプログラムの作成を通じて、Gitを内部から理解しようという記事です。 前書き 昨年末、Gitの記事を書いて、理解できたなら作れるのではと思いったったのがこの記事の出発点です。 これを機に新しいプログラミング言語にも触れてみて、いろいろ学べたらと思いRustで今回挑戦しました。 (この時は、新たなことを同時に取り組み絶望すること知る由もない著者でした。軽い気持ちで手を伸ばした自分をしばきたいです。。。) 実際に作成した(継続開発中ですが)リポジトリは、こちらです。 ※一応ローカルでの一直線の開発はできそうな程度までは作成できました。コードのしょぼさはご容赦ください。 この記事だけでは説明しきれない部分があることをご容赦ください。 もちろん、間違い等あれば、ぜひコメントいただけると幸いです。
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コマンド4つをまとめました。 git fetch -p -pを付けることで、削除されたリモートブランチのリモート追跡参照が削除されるようになります。 例えばリモートリポジトリでbranchAが削除されると、git fetch -pによりローカルリポジトリ上のorigin/branchAが削除されます。 ※ git fetch --pruneも同様です ※ git pull -p/--pruneでプルする際に行われるフェッチにも適用できます git log --oneline コミットハッシュが短縮され、コミットログが1行で表示されるようになります。 ※ git log --abbrev-commit --pretty=onelineも同様です 表示例: git logの場合 commit cmhash2commithash
私がこれまでGitの研修講師やブランチ戦略のコンサルティングをおこなってきた経験に基づいて、この記事を書きます。 Gitのワークフローについては自転車置き場の議論になりがちであまり乗り気がしないのですが、最近少し発見があったのと、実際に多くの現場で明らかにフィットしないのに git-flow を検討したり採用したりしようとして苦労をしている様を目撃することが多いので書くことにしました。 この記事で主張する内容はタイトルの通りですが、まず前提として以下を宣言しておきます: 全てのケースに100%フィットするようなワークフローは存在しない git-flowがフィットするケースも探せばあるかもしれない 例えばすでに何年もgit-flowでうまく回せてるよ、など どのようなワークフローを採用するかは最終的にはあなた(のチーム)が判断すべき さて、 git-flow は 2010年1月「A succ
Gitのおすすめエイリアス5選を読んで自分も幾つか晒してみようと思った。 シンプルなコミットログとグラフを表示する git l l = log --graph --decorate --pretty=oneline --abbrev-commit git log を利用するとコミットログからメッセージだったり、誰がコミットしたのか読めるけど殺風景だし、あまりどのブランチがどうマージされたのか理解しずらい。 単純なコミットメッセージとブランチの関係性をパッと知りたい時によく利用している。こんな感じで表示される。 人に優しい変更差分を表示する git dsf dsf = "!f() { [ -z \"$GIT_PREFIX\" ] || cd \"$GIT_PREFIX\" && git diff --color \"$@\" | diff-so-fancy | less --tabs=4 -
GitHubの使い方を学ぶ「GitHub Skills」が無料公開。GitHubを実際に操作してMarkdown、Pages、Pull Requests、マージのコンフリクト解消などを体験 GitHubは、実際にGitHubを操作しながらGitHubの使い方を学べる無料の教材「GitHub Skills」を公開しました。 Expand all you know about the GitHub platform. We're introducing GitHub Skills, a new learning experience integrated into the GitHub UI, backed by GitHub Actions. Try it out today! https://t.co/XnqCYdVqBL — GitHub (@github) June 6, 2022 G
Gitって難しい。簡単にぐちゃぐちゃの状態になっちゃうし、失敗を直す方法を知ろうとしたところでまじくそ不可能。Gitのドキュメンテーションって卵とニワトリの問題みたいなところがあって、ハマりから抜け出すために知ってないといけない事柄の名前をあらかじめ知っていないと、どうやって問題を解決したらいいのか検索することすらできないんだよね。 だからここに、私が遭遇したことのあるよろしくない状況から、最終的にどうやって抜け出したかをフツーの日本語で書いていこうと思う。 くっそー、超絶やらかした。お願い、Gitには魔法のタイムマシンがあるって言って? git reflog # こうすると、Gitでやったことがすべてのブランチに渡って全部見えるよ! # どのブランチにも HEAD@{index} ってインデックスがあるはずだから # やらかす前のやつを見つけて git reset HEAD@{index
[速報]マイクロソフト、開発環境をまるごとクラウドPCとして用意できる「Dev Box」を発表。Microsoft Build 2022 マイクロソフトは現在開催中の開発者向けイベント「Microsoft Build 2022」で、アプリケーションの開発環境をまるごと、クラウドPCのようなデスクトップ仮想化の仮想マシンとして用意できる「Microsoft Dev Box」を発表しました。 マイクロソフトは、アプリケーションのビルドやデプロイなど一連のツールを用いた開発環境の構築はどんどん複雑になっており、開発チームのメンバーは開発環境の構築に大きな手間や時間を割いていると指摘。 Dev Boxは、あらかじめ必要な開発環境やソースコード、ライブラリなどをまとめて仮想マシンとして用意できるため、開発チームに参加するメンバーはすぐに仮想マシンに対してリモートデスクトップもしくはWebブラウザで接
UMLとか構成図とかの図を描くの何のツールを使えばいいか迷いませんか?私は迷います。 ですので、最近使っているツールを紹介します。 世の中にツールがイロイロあるのは理解した上で、大量に紹介するとやっぱり迷うので、似たようなツールや個人的に使わないツールはバッサリ省いています。 パワポで描く まずはPowerPointです。 エンジニアや技術系の方は「パワポで図を描くのはちょっと、、、」と思われるかも知れませんが、状況によってありだと思っています。 パワポのメリット パワポは、ビジネスユーザーならほぼ誰でも使える システムを作る時に、お客さん側も含めた関わるメンバー全員がITに詳しいとは限りません。しかしそういう人にもシステムに対する理解は最低限していただく必要があります。システム構成図とか特に興味がない人に説明するときに「新しいツールをいれてください」というのはハードルが高いです。 パワポ
つくったアプリケーションのソースコードは公開したい、でもシークレットはどうにかして秘匿しないといけない。継続的な運用を目指すならシークレットのデータ自体もなんとかしてリポジトリに(Repository secrets などではなくコミット対象として)含める必要がある。 …という状況を解決するために、gpg だけを使って継続的な運用を図る手段をまとめてみます。フロントエンド/バックエンドなど問わずどこでも使用できます。 Web フロントエンドなどから各種 API キーを利用する場合、リクエスト時の挙動はデベロッパーツールで全て確認できてしまう点には留意してください。 これらは API サーバー側でオリジンの制限をかけるなどの検討が必要です。 やること主な作業内容の要約は gpg を使ってプッシュする前にローカル側で暗号化をする暗号化するときに復号化のための(最強の)パスフレーズを登録するその
追記 先日外部向けに、この記事の内容に追加補足などを加えて発表しました。動画のアーカイブ、資料も公開しましたので、もし動画の方がわかりやすい方はこちらをオススメします。 注意: 動画の質疑の中で、 github のリリース機能が、アノテートタグを使っていると明言してしまいましたが、間違いです。gitのデータ上はただの軽量タグで、 release の内容は軽量タグに紐づく形で、 github のアプリケーション上で管理されているはずです。 はじめに 調べてもう1年放置していた内容なんですが、アドベントカレンダーで重い腰を上げました。 Gitの内部の仕組みを知りたい(動機) 毎日使うといってもいいGitですが、どうやって履歴を管理してるんだとか、よくわからないまま使っているのが急に怖くなりました。 Gitを触り始めで、よく以下のような疑問が沸くと思います。 どうやってGitは履歴を管理してるん
個人用メモです。 「git gcってあんまし容量減らないよなぁ」 と思ったのが動機です。調べたけどパッと腑に落ちる記事がなかったので「自分で git のソースコード見た方がいいな」と急にモチベ発動してグワっと勉強しました。またついでに歴史改変の方法も調べたのですが、公式で既に WARNING が出てるほど非推奨化されてるfilter-branchを使用してる記事が多かったので、2021 年現在で多分一番推奨されてるfilter-repoを使ってやる方法もまとめました。 ちなみに容量減らしても高速化するかというとそこまで単純ではないです。そもそも減らさなくても partial clone で blob オブジェクトを必要最低限に指定して昔の blob をデフォルトで持ってこないようにしたり(--no-checkoutと併用するとより効果有る)、その後本当に自分が必要なやつだけ sparse-
はじめまして、Progateの村山です。 本記事はProgateAdventCalendarの15日目の記事です。 普段はSREチームでProgateの開発や運用を支える仕事をしており、Progateには今年の7月に入社しました。前職はElixirやk8sなどを使ったWebアプリケーションの開発や運用をしていました。 エンジニアであれば日常的に使うGitHubですが、仕事で個人用のアカウントを併用できない場合は仕事用のアカウントに切り替える必要があります。 本稿では作業ディレクトリ毎にGitHubのアカウントを切り替える方法を紹介します。 GitとGitHubのアカウントについて まずはじめにGitとGitHubは別物の概念で、GitHubはGitのリモートリポジトリをホスティングしているWebサービスです。GitはLinuxカーネルの開発者であるリーナスが開発した分散型バージョン管理シス
// 👀 https://docs.microsoft.com/ja-jp/windows/terminal/customize-settings/global-settings { "$schema": "https://aka.ms/terminal-profiles-schema", "defaultProfile": "{574e775e-4f2a-5b96-ac1e-a2962a402336}", "theme": "dark", "copyOnSelect": false, "copyFormatting": false, // ダブルクリックでパスを丸ごと選択したいため "wordDelimiters": " ", // 👀 https://docs.microsoft.com/ja-jp/windows/terminal/customize-settings/profi
Although Git is a very powerful tool, I think most people would agree when I say it can also be... a total nightmare 😐 I've always found it very useful to visualize in my head what's happening when working with Git: how are the branches interacting when I perform a certain command, and how will it affect the history? Why did my coworker cry when I did a hard reset on master, force pushed to origi
GitSheet Gitでよく使用するコマンドをまとめたチートシートは、こちら。 サイトでは「Copy」ボタンをクリックすると、コマンドがコピーできます。 GitSheet チートシートの作成者に許諾を頂いたので、各説明を意訳しました。 Gitのブランチ操作 git branch すべてのローカルブランチを一覧表示します。 git branch -a リモートおよびローカルブランチを一覧表示します。 git checkout -b branch_name ローカルブランチを作成し、切り替えます。 git checkout branch_name 既存のブランチに切り替えます。 git push origin branch_name ブランチをリモートにプッシュします。 git branch -m new_name 現在のブランチの名前を変更します。 git branch -d branch
オンライン診療とは、自宅にいながら医師に直接毎日のスキンケアを相談したり、医薬品や漢方薬の処方を受けることができたりする診察のこと。お薬が処方された場合は郵送で薬局等にお薬を取りにいかなくても、自宅に届けられます。 普段、病院では発生する診察費用や処方箋費用はもちろん、お薬代以外の費用は一切かかりません。
jsconf.eu 2019 に行ってきました。 特に npm や yarn の今後の話とそもそも Registry をどうしていくか、の話があったのでお知らせします。 そもそも Registry をどうしていくかについては次のエントリで話します。 tink: A Next Generation Package Manager npm の次のコマンドラインツールである tink が紹介されていました。 github.com presentation: github.com video: www.youtube.com そもそも npm の仕組み ローカル依存ファイルを読む (package.json, package-lock.json, shrinkwrap.json) 存在しないパッケージのメタデータをfetchする 木構造を計算して、実行する(npm v3 以降だとflattenする
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く