Enviar búsqueda
Cargar
5分で分かるgitのrefspec
•
17 recomendaciones
•
15,876 vistas
I
ikdysfm
Seguir
社内勉強会のLT用資料
Leer menos
Leer más
Tecnología
Denunciar
Compartir
Denunciar
Compartir
1 de 25
Descargar ahora
Descargar para leer sin conexión
Recomendados
Twitterのsnowflakeについて
Twitterのsnowflakeについて
moai kids
GoによるWebアプリ開発のキホン
GoによるWebアプリ開発のキホン
Akihiko Horiuchi
こわくない Git
こわくない Git
Kota Saito
Glibc malloc internal
Glibc malloc internal
Motohiro KOSAKI
世界一わかりやすいClean Architecture
世界一わかりやすいClean Architecture
Atsushi Nakamura
Redisの特徴と活用方法について
Redisの特徴と活用方法について
Yuji Otani
20分くらいでわかった気分になれるC++20コルーチン
20分くらいでわかった気分になれるC++20コルーチン
yohhoy
Docker Compose 徹底解説
Docker Compose 徹底解説
Masahito Zembutsu
Recomendados
Twitterのsnowflakeについて
Twitterのsnowflakeについて
moai kids
GoによるWebアプリ開発のキホン
GoによるWebアプリ開発のキホン
Akihiko Horiuchi
こわくない Git
こわくない Git
Kota Saito
Glibc malloc internal
Glibc malloc internal
Motohiro KOSAKI
世界一わかりやすいClean Architecture
世界一わかりやすいClean Architecture
Atsushi Nakamura
Redisの特徴と活用方法について
Redisの特徴と活用方法について
Yuji Otani
20分くらいでわかった気分になれるC++20コルーチン
20分くらいでわかった気分になれるC++20コルーチン
yohhoy
Docker Compose 徹底解説
Docker Compose 徹底解説
Masahito Zembutsu
目grep入門 +解説
目grep入門 +解説
murachue
いつやるの?Git入門
いつやるの?Git入門
Masakazu Matsushita
Dockerfile を書くためのベストプラクティス解説編
Dockerfile を書くためのベストプラクティス解説編
Masahito Zembutsu
ネットワーク ゲームにおけるTCPとUDPの使い分け
ネットワーク ゲームにおけるTCPとUDPの使い分け
モノビット エンジン
例外設計における大罪
例外設計における大罪
Takuto Wada
フロー効率性とリソース効率性について #xpjug
フロー効率性とリソース効率性について #xpjug
Itsuki Kuroda
SpringBootTest入門
SpringBootTest入門
Yahoo!デベロッパーネットワーク
「速」を落とさないコードレビュー
「速」を落とさないコードレビュー
Takafumi ONAKA
新入社員のための大規模ゲーム開発入門 サーバサイド編
新入社員のための大規模ゲーム開発入門 サーバサイド編
infinite_loop
いつやるの?Git入門 v1.1.0
いつやるの?Git入門 v1.1.0
Masakazu Matsushita
Goのサーバサイド実装におけるレイヤ設計とレイヤ内実装について考える
Goのサーバサイド実装におけるレイヤ設計とレイヤ内実装について考える
pospome
こんなに使える!今どきのAPIドキュメンテーションツール
こんなに使える!今どきのAPIドキュメンテーションツール
dcubeio
Javaのログ出力: 道具と考え方
Javaのログ出力: 道具と考え方
Taku Miyakawa
Linux女子部 systemd徹底入門
Linux女子部 systemd徹底入門
Etsuji Nakai
やはりお前らのMVCは間違っている
やはりお前らのMVCは間違っている
Koichi Tanaka
できる!並列・並行プログラミング
できる!並列・並行プログラミング
Preferred Networks
PHPからgoへの移行で分かったこと
PHPからgoへの移行で分かったこと
gree_tech
ヤフー社内でやってるMySQLチューニングセミナー大公開
ヤフー社内でやってるMySQLチューニングセミナー大公開
Yahoo!デベロッパーネットワーク
エンジニアの個人ブランディングと技術組織
エンジニアの個人ブランディングと技術組織
Takafumi ONAKA
シリコンバレーの「何が」凄いのか
シリコンバレーの「何が」凄いのか
Atsushi Nakada
JavaScriptの落とし穴
JavaScriptの落とし穴
ikdysfm
わしわし的おすすめ .gitconfig 設定 (と見せかけて実はみんなのおすすめ .gitconfig 設定を教えてもらう魂胆) #広島Git 勉強会
わしわし的おすすめ .gitconfig 設定 (と見せかけて実はみんなのおすすめ .gitconfig 設定を教えてもらう魂胆) #広島Git 勉強会
Yukinori KITADAI
Más contenido relacionado
La actualidad más candente
目grep入門 +解説
目grep入門 +解説
murachue
いつやるの?Git入門
いつやるの?Git入門
Masakazu Matsushita
Dockerfile を書くためのベストプラクティス解説編
Dockerfile を書くためのベストプラクティス解説編
Masahito Zembutsu
ネットワーク ゲームにおけるTCPとUDPの使い分け
ネットワーク ゲームにおけるTCPとUDPの使い分け
モノビット エンジン
例外設計における大罪
例外設計における大罪
Takuto Wada
フロー効率性とリソース効率性について #xpjug
フロー効率性とリソース効率性について #xpjug
Itsuki Kuroda
SpringBootTest入門
SpringBootTest入門
Yahoo!デベロッパーネットワーク
「速」を落とさないコードレビュー
「速」を落とさないコードレビュー
Takafumi ONAKA
新入社員のための大規模ゲーム開発入門 サーバサイド編
新入社員のための大規模ゲーム開発入門 サーバサイド編
infinite_loop
いつやるの?Git入門 v1.1.0
いつやるの?Git入門 v1.1.0
Masakazu Matsushita
Goのサーバサイド実装におけるレイヤ設計とレイヤ内実装について考える
Goのサーバサイド実装におけるレイヤ設計とレイヤ内実装について考える
pospome
こんなに使える!今どきのAPIドキュメンテーションツール
こんなに使える!今どきのAPIドキュメンテーションツール
dcubeio
Javaのログ出力: 道具と考え方
Javaのログ出力: 道具と考え方
Taku Miyakawa
Linux女子部 systemd徹底入門
Linux女子部 systemd徹底入門
Etsuji Nakai
やはりお前らのMVCは間違っている
やはりお前らのMVCは間違っている
Koichi Tanaka
できる!並列・並行プログラミング
できる!並列・並行プログラミング
Preferred Networks
PHPからgoへの移行で分かったこと
PHPからgoへの移行で分かったこと
gree_tech
ヤフー社内でやってるMySQLチューニングセミナー大公開
ヤフー社内でやってるMySQLチューニングセミナー大公開
Yahoo!デベロッパーネットワーク
エンジニアの個人ブランディングと技術組織
エンジニアの個人ブランディングと技術組織
Takafumi ONAKA
シリコンバレーの「何が」凄いのか
シリコンバレーの「何が」凄いのか
Atsushi Nakada
La actualidad más candente
(20)
目grep入門 +解説
目grep入門 +解説
いつやるの?Git入門
いつやるの?Git入門
Dockerfile を書くためのベストプラクティス解説編
Dockerfile を書くためのベストプラクティス解説編
ネットワーク ゲームにおけるTCPとUDPの使い分け
ネットワーク ゲームにおけるTCPとUDPの使い分け
例外設計における大罪
例外設計における大罪
フロー効率性とリソース効率性について #xpjug
フロー効率性とリソース効率性について #xpjug
SpringBootTest入門
SpringBootTest入門
「速」を落とさないコードレビュー
「速」を落とさないコードレビュー
新入社員のための大規模ゲーム開発入門 サーバサイド編
新入社員のための大規模ゲーム開発入門 サーバサイド編
いつやるの?Git入門 v1.1.0
いつやるの?Git入門 v1.1.0
Goのサーバサイド実装におけるレイヤ設計とレイヤ内実装について考える
Goのサーバサイド実装におけるレイヤ設計とレイヤ内実装について考える
こんなに使える!今どきのAPIドキュメンテーションツール
こんなに使える!今どきのAPIドキュメンテーションツール
Javaのログ出力: 道具と考え方
Javaのログ出力: 道具と考え方
Linux女子部 systemd徹底入門
Linux女子部 systemd徹底入門
やはりお前らのMVCは間違っている
やはりお前らのMVCは間違っている
できる!並列・並行プログラミング
できる!並列・並行プログラミング
PHPからgoへの移行で分かったこと
PHPからgoへの移行で分かったこと
ヤフー社内でやってるMySQLチューニングセミナー大公開
ヤフー社内でやってるMySQLチューニングセミナー大公開
エンジニアの個人ブランディングと技術組織
エンジニアの個人ブランディングと技術組織
シリコンバレーの「何が」凄いのか
シリコンバレーの「何が」凄いのか
Destacado
JavaScriptの落とし穴
JavaScriptの落とし穴
ikdysfm
わしわし的おすすめ .gitconfig 設定 (と見せかけて実はみんなのおすすめ .gitconfig 設定を教えてもらう魂胆) #広島Git 勉強会
わしわし的おすすめ .gitconfig 設定 (と見せかけて実はみんなのおすすめ .gitconfig 設定を教えてもらう魂胆) #広島Git 勉強会
Yukinori KITADAI
GitHub入門 手順編
GitHub入門 手順編
hideaki honda
Tokyo.R #22 Association Rules
Tokyo.R #22 Association Rules
osamu morimoto
コードを書きやすくしてくれる Xcode の基本機能 #NSStudy #devsap
コードを書きやすくしてくれる Xcode の基本機能 #NSStudy #devsap
Tomohiro Kumagai
schoo x CONCENT「優れたUXを実現するための人間中心デザインとは?」
schoo x CONCENT「優れたUXを実現するための人間中心デザインとは?」
Kazumichi (Mario) Sakata
強化学習による 「Montezuma's Revenge」への挑戦
強化学習による 「Montezuma's Revenge」への挑戦
孝好 飯塚
DRL challenge on Montezuma's Revenge
DRL challenge on Montezuma's Revenge
孝好 飯塚
機械学習ライブラリ「Spark MLlib」で作る アニメレコメンドシステム
機械学習ライブラリ「Spark MLlib」で作る アニメレコメンドシステム
Junichi Noda
Gitのよく使うコマンド
Gitのよく使うコマンド
YUKI Kaoru
Deploy to Lobi
Deploy to Lobi
Hiroaki Nagata
バージョン管理のワークフロー
バージョン管理のワークフロー
add20
はじめてのGit forデザイナー&コーダー
はじめてのGit forデザイナー&コーダー
Saeko Yamamoto
Docker1.13で変わったことをわからないなりにまとめてみた
Docker1.13で変わったことをわからないなりにまとめてみた
Kouta Asai
やりなおせる Git 入門
やりなおせる Git 入門
Tomohiko Himura
技術文書を書く際の、心技体
技術文書を書く際の、心技体
Takahiro Kubo
MySQLの文字コード事情 2017版
MySQLの文字コード事情 2017版
Masahiro Tomita
もしWordPressユーザーがGitを使ったら 〜WordPressテーマを共同編集しよう〜
もしWordPressユーザーがGitを使ったら 〜WordPressテーマを共同編集しよう〜
Takashi Uemura
マイクロサービス運用の所感 #m3dev
マイクロサービス運用の所感 #m3dev
Kazuhiro Sera
Spring Bootハンズオン ~Spring Bootで作る マイクロサービスアーキテクチャ! #jjug_ccc #ccc_r53
Spring Bootハンズオン ~Spring Bootで作る マイクロサービスアーキテクチャ! #jjug_ccc #ccc_r53
Toshiaki Maki
Destacado
(20)
JavaScriptの落とし穴
JavaScriptの落とし穴
わしわし的おすすめ .gitconfig 設定 (と見せかけて実はみんなのおすすめ .gitconfig 設定を教えてもらう魂胆) #広島Git 勉強会
わしわし的おすすめ .gitconfig 設定 (と見せかけて実はみんなのおすすめ .gitconfig 設定を教えてもらう魂胆) #広島Git 勉強会
GitHub入門 手順編
GitHub入門 手順編
Tokyo.R #22 Association Rules
Tokyo.R #22 Association Rules
コードを書きやすくしてくれる Xcode の基本機能 #NSStudy #devsap
コードを書きやすくしてくれる Xcode の基本機能 #NSStudy #devsap
schoo x CONCENT「優れたUXを実現するための人間中心デザインとは?」
schoo x CONCENT「優れたUXを実現するための人間中心デザインとは?」
強化学習による 「Montezuma's Revenge」への挑戦
強化学習による 「Montezuma's Revenge」への挑戦
DRL challenge on Montezuma's Revenge
DRL challenge on Montezuma's Revenge
機械学習ライブラリ「Spark MLlib」で作る アニメレコメンドシステム
機械学習ライブラリ「Spark MLlib」で作る アニメレコメンドシステム
Gitのよく使うコマンド
Gitのよく使うコマンド
Deploy to Lobi
Deploy to Lobi
バージョン管理のワークフロー
バージョン管理のワークフロー
はじめてのGit forデザイナー&コーダー
はじめてのGit forデザイナー&コーダー
Docker1.13で変わったことをわからないなりにまとめてみた
Docker1.13で変わったことをわからないなりにまとめてみた
やりなおせる Git 入門
やりなおせる Git 入門
技術文書を書く際の、心技体
技術文書を書く際の、心技体
MySQLの文字コード事情 2017版
MySQLの文字コード事情 2017版
もしWordPressユーザーがGitを使ったら 〜WordPressテーマを共同編集しよう〜
もしWordPressユーザーがGitを使ったら 〜WordPressテーマを共同編集しよう〜
マイクロサービス運用の所感 #m3dev
マイクロサービス運用の所感 #m3dev
Spring Bootハンズオン ~Spring Bootで作る マイクロサービスアーキテクチャ! #jjug_ccc #ccc_r53
Spring Bootハンズオン ~Spring Bootで作る マイクロサービスアーキテクチャ! #jjug_ccc #ccc_r53
Último
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Yuma Ohgami
UPWARD_share_company_information_20240415.pdf
UPWARD_share_company_information_20240415.pdf
furutsuka
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
sugiuralab
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
Atomu Hidaka
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
danielhu54
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
Ryo Sasaki
PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000
Shota Ito
Último
(7)
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
UPWARD_share_company_information_20240415.pdf
UPWARD_share_company_information_20240415.pdf
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000
5分で分かるgitのrefspec
1.
5分で分かる(?) gitのrefspec HC勉強会 2015/02 1
2.
話すこと 2 1 2 3 4 緩いまとめ 指定による挙動の違い refspecとは何か pushとかpullのおさらい
3.
pushとかpullのおさらい master branch1 branch2 local 3
4.
pushとかpullのおさらい master branch1 branch2 local git clone 3
5.
pushとかpullのおさらい master branch1 branch2 master originlocal 3 origin/master origin/branch1 origin/branch2
6.
pushとかpullのおさらい master branch1 branch2 master originlocal ローカルブランチ この場合、masterは origin/masterを追跡する 追跡ブランチでもある (git branch -vv
で確認できる) 3 origin/master origin/branch1 origin/branch2 名前がつく リモート追跡ブランチ 基本的に直接弄っちゃダメ (git branch -a で確認できる)
7.
pushとかpullのおさらい master branch1 branch2 master originlocal git fetch 3 origin/master origin/branch1 origin/branch2
8.
pushとかpullのおさらい master branch1 branch2 master originlocalリモートの全ローカルブランチを リモート追跡ブランチにfetchする (設定がデフォルトの場合) 3 origin/master origin/branch1 origin/branch2
9.
pushとかpullのおさらい master branch1 branch2 master originlocal 3 origin/master origin/branch1 origin/branch2 (master上で) git merge
10.
pushとかpullのおさらい master branch1 branch2 master originlocal 追跡ブランチにいる場合、 引数を省略すると 追跡先がマージ元となる 3 origin/master origin/branch1 origin/branch2
11.
pushとかpullのおさらい master branch1 branch2 master originlocal 3 origin/master origin/branch1 origin/branch2 fetch + merge
= pull
12.
pushとかpullのおさらい master branch1 branch2 master originlocal git push 3 origin/master origin/branch1 origin/branch2
13.
pushとかpullのおさらい master branch1 branch2 master originlocal 3 origin/master origin/branch1 origin/branch2 リモートリポジトリと リモート追跡ブランチに反映される (対象となるブランチは設定次第。後述)
14.
pushとかpullのおさらい master branch1 branch2 master originlocal 3 origin/master origin/branch1 origin/branch2
15.
以上、一般的な動き。 これを踏まえて 4
16.
refspec(参照仕様)とは何か 5 git origin [master..] このスライド中は origin固定で {
} push pull fetch
17.
refspec(参照仕様)とは何か 5 git origin [master..] ここがrefspec(複数指定可) {
} push pull fetch
18.
refspec(参照仕様)とは何か 5 git origin [master..] ここがrefspec(複数指定可) +<source>:<destination> {
} push pull fetch 省略しない場合の書式
19.
refspec(参照仕様)とは何か 5 git origin [master..] ここがrefspec(複数指定可) +<source>:<destination> 参照元 pushの場合ローカル側 pullの場合リモート側 参照先 pushの場合リモート側 pullの場合ローカル側 {
} push pull fetch 省略しない場合の書式ffでなくても更新する (オプション)
20.
指定による挙動の違い 6 git fetch origin
… 無指定 普通にcloneした場合、.git/configのremote.origin.fetchに +refs/heads/*:refs/remotes/origin/* というデフォルト値(*はワイルドカード)が設定されており、 これを指定したことになる。 つまりリモートリポジトリの全ローカルブランチを ローカルの同名リモート追跡ブランチにそれぞれfetchする。 <以降、このデフォルト値は弄っていない前提で記述> <ref> <ref>: と同じ。 <src>: remote.origin.fetchの設定で対応する<dst>が決まる。 (デフォルト値なら同名のリモート追跡ブランチが<dst>) 対応する設定がない場合でもFETCH_HEADは更新される。 <src>:<dst> <src>を<dst>にfetchする。 <dst>をリモート追跡ブランチにしたい場合は hoge:refs/remotes/origin/hoge のように指定する。
21.
7 git pull origin
… 無指定 fetch :git fetchと同じデフォルト値が使われる。 merge:カレントブランチが追跡ブランチであれば .git/configのbranch.<name>.mergeに設定があるはず。 そこからカレントブランチに対して行われる。 (普通はリモートリポジトリの同名ブランチになっている) <ref> <ref>: と同じ。 <src>: fetch :git fetchの場合と同じ。 merge:<src>がカレントブランチにmergeされる。 refspecを複数指定した場合、 全<src>がカレントブランチにmergeされることに注意。 <src>:<dst> fetch :git fetchの場合と同じ。 merge:同上。複数指定時も含め<dst>の指定は無関係。 指定による挙動の違い
22.
8 git push origin
… 無指定 remote.origin.push の設定値が使われる。無ければ push.default の設定(≠refspec)に応じた挙動となる。 push.default が明示的に設定されていない場合、 2.0以降だと「simple」が使われる。 いくつか種類があるため要理解。(ものによっては事故る) <ref> <ref>:<ref>と同じ : push.default = matching を指定した場合と同じ。 :<dst> 空の<src>を<dst>にpush、つまり リモートリポジトリの<dst>ブランチを削除する。 <dst>に対するリモート追跡ブランチも消してくれる。 試した限りremote.origin.fetchの設定を見てるっぽい。 <src>:<dst> ローカルの<src>をリモートリポジトリの<dst>にpush。 <dst>に対するリモート追跡ブランチにも反映(作られる)。 こちらも試した限り、remote.origin.fetchの設定を見て リモート追跡ブランチだと判定しているっぽい。 指定による挙動の違い
23.
緩いまとめ 9 特にpullで明示的に指定する場合、 全<src>がカレントにmergeされることに注意。 その上で、良く分からないなら refspecは無指定が無難。多分望んだ挙動になるはず。 まず自分の環境におけるpush.defaultと その挙動を理解する。明示的に設定しておくことを推奨。 Pro Gitは一回読むべき。特に「Git Internals」の章。 無指定でエラーになる場合は upstream周りの設定を見直した方が良い(と思う)。
24.
参考元・使わせてもらった素材など 10 http://www.flopdesign.com/freefont/smartfont.html cocodrips/keynote-themes man git-push, pull,
fetch, config Pro Git Chapter 10.5 http://git-scm.com/book/en/v2/Git-Internals-The-Refspec スマートフォントUI
25.
ご清聴 ありがとうございました 11
Descargar ahora