タグ

gitに関するKatagiriSoのブックマーク (50)

  • .gitディレクトリを探検して本気でGitを理解する | Yakst

    Gitのコンセプトや内部動作の理解のために、Gitの情報を格納する隠しディレクトリである.gitの内部構造を解説する。Gitを使い始めたがおまじないとしてコマンドを打っている人が、当の理解への第一歩として読むのにおすすめ。 「Gitに関するこの簡単なチュートリアルを読んでみたけどこりゃいいね。今ではGitを使うのがすごく快適だし、何かやらかしてしまうのにおびえることもないよ」とはまだ誰も言ってない。 初心者としてGitを使うのは、その土地の言葉を読んだりしゃべったりできないのに新しい国を訪れた時に似ています。どこにいるか、どこに行くかわかっているうちは全てうまくいくのですが、一度場所がわからなくなると、大きな問題の始まりです(英語圏ではこういった例えに #badMetapher タグを使います)。 世の中にはGitの基的なコマンドを学ぶための記事がたくさんありますが、これはそのひとつで

    .gitディレクトリを探検して本気でGitを理解する | Yakst
  • .gitディレクトリの中身を見てみる👀 - Qiita

    git init をすると、 .git と言うディレクトリが作られます。 Gitに必要なファイルは全てこのディレクトリに含まれているのですが、普段はあまり意識しない人の方が多いと思います。 今回は .git ディレクトリの中身を少し探検してみましょう。 .gitディレクトリの構成 まずは git init して .git ディレクトリを作成してみます。 .git の中身はこのようになっています。 . ├── HEAD ├── branches ├── config ├── description ├── hooks │ ├── applypatch-msg.sample │ ├── commit-msg.sample │ ├── fsmonitor-watchman.sample │ ├── post-update.sample │ ├── pre-applypatch.sample │

    .gitディレクトリの中身を見てみる👀 - Qiita
  • ソースコードブランチ管理のパターン - Martin Fowler's Bliki (ja)

    https://martinfowler.com/articles/branching-patterns.html 最新のソース管理システムには、ソースコードのブランチを簡単に作成できる強力なツールが用意されています。しかし、最終的にはこれらのブランチをマージしなければならず、多くのチームは混み合ったブランチに対処するのに膨大な時間を費やしています。複数の開発者の作業をインテグレーションし、番リリースまでの道筋を整理することに集中して、チームが効果的にブランチを利用できるようにするためのパターンがいくつかあります。全体的なテーマとしては、ブランチを頻繁にインテグレーションし、最小限の労力で番環境に展開できる健全なメインラインを作ることに注力すべきだということです。 ベースパターン ソースブランチング ✣ メインライン ✣ 健全なブランチ ✣ インテグレーションパターン メインラインイン

  • gitで違うユーザでコミット&プッシュしてしまった時の対処法 | クロジカ

    ホーム / ハック / gitで違うユーザでコミット&プッシュしてしまった時の対処法

    gitで違うユーザでコミット&プッシュしてしまった時の対処法 | クロジカ
  • JenkinsでGitのshallow cloneの設定 - Qiita

    shallow cloneとは デプロイなど最新のソースだけを取得したい場合、git cloneするとすべての履歴を取得するため、時間がかかるし無駄が多い。--depthで取得したい履歴の数を指定することで最新版のみを取得できる。 JenkinsのGitプラグインでshallow cloneの設定 JenkinsのGitプラグインも1.1.23からshallow cloneに対応している。 JenkinsのJOB設定画面から「ソースコード管理」->「Git」を選択 「Additional Behaviours」の「追加」から「Advanced clone behaviors」を選択 「Shallow clone」にチェックを入れる 参考URL Git - git-clone Documentation Git Plugin - Jenkins - Jenkins Wiki Register

    JenkinsでGitのshallow cloneの設定 - Qiita
  • 【GIT】非常に重たいrepositoryをcloneする方法 - Qiita

    このところ業務でやたらと重たいリポジトリを扱うことが多いので、重たいリポジトリを clone して、 remote branch から branch 切ったり commit したり、 push したり、できるようにする clone の仕方をメモ。 いきなり全履歴を落とさず直近の履歴だけをおとし、最終的に全履歴落とす方法。 terminal でコマンド打ちます。 clone したいカレントディレクトリに移動 以下コマンドで現在いるディレクトリを確認します。

    【GIT】非常に重たいrepositoryをcloneする方法 - Qiita
  • 依存リポジトリ管理でのsubmodule/subtree/subrepoの使い分け - Qiita

    依存ライブラリを利用する場合RubyGemsやらCocoaPodsといったツールで万事解決するケースがほとんどだと思いますが、たまーにGitに上がっているライブラリを直接自分のリポジトリに追加しないといけない場合もあったりします。 こういった時に使うGitのサブコマンドそれぞれの特徴と使いどころをまとめてみました。 一番スタンダードな外部リポジトリ追加方法です。たぶん大抵の依存管理ではこれを使えば十分でしょう。git-submoduleを利用すると、外部リポジトリのコード自体は自プロジェクトの管理下に取り込まれず、リポジトリの特定コミットへの参照情報のみが登録されます。外部リポジトリのcommit hashへのポインタが追加されるようなイメージです。 $ git submodule add git@github.com:Alamofire/Alamofire.git $ git diff

    依存リポジトリ管理でのsubmodule/subtree/subrepoの使い分け - Qiita
  • submoduleとsubtree-mergingの使い分け - Qiita

    gitで外部リポジトリを取り込んで利用するには、submodule(サブモジュール) とsubtree merging(サブツリーマージ)の2手法があります。 私の観測範囲内では、サブモジュールはよく利用されていますが、サブツリーマージは目にしません。 そこで、サブツリーマージを試してみての使い分けや思ったことをつらつらと。 大雑把な要点を最初に書いておく 外部リポジトリを外のものとして取り込むならサブモジュール 外部リポジトリを取り込みつつ、中のものとして手を加えていくならサブツリーマージ git初心者にはサブモジュール(異論ありそう) サブツリーマージ使ってみた github.com/marutanm/dotfiles 中身としては、よくある環境設定ファイル一覧です。 前提として、 tmux.conf(gistにおいていた) vim設定(githubにおいていた) zsh設定(gith

    submoduleとsubtree-mergingの使い分け - Qiita
  • Git subtreeによるライブラリ管理について

    前回は Git subtree merge について説明しましたが、今回はそれに深い関係がある Git subtree コマンドについての説明です。 まず基的なこととして、 Git subtree は Git subtree merge と同じものではありません。 subtree merge はマージ戦略として subtree を指定したマージにすぎませんが、 Git subtree は明確に外部ライブラリの取り込みと submodule の代替を目的として設計された機能です。 Git 1.7.11 以降であれば、 Git subtree を使用するのが望ましいでしょう。 なぜなら、 Git subtree には、 Git subtree merge にはない、下記のような機能があるからです。 取り込んだライブラリ側の歴史を"潰し"(squash)てコンパクトな歴史にできる。 自分のプロ

    Git subtreeによるライブラリ管理について
  • 【手順】git subtreeコマンドの使い方 - Qiita

    Git subtreeとは 外部のリポジトリを現在のリポジトリに取り込むことができる。 Git上のプロジェクトを他のプロジェクトでも使用したいときに利用する。 Git subtreeコマンドは、取り込んだリポジトリを編集することで、取り込み先のリポジトリも編集可能にする。 Git subtreeとGit submodule Git subtree →外部リポジトリを現在のリポジトリのものとして取り込み、手を加えていくときに使用する。 Git submodule →外部リポジトリを現在のリポジトリの外のものとして取り込み、今後編集しない時に使用する。 Git subtreeの使い方 サブディレクトリへの登録方法 前提 Gitで新プロジェクトを作成済み。 以下の作業は、新プロジェクト内で行うこと。

    【手順】git subtreeコマンドの使い方 - Qiita
  • Git - Book

    The entire Pro Git book, written by Scott Chacon and Ben Straub and published by Apress, is available here. All content is licensed under the Creative Commons Attribution Non Commercial Share Alike 3.0 license. Print versions of the book are available on Amazon.com. The version found here has been updated with corrections and additions from hundreds of contributors. If you see an error or have a s

  • 8701ed06fcb6e3a17eaf

    高知工科大 Advent Calendar 2016 4日目の\ヒッカリ~ン/です ネタ無いな~と思ってたんですが、最近gitのライブラリ管理で困ってる人を見かけたのでしょうがないからsubmoduleとsubtreeのまとめ記事を書こうと思います。 とか偉そうなこと言ってますが全部合ってる自信ないので間違ってたらマサカリコメント入れてください。(できれば枕投げコメント程度にやさしくお願いします) git submoduleは外部のgitリポジトリを自分のgitリポジトリのサブディレクトリ取り込み、その特定のcommitを参照するものです。 とりあえずやってみましょう。 submoduleの追加 例えば、現在fooというリポジトリのルートにいるとして、lib/barフォルダにbarというリポジトリを取り込みたいとします。

    8701ed06fcb6e3a17eaf
  • GitでMerge CommitをRevertする方法 - Qiita

    何個もCommitがあるような一つのPull Requestを全てRevertしたいようなときに使えます。 そもそもRevertとは あるコミットを打ち消すような、全く逆のコミットを作ることです。 追加した部分を削除して、削除した部分を追加して、変更した部分を変更前の状態にするコミットを作成します。 取り消したいコミットがあるのだけれど、既にリモートにコミットしてしまって、git reset, git rebase -i, git reflogなどを使っての取り消しが不可能なときに使います。 通常のRevert 普通のcommitなら、revertは

    GitでMerge CommitをRevertする方法 - Qiita
  • サル先生のGit入門

    逆引きGitはGitを使ってやりたい事から、その方法を調べられる逆引きのリファレンスです。 ここではコンソールを使って説明します。

    サル先生のGit入門
  • SourceTree が Git のグローバルな無視リストを書き換えて困った話

    #ignore thumbnails created by windows Thumbs.db #Ignore files build by Visual Studio *.obj *.exe *.pdb *.user *.aps *.pch *.vspscc *_i.c *_p.c *.ncb *.suo *.tlb *.tlh *.bak *.cache *.ilk *.log *.dll *.lib *.sbr この辺の拡張子は、Windows 関係の開発で自動生成されたり、中間ファイルだったりするファイルなので、確かにコミットする必要がないことはない。 .gitconfig に excludesfile がないときに発動 セットアップ時に、最初のダイアログには [Allow SourceTree to modify global Git and Mercurial config f

    SourceTree が Git のグローバルな無視リストを書き換えて困った話
  • gitでプロキシを設定 - Qiita

    $git config --global http.proxy http://proxy.example.com:8080 $git config --global https.proxy http://proxy.example.com:8080

    gitでプロキシを設定 - Qiita
  • Gitチートシート - Qiita

    用語 リポジトリ バージョン管理システムにおいて,プログラムやファイルを蓄積しておく場所. Gitではローカルリポジトリとリモートリポジトリの二種類のリポジトリを扱える. ローカルリポジトリ 現在作業中のリポジトリ.主に自分のPCや開発サーバーなどで作業する場合はローカルリポジトリとなる. また,リモートリポジトリからリポジトリをクローンして,自分のPC上やサーバー上に環境を構築することもできる. リモートリポジトリ 外部にあるリポジトリ.リモートリポジトリはローカルリポジトリを通じて作業を行う. 複数人での作業やインターネットに公開する場合に利用できる. ワーキングツリー ユーザーが編集したり新しいファイルを作成したりする場所. インデックス ワーキングツリーでの編集後,リポジトリへのコミットの前に次のコミットの対象となる状態を保持している場所. ブランチ 履歴の流れを分岐して記録してい

    Gitチートシート - Qiita
  • httpプロキシサーバがわかればGitHubは使える - Qiita

    きっかけ GitHubで、リポジトリのcloneのURLが、気づいたらhttpsにrecommendedをつけるようになっていて、httpsが通る環境ならGitHubが使えるのではと思い、すこし調べてみました。 https推奨なのは? 公式のwhich-remote-url-should-i-useによると、要はfirewallとかで制限されていても、httpsはproxy経由などで使えるでしょう、ということ。GitHubにwebブラウザでアクセスできる環境なら、使えるはずと。 使い方(プロキシなしなら) プロキシ経由しないでhttps通信してるなら、URLをhttpsのにするだけでOKです。(まず、ありえないでしょうが...) git clone https://github.com/[user_name]/[repo_name].git $ git remote -v origin h

    httpプロキシサーバがわかればGitHubは使える - Qiita
  • Git の http proxy に関するまとめ - tanacasinoのメモ

    この記事は、Git Advent Calendar 2013 の21日目の記事です。 前日(20日目)の記事は、@harupong さんの Get Great Pro Git !! です。 Pro Gitのサイトは、git関連のことでググると大体行き着くので、よく見てましたが、書籍だったんですね。それを無償公開で、さらには継続的に更新されているとは・・・。また、日語翻訳は非常にありがたいので感謝感謝です。 Gitでは、ローカルレポジトリとリモートレポジトリ間のデータ転送(clone/push/pull/fetchなど)用のプロトコルに、Local、ssh、git、httpの4つが使用できます。 圧倒的にsshやgitを使用するケースが多かったように思いますが、最近ではGitHubもhttpsプロトコルが clone URLのデフォルトになっているようにみえます。 これは企業等のファイアウ

    Git の http proxy に関するまとめ - tanacasinoのメモ
  • Git環境構築(に関するただの日記) - おっさんプログラマの戯れ言

    ソースコードのバージョン管理システムというのは、ソフトウェアの開発現場にあって然るべきものだ。 今まで私が従事したほぼすべてのプロジェクトにおいて、CVSやらSVNやらMicrosoft Visual Sourcesafe(まだあるのかな?)などの環境は、すでに構築されており、チェックアウトやコミットの運用方法も、プロジェクトチームごとにきちんと取り決められていた。おかげで、日々のソースコードのバックアップ方法に悩まされることもなく、必要なときには、バージョン間の差分を知ることもできた。 言うまでもなく、それは『誰か』がCVSなりSVNの環境構築をして、運用方法を定めて、実際にチームがそれに従って動いていたということである。当然のように、その『誰か』の番は、いつか私にも回ってくるだろう。 というわけで、ちょっとだけGitの勉強をしてみた。 来ならば、学んだ内容を忘れないようにここにメモし

    Git環境構築(に関するただの日記) - おっさんプログラマの戯れ言