タグ

gitに関するt10471のブックマーク (60)

  • git rebaseについてのtips | けーこ in サンフランシスコ

    エンジニア友達githubなどgitを使用した共同開発時の豆知識を教えてもらったので、忘れないようにメモしておきます。Thanks, Shawn! マスターとのマージ時には事前にgit rebaseを使う gitを使って共同開発をすると、たまにこんなコミットメッセージを見る機会があるかもしれません。 Merge branch ‘master’ of git://github.com/hogehoge これは、最新のマスターを私のブランチにマージしたわよ、という意味合いのコミットメッセージなのですが、正直いりません。開発者それぞれがブランチとマスターをマージするたびにこのようなメッセージをログに残してしまうと、それだけでコミット履歴を占有し、重要な情報をたどるのが困難になります。 このマージ時のコミットメッセージが発生してしまう原因は、左側の図のようにpull requestを出す前に最

    t10471
    t10471 2016/04/14
  • vim-fugitiveがやっぱり便利

    このエントリーはGit Advent Calendar / Juneの十四日目です。十三日目は Cside_ さんの「ブランチ名 + 作業状態 + stash数 をzshのプロンプトに表示」でした。 vim-fugitive便利ですよね。いい機会だったのでGitVim-wrapperのひとつvim-fugitiveを復習してみました。 vim-fugitiveの便利なところと言えば、2画面で前後のコードも含めてdiffが見られるところとか、blameが見やすくて楽しいってところだけだと思ってたんですが、調べてみるともっと便利なことがわかりました。 今回は以下について書いてます。 :Gread :Gedit :Ggrep 補完 3-way diff いままで いままでのボクはと言えば、ただ:GstatusでVimエディタ上にステータス画面を開いて-(add/reset)したり、D(diff

    vim-fugitiveがやっぱり便利
  • Fugitive.vim - resolving merge conflicts with vimdiff

    When git branches are merged, there is always the chance of a conflict arising if a file was modified in both the target and merge branches. You can resolve merge conflicts using a combination of fugitive’s :Gdiff command, and Vim’s built in diffget and diffput. In this episode, we’ll find out how. This is the third in a five part series on fugitive.vim. :Gdiff on a conflicted file opens 3-way dif

  • git push --force でなく git push --force-with-lease を使う - valid,invalid

    前に社内チャットで流れてて初めて知った。 他人の変更を上書きするおそれのある git push --force でなく、最後に fetch したタイミング以降に他人が push していたら失敗する git push --force-with-lease を使う方が良い。 --force considered harmful; understanding git's --force-with-lease - Atlassian Developers Quipper では GitHub flow のような開発フローを採用している。 各開発者が feature branch を作成し、master / develop branch へ pull request を作る流れだ。 他人と修正箇所が重なってコンフリクトした際には rebase が必要で、 rebase 後の内容を push する際には

    git push --force でなく git push --force-with-lease を使う - valid,invalid
    t10471
    t10471 2016/04/06
  • アプリ開発にはGitlab flowが合うと思います - Shoichi Matsuda's diary

    はじめに みなさまのプロジェクトではどのようにバージョン管理を行っているでしょうか。 ここでのバージョン管理とは具体的にはどのようなブランチを作ってどこにマージするか、リリースはどのように進めるかといった事柄を指しています。 今日は数あるバージョン管理戦略の中で比較的新しく提唱されたGitlab flowというフローを中心にして話していきたいと思います。 最近アプリの開発においてこのGitlab flowが個人的には一番しっくり来ているのでオススメしたいです。 有名なフロー gitは分散型のバージョン管理システムとして一世を風靡しており、いまや事実上のデファクトスタンダートです。 名前のとおり分散している(ローカル・リモートが明確に分かれている)ことやブランチ・コミットの編集も非常に容易で柔軟性が非常に高いです。 一方でその柔軟さゆえにルールをきちんと決めなければ各個人のフローが大きく異な

    アプリ開発にはGitlab flowが合うと思います - Shoichi Matsuda's diary
    t10471
    t10471 2015/11/05
  • git管理している途中から.gitignoreを追加して、その設定を反映させる方法 - Qiita

    .gitignoreとは Gitのバージョン管理対象から外すファイルを指定できる設定ファイルのこと 題 Git管理をしている状態で、 途中から「.gitignore」に除きたいファイルを追加しても 既に管理対象に追加されているためそのままだと.gitignoreされない そこでする作業は以下 git rm -r --cached . あとはいつも通りgit add、git commit、git pushをすればok ※参考URL http://qiita.com/Potof_/items/c75eba9cfa72819506de Register as a new user and use Qiita more conveniently You get articles that match your needsYou can efficiently read back useful i

    git管理している途中から.gitignoreを追加して、その設定を反映させる方法 - Qiita
    t10471
    t10471 2015/02/12
  • gitでありがちな問題の解決方法まとめ - Qiita

    Git Advent Calendar / Jun. 最終日(30日目)の記事です.29日目は「いざという時のためのgit reflog」でした. Git Advent Calendar最後なので,git操作でやりがちなミスからどう回復するかをまとめます.他にもあればコメントもらえるとマージしていきます. ブランチを切り忘れてmasterでコミットしてしまった その時点でブランチを切る&reset --hardで間違ったコミットたちをmasterから消す $ git checkout -b new-branch # masterの最新コミットを消す $ git checkout master && git reset --hard HEAD~

    gitでありがちな問題の解決方法まとめ - Qiita
    t10471
    t10471 2014/12/31
  • [初心者向け]こんなときどうする⁉︎ GitのTips31選! - Qiita

    Help us understand the problem. What is going on with this article?

    [初心者向け]こんなときどうする⁉︎ GitのTips31選! - Qiita
    t10471
    t10471 2014/11/29
  • Gitのコミットメッセージの書き方 - Qiita

    Gitのコミットメッセージの書き方 自分なりにまとめてみました。Git歴浅いので、意見募集中です。 (2014年12月17日追記) 想像以上にたくさんの方にストックなりはてブなりいただいたので、はてブでなるほど!と思ったコメントをもとに少し修正・加筆してみました。 (2022年1月4日追記) 最新の書き方をこちらに書きました。 https://zenn.dev/itosho/articles/git-commit-message-2023 原則 以下のフォーマットとします。 1行目:変更内容の要約(タイトル、概要) 2行目 :空行 3行目以降:変更した理由(内容、詳細) 日語でも英語でもOKですが、リポジトリで統一してください。 1行目 コミット種別と要約を書きます。フォーマットは以下とします。 [コミット種別]要約 コミット種別 以下の中から適切な種別を選びます。 (多すぎても悩むので

    Gitのコミットメッセージの書き方 - Qiita
    t10471
    t10471 2014/11/22
  • GitLab flowから学ぶワークフローの実践 | POSTD

    Gitによるバージョン管理では、従来のSVNなどよりずっと簡単にブランチングやマージができます。さまざまなブランチ戦略やワークフローが可能であり、以前のシステムに比べるとほとんど全てが改善されたと言えるでしょう。しかしGitを利用する多くの組織はワークフローの問題に直面します。明確な定義がなく複雑で、Issue Tracking Systemと統合されていないからです。そこで、明確に定義された最良の実践的方法としてのGitLab flowを提案したいと思います。issue trackingには feature driven development と feature branches を組み合わせます。 他のバージョン管理システムからGitに移行する際によく耳にすることは、効果的なワークフローの開発が難しいということです。この記事ではGitワークフローとIssue Tracking Sys

    GitLab flowから学ぶワークフローの実践 | POSTD
    t10471
    t10471 2014/10/25
  • Gitでブランチを作るのを忘れてmasterにコミットしてしまったときの対処法 - Qiita

    (追記)すごくいいねがついていますが、コメントで皆さんが提案してくださっている方法の方が簡単なのでおすすめです。コメント欄を参照してください。 通常ブランチを作ってからブランチを切り替えて実装を始めますが、たまにはうっかりブランチを作るのを忘れてしまうことありますよね。 そんなときの対処法のメモです。要は新しく作った別のブランチにコミットを移動する方法です。 間違えて3つmasterにコミットしてしまっている状態で、新しくbranch01ブランチを作ってそこに移すというシナリオで書いていきます。 branch01ブランチを作る ブランチを作るべきだった位置からブランチを作る

    Gitでブランチを作るのを忘れてmasterにコミットしてしまったときの対処法 - Qiita
    t10471
    t10471 2014/09/04
  • BitbucketにSSHでアクセスする(複数アカウントもおっけー) - 株式会社CFlatの明後日スタイルのブログ

    BitbucketのリポジトリにはHTTPSでアクセスすることができますが、毎回パスワード入れるのも面倒だし、pushする情報が多すぎてエラーになることもあります。SSHを使えばそれを解消できるのですが、公式以外にあまり情報がなかったんでここに書いておくことにします。 複数アカウントで使う方法も意外にわかりづらかったので残しておきます。ちなみに会社用のアカウントでは仕事のソースコードを、個人のアカウントでは各種設定ファイルなどを管理しています。 単アカウントのみSSH接続できれば良い場合 手順はこうです。 ・公開鍵と秘密鍵のペアを作る ・公開鍵をBitbucketのアカウントに登録する ・gitプロトコルでアクセス 公開鍵と秘密鍵のペアを作る Macを想定しています。 ターミナルを開いてssh-keygenコマンドを実行すると、~/.ssh/以下に鍵が生成されます。ここではid_rsaとi

    BitbucketにSSHでアクセスする(複数アカウントもおっけー) - 株式会社CFlatの明後日スタイルのブログ
    t10471
    t10471 2014/09/02
  • Git の仕組み (1) - こせきの技術日記

    目次 はじめに Git を使ったことがない方へ 生のデータが見たい方へ Git の全体像 .git の中身 Git オブジェクトデータベース 4種類のオブジェクト リファレンス リファレンスのリファレンス 大きなツリー Git オブジェクトの ID と 中身 ハッシュ関数 SHA1 の簡単な説明 tree と blob オブジェクト tree と blob の参照関係 ルートツリーの ID でツリー全体を識別する commit オブジェクト リファレンスとブランチランチランチ先頭を指すリファレンス HEAD リファレンス detached HEAD 2種類のタグ 一時待避 (stash) インデックス キャッシュとしての役割 マージ Fast-Forward マージ non Fast-Forward マージ rebase reset 2種類のブランチ 各リポジトリが自分のブランチ

    Git の仕組み (1) - こせきの技術日記
    t10471
    t10471 2014/06/09
  • Git・GitHubに隠された便利な機能 | GitHub Cheat Sheet(日本語訳) - Qiita

    It has been archived by the owner. It is now read-only. 日語翻訳に関するメモ GitGitHub の便利な使い方をまとめたられた GitHub cheat sheet の日語訳です。 もっと分かりやすくしたいので翻訳に関するダメ出しは歓迎です。 レポジトリ

    Git・GitHubに隠された便利な機能 | GitHub Cheat Sheet(日本語訳) - Qiita
  • もう巨大なデータをgitignoreしなくていい! ~git-mediaの使い方~ - 3度の飯と最新技術

    はじめに gitはコミットごとにレポジトリ内のファイル全てをスナップショットとして保存するというリッチな 設計になっている。 それがgitの便利さの所以なのだが画像データや音声データのようなバイナリデータを持とうとすると 少しの変更でもそのたびにコピーが生じてファイルサイズ分の容量が増えることになり、あっという間にレポジトリが 肥大化してしまう。 特に学習結果をファイルに保持してテスト等に使いまわすようなプログラムを管理しようとすると アルゴリズムのパラメータを少し変えるたびに100kB近い容量が増えていき、実にイケてない。 普通なら.gitignoreに*.xmlと書いてデータ自体は手動管理したり、シンボリックリンクにして別ディレクトリに置いてそれだけrsyncで同期するようにしたりするんだが 過去の実験時の状態に戻れなかったり、毎回rsyncするのは不便だった。 なんか無いかなーと思っ

    もう巨大なデータをgitignoreしなくていい! ~git-mediaの使い方~ - 3度の飯と最新技術
    t10471
    t10471 2014/04/15
  • Git初心者が絶対に覚えておくべきコマンド - idesaku blog

    Gitの使い方を覚えるにあたって、まず知っておきたいのは――git-cloneだのgit-commitだのは当然として――「操作をミスったときにどのように回復するか」である。それを実現するのは、次の3つのコマンドだ。 git-commit --amend git-reset git-reflog git-commit --amend あるファイルをコミットしたとしよう。 $ (edit...) $ git commit -am 'メッセージ生成処理を実装したよ。'しかし、しばらくして彼は気づいた。 def create_massage(param) ...typoしてる!massageじゃない、messageだ!マッサージを作ってどうする! 慌てるな。まずは直してステージに上げるんだ*1。 def create_message(param) ...$ git add .そして…。 $ gi

    Git初心者が絶対に覚えておくべきコマンド - idesaku blog
    t10471
    t10471 2014/04/01
  • Git作業スタイル: リモートレポジトリに保存しつつキリのいいところで変更をまとめる - Qiita

    あらまし 大きな作業をする場合、こまめにローカルレポジトリのブランチにコミットして、何かあったときにすぐに戻せるようにしたくなります。 また、パフォーマンス改善など、実験や研究の色合いの強い作業は、試行錯誤しながらブランチに"とりあえず"保存しつつ、「あっちのほうが良かったかな〜」と思ったときに取り出せるようにしておきたくなるものです。 また、ローカルレポジトリだけでなく、リモートレポジトリに置いたほうがチームみんなで共有できたりしていろいろ便利です。 ですが、最終成果物はなるべく少ないコミットにしないと、マージが大変です。 メインブランチにこんなコミットが入るとゲンナリしますよね? $ git log --oneline bcdef12 Revert foo abcdef0 Add foo cdef123 Refactor bar again def1234 Refactor bar e

    Git作業スタイル: リモートレポジトリに保存しつつキリのいいところで変更をまとめる - Qiita
    t10471
    t10471 2014/03/19
  • Gitコンフリクト解消ガイド(git mergetoolの使い方) - Qiita

    ファイル編集がコンフリクトした場合 下記はよくある(忌々しい)コンフリクト画面ですね。 皆さんはコンフリクトのmergeはどんな方法でやっていますでしょうか? vimemacsで直接編集している方が多いイメージですが、実際開いてみると、下記のように差分が表示されていると思います。 この画面を見ただけではどのようにmergeすればよいのかわかりません。(Objective-CのARC/MRC双方の開発経験がある人は目をつぶってください・・) gitにはこのようなコンフリクトのmergeを支援するgit mergetoolコマンドが搭載されています。 このままEnterキーを押すと下記のような画面が立ち上がります。 画面幅の都合でフォントが小さいのですが、ここで「mergeしたい差分が作られる直前の状態」と「mergeしたい差分」に注目してみます。 この2つを見比べると、@propertyの

    Gitコンフリクト解消ガイド(git mergetoolの使い方) - Qiita
    t10471
    t10471 2014/02/11
  • サービス終了のお知らせ - NAVER まとめ

    サービス終了のお知らせ NAVERまとめは2020年9月30日をもちましてサービス終了いたしました。 約11年間、NAVERまとめをご利用・ご愛顧いただき誠にありがとうございました。

    サービス終了のお知らせ - NAVER まとめ
    t10471
    t10471 2013/11/21
  • めちゃくちゃにコンフリクトしたファイルを一歩一歩マージする方法 - Qiita

    あるファイルに大量のコンフリクトが発生し解決が面倒なとき、パッチを使ってファイルに1コミットずつ変更を適用する方法を示す。この方法のメリットは: ファイルへの変更を1コミットずつ適用・コンフリクト解決することができる それぞれのコミットを適用する前に、コミットをパッチファイルの形で編集できる 注目するファイル以外への変更をいったん無視し、そのファイルに関係する変更に集中できる の3点である。複数コミットの変更が混ざった大量のコンフリクトマーカーを手作業で消すような状況に陥ったとき、この方法を使えばいくぶんかは楽にマージ作業を進められる。 概要 マージ中に特定のファイルに大量のコンフリクトが起きたら、マージを中止する。一時作業用ブランチを作り、そのファイルに1コミットずつパッチを当てて編集する。パッチを当て終わったらマージをやり直し、コンフリクト解決作業中に、コンフリクトしたファイルを一時作

    めちゃくちゃにコンフリクトしたファイルを一歩一歩マージする方法 - Qiita
    t10471
    t10471 2013/09/03