SlideShare a Scribd company logo
*
    〜Git入門をあえてsvnから入る、の巻〜
* なぜgitか?なぜgit-svnか?
* Gitのインストール
* git svn clone、trunkとmasterの関係
* コミット、そしてプッシュ
* ブランチ(切る。作業する。リベース)
* ブランチしたらプッシュの前に
* その他のtips
* まとめ

                            *
*
忍者のごとく、subversionに潜む
*Gitにはローカルレポジトリ=自由がある!
 * ひとりひとりが専用のレポジトリ
 * バージョン管理の便利さを気兼ねなく
* コミット済みのコードを変更できる
 * あのコミットを無かった事に
 * Rev(21)とRev(25)をまとめたかった・・・
 * 機能追加にまじってバグ修正かよ・・・
 * つまり履歴が奇麗に!


                   *
*すぐにgitに移行できるとは限らない
  *チームメイトへの配慮
  *社の方針
*git-svn
  *gitの使い勝手+subversionの結果
  *Svn派にバレずにを邪魔せずに使える


            *
*
    ぶっちゃけ公式見れば良いんだけどね
見ればわかる!
…というわけにも行かないので
* コンソールは公式からどうぞ
 * http://git-scm.com/downloads
* GUI(Mac)
 * 私はSourceTree
 * AppStoreで検索。もしくはggr
* GUI(Win)
 * Tortoise gitがオススメらしいよ
 * ぐぐってみてね


   *
*
    Gitとsubversionをつなぐもの
*Subversionにおけるチェックアウト
*Gitではgit clone
 * リモートブランチをローカルリポジトリにコピー
 *これをsubversionに対して行える
*svn時代の履歴もだいたい引き継げます




             *
* $ git svn clone –s リポジトリのURL
  * -sオプションは—stdlyoutの略
  * trunk, tags, branchesをよしなにコンバート




                                      *
* $ git branch –r
   * リモートブランチ一覧
   * trunk:svnのtrunk
* $ git   branch
   * ブランチの一覧
   * master:基本的に弄るのはこっち




                          *
*
    きらめくstageでまた会える!
* gitにはstageという考え方があります
     * 編集した内容すべてをコミットするとは限らない
     * Stageしたものがコミットされる
    * コードが皆に行き渡るまで
     * 編集内容をステージ
     * ステージをコミット
     * コミットをプッシュ
     * 皆がプルしてようやく手元に


*
* まずは適当に自分の名前のファイルでも作って
* $ git add .
 * ステージする
* $ git commit -m‖メッセージ‖
 * ―メッセージ‖を添えてコミットする

* この時点ではまだsubversionに影響なし


                            *
* $ git svn dcommit –n
  * コミットされる内容の確認
  * nはno commitのnです。たぶん
* $ git svn dcommit
  * 実際にコミット

* ちなみに
  * $ git config user.name ―Your Name‖
  * $ git config user.email you@email.com
* 設定しておくとgitに移行した時に楽
                                            *
* 先に誰かがコミットしてた!
* 問題なければもう一回git svn dcommitでOK
* とはいえコンフリクトする時にはする
 * 出来るうちにsvn update的な事を




                *
* $ git svn rebase
  * $ git svn fetchとgit merge trunkの融合
* ただし編集中のファイルがあるとできない
  * コミットする
  * Stashを使ってみる
* git stash と git stash pop
  * Git stash
  * Git svn rebase
  * Git stash pop
  * 預けて、updateして、引き出す
                                         *
*
切る、作業する、リベースする
* わりと本題だったり
* ブランチ自体はsubversionと大差無し
 * しかし気軽さと便利さが違う
* チェックアウトとかいくつかの用語が違う
 * 勘違いしないように、恐れないように

* ブランチを作り、履歴の汚れなんか気にせずに
コミット、コミット、コミット!!


                    *
* $git checkout –b test
  * 今いる場所からtestブランチを作成して移動
* $git checkout –b test master
  * masterブランチからtestブランチを作成して移動
* $git branch test
  * 作成するけど移動はしない

* タグの場所からも作れる

                                 *
* $git branch –d test
  * testブランチを削除
* $git branch –D test
  * testブランチを強制削除
  * どこにもマージされてないけど気にしないぜ!




                        *
*
    ―潜む‖極意ここにあり
* git svn dcommitで全コミットが伝わる
 * そのままではsvnのログが・・・
 * しかし自由にコミットしたい

* コミットを整理整頓して見通しよくしよう
 * 他のブランチで作業してmasterにマージ
 * 歴史を改変しコミットを整理整頓



             *
* マスターに戻ってBRANCHをマージ
 * $git checkout master
 * $git merge –no-ff BRANCH
 * コメントはまとめてもらえないのでまた書く

* コメントを大事にしたい
 * $git merge –squash BRANCH
 * コミットされないが、コメントをまとめてくれる
 * 履歴がBRANCHと繋がらないので若干ややこしい
 * $git commit が必要
                              *
元の状態




               *
   http://d.hatena.ne.jp/sinsoku/20111025/1319497900 より引用
--ff(標準のmerge)




                 *
     http://d.hatena.ne.jp/sinsoku/20111025/1319497900 より引用
--no-ff




                      *
          http://d.hatena.ne.jp/sinsoku/20111025/1319497900 より引用
--squash




                   *
       http://d.hatena.ne.jp/sinsoku/20111025/1319497900 より引用
* コミットログ
 * 機能Aを追加
 * 機能Bを追加
 * あれを修正
 * 機能Bを修正
 * 機能Aを更新
 * 機能Aを更新
 * 機能Bのtypoを修正
* かっこわるい!!
                 *
* 新しいコミットログ
 * 完成された機能Aを追加
 * Typoなんてない機能Bを追加
 * あれを修正
* このすっきり感が理想

* あとからでもこんな奇麗な履歴にできる。
                 そう、Gitならね・・・


                     *
* git rebase -i
  * おそらく私がもっとも多用するコマンド
  * 大好き。
* コミットを三つの呪文で理想のカタチへ
  * Edit(e)
  * Fix(f)
  * Squash(s)
* git rebase –i HEAD^^
  * 二つ前まで遡る(^の数に対応)
                         *
*
* git commit –amendでコメントの書き直し
* git add –p でこまかくステージ
* git log --graph --branches –oneline
* git status




                        *
*

More Related Content

What's hot

InnoDBのすゝめ(仮)
InnoDBのすゝめ(仮)InnoDBのすゝめ(仮)
InnoDBのすゝめ(仮)
Takanori Sejima
 
20分くらいでわかった気分になれるC++20コルーチン
20分くらいでわかった気分になれるC++20コルーチン20分くらいでわかった気分になれるC++20コルーチン
20分くらいでわかった気分になれるC++20コルーチン
yohhoy
 
大規模分散システムの現在 -- Twitter
大規模分散システムの現在 -- Twitter大規模分散システムの現在 -- Twitter
大規模分散システムの現在 -- Twitter
maruyama097
 
C/C++プログラマのための開発ツール
C/C++プログラマのための開発ツールC/C++プログラマのための開発ツール
C/C++プログラマのための開発ツール
MITSUNARI Shigeo
 
マイクロにしすぎた結果がこれだよ!
マイクロにしすぎた結果がこれだよ!マイクロにしすぎた結果がこれだよ!
マイクロにしすぎた結果がこれだよ!
mosa siru
 
Marp Tutorial
Marp TutorialMarp Tutorial
Marp Tutorial
Rui Watanabe
 
すごい constexpr たのしくレイトレ!
すごい constexpr たのしくレイトレ!すごい constexpr たのしくレイトレ!
すごい constexpr たのしくレイトレ!Genya Murakami
 
ドメイン駆動設計 ~ユーザー、モデル、エンジニアの新たな関係~
ドメイン駆動設計 ~ユーザー、モデル、エンジニアの新たな関係~ドメイン駆動設計 ~ユーザー、モデル、エンジニアの新たな関係~
ドメイン駆動設計 ~ユーザー、モデル、エンジニアの新たな関係~
啓 杉本
 
jenkinsのすゝめ - 継続的インテグレーションと継続的デリバリー
jenkinsのすゝめ - 継続的インテグレーションと継続的デリバリーjenkinsのすゝめ - 継続的インテグレーションと継続的デリバリー
jenkinsのすゝめ - 継続的インテグレーションと継続的デリバリーJunya Suzuki
 
nginx入門
nginx入門nginx入門
nginx入門
Takashi Takizawa
 
BoostAsioで可読性を求めるのは間違っているだろうか
BoostAsioで可読性を求めるのは間違っているだろうかBoostAsioで可読性を求めるのは間違っているだろうか
BoostAsioで可読性を求めるのは間違っているだろうか
Yuki Miyatake
 
Docker入門: コンテナ型仮想化技術の仕組みと使い方
Docker入門: コンテナ型仮想化技術の仕組みと使い方Docker入門: コンテナ型仮想化技術の仕組みと使い方
Docker入門: コンテナ型仮想化技術の仕組みと使い方
Yuichi Ito
 
やってはいけない空振りDelete
やってはいけない空振りDeleteやってはいけない空振りDelete
やってはいけない空振りDelete
Yu Yamada
 
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行Dockerからcontainerdへの移行
Dockerからcontainerdへの移行
Akihiro Suda
 
いまさら恥ずかしくてAsyncをawaitした
いまさら恥ずかしくてAsyncをawaitしたいまさら恥ずかしくてAsyncをawaitした
いまさら恥ずかしくてAsyncをawaitした
Kouji Matsui
 
カスタムメモリマネージャと高速なメモリアロケータについて
カスタムメモリマネージャと高速なメモリアロケータについてカスタムメモリマネージャと高速なメモリアロケータについて
カスタムメモリマネージャと高速なメモリアロケータについてalwei
 
At least onceってぶっちゃけ問題の先送りだったよね #kafkajp
At least onceってぶっちゃけ問題の先送りだったよね #kafkajpAt least onceってぶっちゃけ問題の先送りだったよね #kafkajp
At least onceってぶっちゃけ問題の先送りだったよね #kafkajp
Yahoo!デベロッパーネットワーク
 
SmartNews TechNight Vol5 : SmartNews AdServer 解体新書 / ポストモーテム
SmartNews TechNight Vol5 : SmartNews AdServer 解体新書 / ポストモーテムSmartNews TechNight Vol5 : SmartNews AdServer 解体新書 / ポストモーテム
SmartNews TechNight Vol5 : SmartNews AdServer 解体新書 / ポストモーテム
SmartNews, Inc.
 
強いて言えば「集約どう実装するのかな、を考える」な話
強いて言えば「集約どう実装するのかな、を考える」な話強いて言えば「集約どう実装するのかな、を考える」な話
強いて言えば「集約どう実装するのかな、を考える」な話
Yoshitaka Kawashima
 

What's hot (20)

InnoDBのすゝめ(仮)
InnoDBのすゝめ(仮)InnoDBのすゝめ(仮)
InnoDBのすゝめ(仮)
 
20分くらいでわかった気分になれるC++20コルーチン
20分くらいでわかった気分になれるC++20コルーチン20分くらいでわかった気分になれるC++20コルーチン
20分くらいでわかった気分になれるC++20コルーチン
 
大規模分散システムの現在 -- Twitter
大規模分散システムの現在 -- Twitter大規模分散システムの現在 -- Twitter
大規模分散システムの現在 -- Twitter
 
Paxos
PaxosPaxos
Paxos
 
C/C++プログラマのための開発ツール
C/C++プログラマのための開発ツールC/C++プログラマのための開発ツール
C/C++プログラマのための開発ツール
 
マイクロにしすぎた結果がこれだよ!
マイクロにしすぎた結果がこれだよ!マイクロにしすぎた結果がこれだよ!
マイクロにしすぎた結果がこれだよ!
 
Marp Tutorial
Marp TutorialMarp Tutorial
Marp Tutorial
 
すごい constexpr たのしくレイトレ!
すごい constexpr たのしくレイトレ!すごい constexpr たのしくレイトレ!
すごい constexpr たのしくレイトレ!
 
ドメイン駆動設計 ~ユーザー、モデル、エンジニアの新たな関係~
ドメイン駆動設計 ~ユーザー、モデル、エンジニアの新たな関係~ドメイン駆動設計 ~ユーザー、モデル、エンジニアの新たな関係~
ドメイン駆動設計 ~ユーザー、モデル、エンジニアの新たな関係~
 
jenkinsのすゝめ - 継続的インテグレーションと継続的デリバリー
jenkinsのすゝめ - 継続的インテグレーションと継続的デリバリーjenkinsのすゝめ - 継続的インテグレーションと継続的デリバリー
jenkinsのすゝめ - 継続的インテグレーションと継続的デリバリー
 
nginx入門
nginx入門nginx入門
nginx入門
 
BoostAsioで可読性を求めるのは間違っているだろうか
BoostAsioで可読性を求めるのは間違っているだろうかBoostAsioで可読性を求めるのは間違っているだろうか
BoostAsioで可読性を求めるのは間違っているだろうか
 
Docker入門: コンテナ型仮想化技術の仕組みと使い方
Docker入門: コンテナ型仮想化技術の仕組みと使い方Docker入門: コンテナ型仮想化技術の仕組みと使い方
Docker入門: コンテナ型仮想化技術の仕組みと使い方
 
やってはいけない空振りDelete
やってはいけない空振りDeleteやってはいけない空振りDelete
やってはいけない空振りDelete
 
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行Dockerからcontainerdへの移行
Dockerからcontainerdへの移行
 
いまさら恥ずかしくてAsyncをawaitした
いまさら恥ずかしくてAsyncをawaitしたいまさら恥ずかしくてAsyncをawaitした
いまさら恥ずかしくてAsyncをawaitした
 
カスタムメモリマネージャと高速なメモリアロケータについて
カスタムメモリマネージャと高速なメモリアロケータについてカスタムメモリマネージャと高速なメモリアロケータについて
カスタムメモリマネージャと高速なメモリアロケータについて
 
At least onceってぶっちゃけ問題の先送りだったよね #kafkajp
At least onceってぶっちゃけ問題の先送りだったよね #kafkajpAt least onceってぶっちゃけ問題の先送りだったよね #kafkajp
At least onceってぶっちゃけ問題の先送りだったよね #kafkajp
 
SmartNews TechNight Vol5 : SmartNews AdServer 解体新書 / ポストモーテム
SmartNews TechNight Vol5 : SmartNews AdServer 解体新書 / ポストモーテムSmartNews TechNight Vol5 : SmartNews AdServer 解体新書 / ポストモーテム
SmartNews TechNight Vol5 : SmartNews AdServer 解体新書 / ポストモーテム
 
強いて言えば「集約どう実装するのかな、を考える」な話
強いて言えば「集約どう実装するのかな、を考える」な話強いて言えば「集約どう実装するのかな、を考える」な話
強いて言えば「集約どう実装するのかな、を考える」な話
 

Similar to Git svnではじめる忍者のごとく潜むgit

Gitの使い方あれこれ
Gitの使い方あれこれGitの使い方あれこれ
Gitの使い方あれこれ
よしだ あつし
 
Git 勉強会
Git 勉強会Git 勉強会
Git 勉強会
kinme modoki
 
SVN経験者のためのGIT入門
SVN経験者のためのGIT入門SVN経験者のためのGIT入門
SVN経験者のためのGIT入門AimingStudy
 
Debianを用いたCortex-M3マイコン開発事例のご紹介
Debianを用いたCortex-M3マイコン開発事例のご紹介Debianを用いたCortex-M3マイコン開発事例のご紹介
Debianを用いたCortex-M3マイコン開発事例のご紹介Kiwamu Okabe
 
Gitの紹介
Gitの紹介Gitの紹介
Gitの紹介
Shoot Morii
 
15分でわかるGit入門
15分でわかるGit入門15分でわかるGit入門
15分でわかるGit入門
to_ueda
 
2018 07-18 git-hub講座
2018 07-18 git-hub講座2018 07-18 git-hub講座
2018 07-18 git-hub講座
貴一 末田
 
Gitを理解するためにおさえておきたい3つの図(工事中)
Gitを理解するためにおさえておきたい3つの図(工事中)Gitを理解するためにおさえておきたい3つの図(工事中)
Gitを理解するためにおさえておきたい3つの図(工事中)Teloo
 
Git pyfes201207-presen
Git pyfes201207-presenGit pyfes201207-presen
Git pyfes201207-presenKouhei Maeda
 
今更だけど 「git rebase」の 使い方を覚えた話
今更だけど 「git rebase」の 使い方を覚えた話今更だけど 「git rebase」の 使い方を覚えた話
今更だけど 「git rebase」の 使い方を覚えた話
iPride Co., Ltd.
 
gitを使う準備をしよう - 初級編
gitを使う準備をしよう - 初級編gitを使う準備をしよう - 初級編
gitを使う準備をしよう - 初級編
Sanae Yamashita
 
Git introduction2
Git introduction2Git introduction2
Git introduction2
Misa Kondo
 
Gitのよく使うコマンド
Gitのよく使うコマンドGitのよく使うコマンド
Gitのよく使うコマンドYUKI Kaoru
 
Gitとちょっと仲良くなるために覚えたことまとめ
Gitとちょっと仲良くなるために覚えたことまとめGitとちょっと仲良くなるために覚えたことまとめ
Gitとちょっと仲良くなるために覚えたことまとめ
Natsumi Kashiwa
 
底辺webプログラマが今更git語ってみた
底辺webプログラマが今更git語ってみた底辺webプログラマが今更git語ってみた
底辺webプログラマが今更git語ってみた
Yudai Fujita
 
Archive: Git 入門(2014/1/10 社内勉強会)
Archive: Git 入門(2014/1/10 社内勉強会)Archive: Git 入門(2014/1/10 社内勉強会)
Archive: Git 入門(2014/1/10 社内勉強会)
Yoko TAMADA
 

Similar to Git svnではじめる忍者のごとく潜むgit (20)

Gitの使い方あれこれ
Gitの使い方あれこれGitの使い方あれこれ
Gitの使い方あれこれ
 
Git勉強会
Git勉強会Git勉強会
Git勉強会
 
Git 勉強会
Git 勉強会Git 勉強会
Git 勉強会
 
SVN経験者のためのGIT入門
SVN経験者のためのGIT入門SVN経験者のためのGIT入門
SVN経験者のためのGIT入門
 
Git (実践入門編)
Git (実践入門編)Git (実践入門編)
Git (実践入門編)
 
Debianを用いたCortex-M3マイコン開発事例のご紹介
Debianを用いたCortex-M3マイコン開発事例のご紹介Debianを用いたCortex-M3マイコン開発事例のご紹介
Debianを用いたCortex-M3マイコン開発事例のご紹介
 
Git地図
Git地図Git地図
Git地図
 
Gitの紹介
Gitの紹介Gitの紹介
Gitの紹介
 
15分でわかるGit入門
15分でわかるGit入門15分でわかるGit入門
15分でわかるGit入門
 
2018 07-18 git-hub講座
2018 07-18 git-hub講座2018 07-18 git-hub講座
2018 07-18 git-hub講座
 
Gitを理解するためにおさえておきたい3つの図(工事中)
Gitを理解するためにおさえておきたい3つの図(工事中)Gitを理解するためにおさえておきたい3つの図(工事中)
Gitを理解するためにおさえておきたい3つの図(工事中)
 
Git pyfes201207-presen
Git pyfes201207-presenGit pyfes201207-presen
Git pyfes201207-presen
 
今更だけど 「git rebase」の 使い方を覚えた話
今更だけど 「git rebase」の 使い方を覚えた話今更だけど 「git rebase」の 使い方を覚えた話
今更だけど 「git rebase」の 使い方を覚えた話
 
gitを使う準備をしよう - 初級編
gitを使う準備をしよう - 初級編gitを使う準備をしよう - 初級編
gitを使う準備をしよう - 初級編
 
Git introduction2
Git introduction2Git introduction2
Git introduction2
 
Gitのよく使うコマンド
Gitのよく使うコマンドGitのよく使うコマンド
Gitのよく使うコマンド
 
Gitとちょっと仲良くなるために覚えたことまとめ
Gitとちょっと仲良くなるために覚えたことまとめGitとちょっと仲良くなるために覚えたことまとめ
Gitとちょっと仲良くなるために覚えたことまとめ
 
mikutter入門
mikutter入門mikutter入門
mikutter入門
 
底辺webプログラマが今更git語ってみた
底辺webプログラマが今更git語ってみた底辺webプログラマが今更git語ってみた
底辺webプログラマが今更git語ってみた
 
Archive: Git 入門(2014/1/10 社内勉強会)
Archive: Git 入門(2014/1/10 社内勉強会)Archive: Git 入門(2014/1/10 社内勉強会)
Archive: Git 入門(2014/1/10 社内勉強会)
 

Recently uploaded

単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...
単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...
単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...
Fukuoka Institute of Technology
 
FIDO Alliance Osaka Seminar: Welcome Slides.pdf
FIDO Alliance Osaka Seminar: Welcome Slides.pdfFIDO Alliance Osaka Seminar: Welcome Slides.pdf
FIDO Alliance Osaka Seminar: Welcome Slides.pdf
FIDO Alliance
 
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdfFIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
FIDO Alliance
 
ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---
ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---
ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---
Matsushita Laboratory
 
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
harmonylab
 
JSAI_類似画像マッチングによる器への印象付与手法の妥当性検証_ver.3_高橋りさ
JSAI_類似画像マッチングによる器への印象付与手法の妥当性検証_ver.3_高橋りさJSAI_類似画像マッチングによる器への印象付与手法の妥当性検証_ver.3_高橋りさ
JSAI_類似画像マッチングによる器への印象付与手法の妥当性検証_ver.3_高橋りさ
0207sukipio
 
This is the company presentation material of RIZAP Technologies, Inc.
This is the company presentation material of RIZAP Technologies, Inc.This is the company presentation material of RIZAP Technologies, Inc.
This is the company presentation material of RIZAP Technologies, Inc.
chiefujita1
 
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdfFIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
FIDO Alliance
 
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
Toru Tamaki
 
FIDO Alliance Osaka Seminar: CloudGate.pdf
FIDO Alliance Osaka Seminar: CloudGate.pdfFIDO Alliance Osaka Seminar: CloudGate.pdf
FIDO Alliance Osaka Seminar: CloudGate.pdf
FIDO Alliance
 
CS集会#13_なるほどわからん通信技術 発表資料
CS集会#13_なるほどわからん通信技術 発表資料CS集会#13_なるほどわからん通信技術 発表資料
CS集会#13_なるほどわからん通信技術 発表資料
Yuuitirou528 default
 
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdfFIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
FIDO Alliance
 
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアルLoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
CRI Japan, Inc.
 
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
Matsushita Laboratory
 

Recently uploaded (14)

単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...
単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...
単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...
 
FIDO Alliance Osaka Seminar: Welcome Slides.pdf
FIDO Alliance Osaka Seminar: Welcome Slides.pdfFIDO Alliance Osaka Seminar: Welcome Slides.pdf
FIDO Alliance Osaka Seminar: Welcome Slides.pdf
 
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdfFIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
 
ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---
ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---
ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---
 
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
 
JSAI_類似画像マッチングによる器への印象付与手法の妥当性検証_ver.3_高橋りさ
JSAI_類似画像マッチングによる器への印象付与手法の妥当性検証_ver.3_高橋りさJSAI_類似画像マッチングによる器への印象付与手法の妥当性検証_ver.3_高橋りさ
JSAI_類似画像マッチングによる器への印象付与手法の妥当性検証_ver.3_高橋りさ
 
This is the company presentation material of RIZAP Technologies, Inc.
This is the company presentation material of RIZAP Technologies, Inc.This is the company presentation material of RIZAP Technologies, Inc.
This is the company presentation material of RIZAP Technologies, Inc.
 
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdfFIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
 
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
 
FIDO Alliance Osaka Seminar: CloudGate.pdf
FIDO Alliance Osaka Seminar: CloudGate.pdfFIDO Alliance Osaka Seminar: CloudGate.pdf
FIDO Alliance Osaka Seminar: CloudGate.pdf
 
CS集会#13_なるほどわからん通信技術 発表資料
CS集会#13_なるほどわからん通信技術 発表資料CS集会#13_なるほどわからん通信技術 発表資料
CS集会#13_なるほどわからん通信技術 発表資料
 
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdfFIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
 
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアルLoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
 
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
 

Git svnではじめる忍者のごとく潜むgit

  • 1. * 〜Git入門をあえてsvnから入る、の巻〜
  • 2. * なぜgitか?なぜgit-svnか? * Gitのインストール * git svn clone、trunkとmasterの関係 * コミット、そしてプッシュ * ブランチ(切る。作業する。リベース) * ブランチしたらプッシュの前に * その他のtips * まとめ *
  • 4. *Gitにはローカルレポジトリ=自由がある! * ひとりひとりが専用のレポジトリ * バージョン管理の便利さを気兼ねなく * コミット済みのコードを変更できる * あのコミットを無かった事に * Rev(21)とRev(25)をまとめたかった・・・ * 機能追加にまじってバグ修正かよ・・・ * つまり履歴が奇麗に! *
  • 5. *すぐにgitに移行できるとは限らない *チームメイトへの配慮 *社の方針 *git-svn *gitの使い勝手+subversionの結果 *Svn派にバレずにを邪魔せずに使える *
  • 6. * ぶっちゃけ公式見れば良いんだけどね
  • 8. * コンソールは公式からどうぞ * http://git-scm.com/downloads * GUI(Mac) * 私はSourceTree * AppStoreで検索。もしくはggr * GUI(Win) * Tortoise gitがオススメらしいよ * ぐぐってみてね *
  • 9. * Gitとsubversionをつなぐもの
  • 10. *Subversionにおけるチェックアウト *Gitではgit clone * リモートブランチをローカルリポジトリにコピー *これをsubversionに対して行える *svn時代の履歴もだいたい引き継げます *
  • 11. * $ git svn clone –s リポジトリのURL * -sオプションは—stdlyoutの略 * trunk, tags, branchesをよしなにコンバート *
  • 12. * $ git branch –r * リモートブランチ一覧 * trunk:svnのtrunk * $ git branch * ブランチの一覧 * master:基本的に弄るのはこっち *
  • 13. * きらめくstageでまた会える!
  • 14. * gitにはstageという考え方があります * 編集した内容すべてをコミットするとは限らない * Stageしたものがコミットされる * コードが皆に行き渡るまで * 編集内容をステージ * ステージをコミット * コミットをプッシュ * 皆がプルしてようやく手元に *
  • 15. * まずは適当に自分の名前のファイルでも作って * $ git add . * ステージする * $ git commit -m‖メッセージ‖ * ―メッセージ‖を添えてコミットする * この時点ではまだsubversionに影響なし *
  • 16. * $ git svn dcommit –n * コミットされる内容の確認 * nはno commitのnです。たぶん * $ git svn dcommit * 実際にコミット * ちなみに * $ git config user.name ―Your Name‖ * $ git config user.email you@email.com * 設定しておくとgitに移行した時に楽 *
  • 17. * 先に誰かがコミットしてた! * 問題なければもう一回git svn dcommitでOK * とはいえコンフリクトする時にはする * 出来るうちにsvn update的な事を *
  • 18. * $ git svn rebase * $ git svn fetchとgit merge trunkの融合 * ただし編集中のファイルがあるとできない * コミットする * Stashを使ってみる * git stash と git stash pop * Git stash * Git svn rebase * Git stash pop * 預けて、updateして、引き出す *
  • 20. * わりと本題だったり * ブランチ自体はsubversionと大差無し * しかし気軽さと便利さが違う * チェックアウトとかいくつかの用語が違う * 勘違いしないように、恐れないように * ブランチを作り、履歴の汚れなんか気にせずに コミット、コミット、コミット!! *
  • 21. * $git checkout –b test * 今いる場所からtestブランチを作成して移動 * $git checkout –b test master * masterブランチからtestブランチを作成して移動 * $git branch test * 作成するけど移動はしない * タグの場所からも作れる *
  • 22. * $git branch –d test * testブランチを削除 * $git branch –D test * testブランチを強制削除 * どこにもマージされてないけど気にしないぜ! *
  • 23. * ―潜む‖極意ここにあり
  • 24. * git svn dcommitで全コミットが伝わる * そのままではsvnのログが・・・ * しかし自由にコミットしたい * コミットを整理整頓して見通しよくしよう * 他のブランチで作業してmasterにマージ * 歴史を改変しコミットを整理整頓 *
  • 25. * マスターに戻ってBRANCHをマージ * $git checkout master * $git merge –no-ff BRANCH * コメントはまとめてもらえないのでまた書く * コメントを大事にしたい * $git merge –squash BRANCH * コミットされないが、コメントをまとめてくれる * 履歴がBRANCHと繋がらないので若干ややこしい * $git commit が必要 *
  • 26. 元の状態 * http://d.hatena.ne.jp/sinsoku/20111025/1319497900 より引用
  • 27. --ff(標準のmerge) * http://d.hatena.ne.jp/sinsoku/20111025/1319497900 より引用
  • 28. --no-ff * http://d.hatena.ne.jp/sinsoku/20111025/1319497900 より引用
  • 29. --squash * http://d.hatena.ne.jp/sinsoku/20111025/1319497900 より引用
  • 30. * コミットログ * 機能Aを追加 * 機能Bを追加 * あれを修正 * 機能Bを修正 * 機能Aを更新 * 機能Aを更新 * 機能Bのtypoを修正 * かっこわるい!! *
  • 31. * 新しいコミットログ * 完成された機能Aを追加 * Typoなんてない機能Bを追加 * あれを修正 * このすっきり感が理想 * あとからでもこんな奇麗な履歴にできる。 そう、Gitならね・・・ *
  • 32. * git rebase -i * おそらく私がもっとも多用するコマンド * 大好き。 * コミットを三つの呪文で理想のカタチへ * Edit(e) * Fix(f) * Squash(s) * git rebase –i HEAD^^ * 二つ前まで遡る(^の数に対応) *
  • 33. *
  • 34. * git commit –amendでコメントの書き直し * git add –p でこまかくステージ * git log --graph --branches –oneline * git status *
  • 35. *