Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
リモートリポジトリの操作 / 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
170
0
Share
リモートリポジトリの操作 / 02-c-remote
kaityo256
PRO
March 02, 2026
More Decks by kaityo256
See All by kaityo256
勾配ブースティングと決定木の話 / gradient boosting and decision trees
kaityo256
PRO
6
1.2k
GNU Makeの使い方 / How to use GNU Make
kaityo256
PRO
16
5.6k
この講義について / 00-setup
kaityo256
PRO
2
370
GitHubによるWebアプリケーションのデプロイ / 07-github-deploy
kaityo256
PRO
2
290
演習:Gitの基本操作 / 04-git-basic
kaityo256
PRO
1
500
演習:Gitの応用操作 / 05-git-advanced
kaityo256
PRO
1
300
演習:GitHubの基本操作 / 06-github-basic
kaityo256
PRO
1
340
バージョン管理とは / 01-a-vcs
kaityo256
PRO
1
330
Gitの仕組みと用語 / 01-b-term
kaityo256
PRO
1
380
Other Decks in Education
See All in Education
Course Review - Lecture 13 - Next Generation User Interfaces (4018166FNR)
signer
PRO
0
2.3k
吉祥寺.pmは1つじゃない — 複数イベント並走運営の12年 —
magnolia
0
700
プロポーザルを書く技術とアンチパターン/proposal-writing-and-antipatterns
moriyuya
12
2.8k
Integrating prosody into reading comprehension: A high school classroom practice
otamayuzak
0
120
[2026前期火5] 論理学(京都大学文学部 前期 第5回)「 ならばの問題演習・proof net・かつの規則」
yatabe
0
170
Modern Data Fetching Techniques in Angular
debug_mode
0
140
Populism, Post-Liberalism & Climate Change
vyadav
0
160
アジャイルなマインドセットを「取り戻す」新人研修づくり
chinmo
2
530
SARA Annual Report 2025-26
sara2023
1
340
Gesture-based Interaction - Lecture 6 - Next Generation User Interfaces (4018166FNR)
signer
PRO
1
2.2k
Data Presentation - Lecture 5 - Information Visualisation (4019538FNR)
signer
PRO
1
3.1k
Data Processing and Visualisation Frameworks - Lecture 6 - Information Visualisation (4019538FNR)
signer
PRO
1
3k
Featured
See All Featured
The AI Search Optimization Roadmap by Aleyda Solis
aleyda
1
5.8k
Tips & Tricks on How to Get Your First Job In Tech
honzajavorek
1
510
Darren the Foodie - Storyboard
khoart
PRO
3
3.3k
The Art of Programming - Codeland 2020
erikaheidi
57
14k
The SEO identity crisis: Don't let AI make you average
varn
0
460
HDC tutorial
michielstock
2
660
Taking LLMs out of the black box: A practical guide to human-in-the-loop distillation
inesmontani
PRO
3
2.2k
Primal Persuasion: How to Engage the Brain for Learning That Lasts
tmiket
0
340
How to Align SEO within the Product Triangle To Get Buy-In & Support - #RIMC
aleyda
2
1.5k
The Language of Interfaces
destraynor
162
26k
Agile Actions for Facilitating Distributed Teams - ADO2019
mkilby
0
190
Believing is Seeing
oripsolob
1
130
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のリモートとローカル • どのコマンドでどのブランチが動くかは慣れるまで 把握しづらい • 「上流ブランチ」と「リモート追跡ブランチ」の挙 動に注目して理解すると良い