Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
リモートリポジトリの操作 / 02-c-remote
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
kaityo256
PRO
March 02, 2026
Education
250
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
リモートリポジトリの操作 / 02-c-remote
kaityo256
PRO
March 02, 2026
More Decks by kaityo256
See All by kaityo256
生成AIとの付き合い方/ How to work with AI
kaityo256
PRO
3
790
パズルゲームの作り方 / how to make puzzle games
kaityo256
PRO
2
270
What is XAI?
kaityo256
PRO
0
210
勾配ブースティングと決定木の話 / gradient boosting and decision trees
kaityo256
PRO
7
1.9k
GNU Makeの使い方 / How to use GNU Make
kaityo256
PRO
16
6.1k
この講義について / 00-setup
kaityo256
PRO
2
540
GitHubによるWebアプリケーションのデプロイ / 07-github-deploy
kaityo256
PRO
2
480
演習:Gitの基本操作 / 04-git-basic
kaityo256
PRO
1
730
演習:Gitの応用操作 / 05-git-advanced
kaityo256
PRO
1
430
Other Decks in Education
See All in Education
【2026年サマースクール用ZEPメタバース校舎操作ガイド】
ainischool
0
130
AIの力を100%引き出すために
frievea
0
590
Web Architectures - Lecture 2 - Web Technologies (1019888BNR)
signer
PRO
0
3.7k
Railsチュートリアル × 反転学習の事例紹介
yasslab
PRO
3
190k
日本における応用言語学・言語教育学これまでとこれから
terasawat
0
120
[2026前期火5] 論理学(京都大学文学部 前期 第14回)「計算は、証明ではない——ハルシネーションを三層ハーモニーで診る」
yatabe
0
320
人間のために、人間と共に働く時代の終わりの始まり
frievea
0
220
FA26 CLU MS Clinical Psychology New Student Orientation
jdbedics
0
180
NT函館2026mini LT 電子部品店とMakerイベント
tomit3
1
120
Plano urbano de Madrid desde el Ensanche al s. XXI (2ª parte).
juanmartin2026
1
100k
エビデンスベースト英語教育入門:エビデンスは科学的知見(だけ)ではない,制度だ!
terasawat
0
220
One Year of Learning English with AI @エンジニア英語キャリア Meetup #3
kekekenta
0
280
Featured
See All Featured
Everyday Curiosity
cassininazir
0
350
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
47
8.4k
How to Get Subject Matter Experts Bought In and Actively Contributing to SEO & PR Initiatives.
livdayseo
0
210
30 Presentation Tips
portentint
PRO
1
420
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3.6k
Noah Learner - AI + Me: how we built a GSC Bulk Export data pipeline
techseoconnect
PRO
0
450
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
35
2.9k
Git: the NoSQL Database
bkeepers
PRO
433
67k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
32
3k
How to Talk to Developers About Accessibility
jct
2
560
sira's awesome portfolio website redesign presentation
elsirapls
0
440
The AI Search Optimization Roadmap by Aleyda Solis
aleyda
2
6.3k
Transcript
1 27 リモートリポジトリの操作 慶應義塾大学理工学部物理情報工学科 渡辺 2026年3月9日 計算物理春の学校2026「計算物理屋のためのGit/GitHub入門」
2 27 今回の目標 • リモートリポジトリの操作について学ぶ • 特に、以下について理解する • どのコマンドでどのブランチが動くか •
どのコマンドでどこが同期されるか • ローカルとリモートの状態の変化
3 27 リモートリポジトリとは • Gitはローカルに全ての情報を持ち、履歴を管理できる • しかし、多人数開発の時には、「開発に関わるみんな」が参 照可能な場所にリポジトリが欲しい • 個人開発でも、「どこからでもアクセスできる場所」にリポ
ジトリがあると便利 リモートリポジトリ
4 27 リモートリポジトリとは .git リモートリポジトリ .git ローカルリポジトリ (ワーキングツリーを 持たないベアリポジトリ) ワーキングツリー
.git ローカルリポジトリ ワーキングツリー
5 27 リモートリポジトリとは .git リモートリポジトリ • どこからでもアクセスしたい • 認証をきっちりしたい •
自分で作りたくない ホスティングサービス .git .git ホスティングサービス 企業がサーバを貸し出すサービス メールやウェブサーバ、データなど Gitのホスティングサービスを提供するのがGitHub ※ 他にGitLabやBitBucketなど
6 27 リモートリポジトリとは 中央リポジトリ • プロジェクトメンバーで共有するリモートリポジトリ • 通常、リモートリポジトリはこれ一つ • Gitは複数のリモートリポジトリに名前をつけて管理で
きるが、通常はoriginというリモートリポジトリ一つで 運用 • Gitホスティングサービスに置くことが多い • リモートリポジトリは一つ • 名前はorigin • 置き場所はGitHub 本講義では今後、以下を前提とする
7 27 ベアリポジトリ ワーキングツリーを持たないリポジトリのこと 通常のリポジトリの.gitディレクトリがトップレベルディレ クトリになったような中身 「プロジェクト名.git」という名前とする .git ローカルリポジトリ ワーキングツリー
リモートリポジトリ project project.git 例: projectというプロジェクトなら、リモートリポジトリはproject.gitにする ※ git init --bare で作成可能だが、自分で作ることはほとんどない
8 27 認証とプロトコル .git リモートリポジトリ リモートリポジトリにアクセスするためには 「場所」「方法」「本人確認」が必要 場所 方法 本人確認
どこにあるか? どう通信するか? 確かに本人か?
9 27 認証とプロトコル URL (Uniform Resource Locator) インターネットにおける「住所」 例えば https://www.github.comなど
プロトコル ここではインターネットにおける通信手段のこと GitHubへのアクセスは、「SSH」か「HTTPS」 SSH (Secure Shell) HTTPS (Hypertext Transfer Protocol Secure) 認証方法は「公開鍵認証」←本講義ではこちらを使う 認証方法は「個人アクセストークン」
10 27 リモートリポジトリの使い方 .git リモートリポジトリ fetch & merge (初回はclone) push
.git ローカルリポジトリ .git ローカルリポジトリ commit 赤字がリモートとやりとりするコマンド
11 27 クローン main リモートリポジトリ main ローカルリポジトリ ワーキングツリー .git $
git clone URL/to/remote.git リモートの「歴史」を持ってきて 最新のワーキングツリーを展開する
12 27 クローン URLで指定されたリモートリポジトリから歴史をローカル に持ってきて、ワーキングツリーを展開する $ git clone リモートリポジトリのURL GitHubのappi-githubというアカウントのclone-sampleをクローンしたい場合
$ git clone https://github.com/appi-github/clone-sample.git $ git clone
[email protected]
:appi-github/clone-sample.git HTTPS SSH アカウント名 リポジトリ名 カレントディレクトリにclone-sampleというディレクトリが作成され、 そこにワーキングツリーが展開される
13 27 プッシュ git push ローカルリポジトリ リモートリポジトリ ローカルで変更された「歴史」をリモートに反映させる ローカルリポジトリ リモートリポジトリ
14 27 フェッチ git fetch ローカルリポジトリ リモートリポジトリ リモートで変更された「歴史」をローカルに取ってくる ローカルリポジトリ リモートリポジトリ
15 27 フェッチ main リモートリポジトリ main origin/main ローカルリポジトリ main origin/main
fetch merge フェッチは歴史を取ってくるだけ リモートのmainは「origin/main」 マージすることで修正を取り込む
16 27 上流ブランチとリモート追跡ブランチ • Gitでは、全てのリポジトリが全ての履歴を持つ • リモートリポジトリにアクセスして、歴史の 「同期」を取る必要がある 「上流ブランチ」と「リモート追跡ブランチ」を使う .git
リモートリポジトリ
17 27 上流ブランチとリモート追跡ブランチ main リモートリポジトリ(origin) main origin/main ローカルリポジトリ 上流 (upstream)
リモート追跡 (remote-tracking) ローカルのmainの上流ブランチがローカルのorigin/main ローカルのorigin/mainは、リモート(origin)のmainを追跡 上流ブランチはfetch, merge, rebaseでデフォルトの対象ブランチとなる
18 27 上流ブランチとリモート追跡ブランチ main リモートリポジトリ(origin) main origin/main ローカルリポジトリ main origin/main
+ $ git fetch origin/mainは動くが、mainは動かない HEAD HEAD $ git fetch origin main =
19 27 上流ブランチとリモート追跡ブランチ main origin/main HEAD main origin/main HEAD $
git merge $ git merge origin/main = ローカルリポジトリ ローカルリポジトリ マージして初めてローカルのmainが動く マージのデフォルト対象は上流ブランチ
20 27 上流ブランチとリモート追跡ブランチ main origin/main ローカルリポジトリ main リモートリポジトリ(origin) $ git
push main main origin/main + $ git push origin main =
21 27 上流ブランチとリモート追跡ブランチ git fetch、git pushによりローカルのブランチは動かない 動くのはローカルにある上流ブランチ git merge, rebaseではローカルのブランチのみ動く
リモートのmainとローカルのorigin/mainが同じ状態に ローカルのmainとローカルのorigin/mainが同じ状態に ローカルのmain,origin/main、リモートのmainが同じ状態に 動くもの、動かないもの 同期するもの どのコマンドで何が動くか、何が同期されるのかを把握すること git fetch: git merge: git push :
22 27 git pull main リモートリポジトリ main origin/main ローカルリポジトリ main
origin/main fetch merge $ git pull フェッチとマージを続けて行う 事故が起こりやすいので、慣れるまでは使わないこと
23 27 git remote リモートリポジトリの設定、変更、削除、表示を行う $ git remote -v リモートリポジトリのURLに名前(通常はorigin)を付けて登録
GitHubにローカルリポジトリを登録する際に必要 その後、上流ブランチを設定しながらプッシュする origin https://github.com/appi-github/clone-sample.git (fetch) origin https://github.com/appi-github/clone-sample.git (push) 実行例→ $ git remote add 名前 URL リモートリポジトリのURLを表示 $ git push –u origin main
24 27 プッシュしたブランチのリベース c1 c2 c3 main c1 c2 main
c4 リモートリポジトリ(origin) main ローカルリポジトリ c1 c2 c3 rebaseによる 歴史改変 $ git push c1 c2 c3 main リベースにより歴史がリモートと矛盾するとプッシュできなくなる
25 27 プッシュしたブランチのリベース c1 c2 c3 main c1 c2 main
c4 リモートリポジトリ(origin) main ローカルリポジトリ c1 c2 c3 rebaseによる 歴史改変 $ git push -f 強制プッシュ c1 c2 main c4 強制プッシュ(-f)により、歴史を上書きできる
26 27 プッシュしたブランチのリベース リモートリポジトリ(origin) c1 c2 main c4 c3 main
origin/main ローカルリポジトリ c1 c2 c3 上流 (upstream) リモート追跡 (remote-tracking) 改変された歴史が強制プッシュされると、他の人のリポジトリと歴史が矛盾する リモートにプッシュ済みのブランチをリベースしない
27 27 まとめ Gitにおける作業の流れ 1. git fetch によりリモートの更新をダウンロード 2. git
mergeによりリモートの更新を取り込む 3. git switch -c newbranchにより新しいブランチを作成して作業開始 4. 作業が終了したらmainにマージ 5. git pushにより、ローカルの更新をアップロード Gitのリモートとローカル • どのコマンドでどのブランチが動くかは慣れるまで 把握しづらい • 「上流ブランチ」と「リモート追跡ブランチ」の挙 動に注目して理解すると良い