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
第1回 Git講座
Search
Pudding
PRO
March 18, 2018
Programming
0
750
第1回 Git講座
あくあたん工房での第一回 Git講座の講義資料です。add・commitしてからリモートへpush、プルリクエストがマージされた後、ローカルでのpullする作業までを解説しています。
Pudding
PRO
March 18, 2018
Tweet
Share
More Decks by Pudding
See All by Pudding
GNU Make勉強会 / GNU Make Exercise
pddg
PRO
2
9.1k
雑に覚えるVim / Vim Tutorial
pddg
PRO
0
69
中古PCのススメ/The fundamentals of used PC
pddg
PRO
1
53
もっと気楽にいきましょうって話 / Make more relax
pddg
PRO
4
2k
アイデアの卵と動かざる手 / Do you have something to do to realize your idea?
pddg
PRO
0
150
Docker Seminar for SEL@KIT
pddg
PRO
0
93
進学先を間違ったなと思ったら / I made a mistake in my path
pddg
PRO
0
100
なぜ平文パスワードはNGなのか / Why are plain passwords evil?
pddg
PRO
1
150
Mizql Map @ KITハッカソン2018 by ツナ缶 / Mizql Map
pddg
PRO
0
85
Other Decks in Programming
See All in Programming
Go1.23で入った errorsパッケージの小さなアプデ
kuro_kurorrr
2
390
Amazon BedrockでサーバレスなAIお料理ボットを作成する!!
tosuri13
0
230
Method Swizzlingを行うライブラリにおけるマルチモジュール設計
yoshikma
0
120
o1モデルのプロンプトエンジニアリングって?
ktc_wada
0
260
What you can do with Ruby on WebAssembly
kateinoigakukun
0
170
API Platform for Laravel
dunglas
0
320
LangChainの現在とv0.3にむけて
os1ma
4
920
AndroidアプリのUIバリエーションをあの手この手で確認する / Check UI variations of Android apps by various means
tkmnzm
1
170
Regular Expressions, REXML, Automata Learning
makenowjust
0
220
仮想ファイルシステムを導入して開発環境のストレージ課題を解消する
segadevtech
2
550
全部見せます! クラシルリワードのSwiftTesting移行プロジェクト
uetyo
0
210
いまから追い上げる、Jetpack Compose トレーニング
nyafunta9858
0
590
Featured
See All Featured
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
41
6.5k
Become a Pro
speakerdeck
PRO
22
4.9k
Writing Fast Ruby
sferik
623
60k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
26
1.3k
Docker and Python
trallard
39
3k
Making Projects Easy
brettharned
113
5.8k
How to train your dragon (web standard)
notwaldorf
85
5.6k
Being A Developer After 40
akosma
84
590k
Pencils Down: Stop Designing & Start Developing
hursman
119
11k
Java REST API Framework Comparison - PWX 2021
mraible
PRO
27
7.4k
VelocityConf: Rendering Performance Case Studies
addyosmani
322
23k
Web Components: a chance to create the future
zenorocha
309
42k
Transcript
(JUߨ࠲ ͋͋ͨ͘Μ
࣍ ։ൃʹ͓͚Δόʔδϣϯཧͷେ͞ (JUͷ֓ཁ (JUϗεςΟϯάαʔϏεʹ͍ͭͯ ࠓΔ͜ͱͷઆ໌
(JUͷ֤ૢ࡞Λަ࣮͑ͯश Ὂ DMPOF DIFDLPVU BEE DPNNJU QVTI QVMM GFUDIʜ HJUΫϥΠΞϯτͷհ
։ൃʹ͓͚Δ όʔδϣϯཧͷେ͞
όʔδϣϯཧ҉ࠇ࣌ʢʣ ˔ ϑΝΠϧ໊Ͱཧ Ὂ ཁૉΛ༩ͯ͠ผ໊Ͱอଘ ˗ ˗ ൛ʢվగ൛ɺ࠷৽൛ʜʣ Ὂ
ͲΕ͕࠷৽͔͔Βͳ͘ͳΔ ˗ ࠷৽൛ ˗ ࠷৽൛ʢʣͳͲʜ Ὂ ͭΒ͍
όʔδϣϯཧ҉ࠇ࣌ʢʣ ˔ ιʔείʔυͷมߋΛ ίϝϯτͰཧ Ὂ มߋऀ Ὂ มߋͳͲ ˔ มߋ͕͔Βͳ͍ɾͤͳ͍
Ὂ ݩͷίʔυͲ͏ͩͬͨͷ͔ Ὂ ॻ͖͑ΒΕͨίʔυ ͬͯ͜ͳ͍ import os # 2018/1/18 ύεΛදࣔ print(os.path) if "/usr/bin" in os.path: # 2018/1/20 มߋ print("Loaded") # 2018/1/22 ޙͰ࣮ # hoge() # 2018/1/15 ফͨ͠ # pudding: ͜͜Α͘ͳ͍ end()
όʔδϣϯཧ҉ࠇ࣌ʢʣ ˔ ෳਓͰ։ൃ͢ΔࡍɺϑΝΠϧΛڞ༗ͯ͠ฤू Ὂ ଞਓͷมߋͱίϯϑϦΫτ Ὂ ࣗͷมߋ͕ଞਓͷ্ॻ͖Ͱফ͑Δ Ὂ ݁ہಉ࣌ʹҰਓͣͭͰ࡞ۀ ˔
ٸͳ։ൃλεΫͷՃ Ὂ ػೳ"·్࣮ͩத Ὂ ػೳ#͕ٸʹඞཁʜ Ͳ͏͢Δʁ
खಈͰมߋΛཧ͢Δͷ ਓྨʹ͗͢͠Δ
None
֓ཁ ˔ ࢄܕόʔδϣϯཧγεςϜ ˔ -JOVT5PSWBMETΒʹΑͬͯ࡞ΒΕͨʢʣ Ὂ -JOVYΧʔωϧͷΑ͏ͳڊେͳίʔυΛޮΑ͘ ཧɾ։ൃ͢ΔͨΊ Ὂ ෳਓ։ൃΛָʹ͢ΔͨΊ
˔ (JU࠷ॳͷόʔδϣϯཧγεςϜͰͳ͍ Ὂ -JOVYΧʔωϧॳ#JU,FFQFSΛ͍ͬͯͨ Ὂ ଞʹ༗໊ͳͷ ˠ$74 4VCWFSTJPO .FSDVSJBM #B[BBSͳͲ
όʔδϣϯཧͬͯʁ ˔ શͯͷมߋཤྺ͕HJUʹΑͬͯอଘ ͞Ε͍ͯΔ Ὂ ୭͕ɾ͍ͭɾͲ͏มߋͨ͠ͷ͔ ˔ աڈͷҙͷมߋΕΔ Ὂ มߋͷ࡞ɿ
˔ ͳΜͰཧͰ͖Δ Ὂ ςΩετʹݶΒͳ͍ ˔ ϦϙδτϦ Ὂ ཧԼʹ͋ΔϓϩδΣΫτͷ͜ͱ commit
ࢄܕͬͯͲ͏͍͏͜ͱʁ
(JUϗεςΟϯάαʔϏε ˔ (JUͷϦϞʔτϦϙδτϦΛ ఏڙ͢ΔαʔϏε Ὂ! (JUIVC Ὂ" (JU-BC Ὂ# #JU#VDLFU
˔ ʮ(JUΛ͏ʯ ˠʮόʔδϣϯཧ͢Δʯ ˔ ʮ(JUIVCΛ͏ʯ ˠʮϦϞʔτϦϙδτϦͱͯ͠(JUIVCΛ͏ʯ
ʢ༨ஊʣब׆ʹཱͭ ˔ (JUIVCΞΧϯτͷఏࣔΛٻΊΔاۀ͋Δ Ὂ (JUIVCʹ͜Μͳઃఆ͋Δˠ ˔ ʮ໘લʹదͳ044 ͍Εͱ͚͍͍Μ͡ΌͶXʯ Ὂ ҰॠͰόϨΔ
Ὂ (JUIVCͷʮࣳੜʯͰ׆ಈͷཤྺ͕͙͢Θ͔Δˣ
ࠓΔ͜ͱ
ԋश ˔ νʔϜ։ൃͷྲྀΕΛମݧ DMPOF BEE DPNNJU CSBODI
QVTI QVMMSFRVFTU ϨϏϡʔɾNFSHF GFUDIɾQVMM ֬ೝ ˔ ͋͋ͨ͘Μެࣜ8FC ϖʔδͷϓϩϑΟʔϧΛ ߋ৽͢Δ
(JUͷ֬ೝ ˔ Λ։͘ Ὂ .BDλʔϛφϧͳͲ Ὂ 8JOEPXT(JU#BTI ˔ ৭ʑ֬ೝ͓ͯ͘͠ Ὂ
(JUͷόʔδϣϯ Ὂ ΧϨϯτσΟϨΫτϦ $ git ——version git version 2.15.1.windows.2 $ pwd /path/to/home # ԋश༻σΟϨΫτϦ࡞ $ mkdir git-seminar $ cd git-seminar
(JUͷॳظઃఆ # ઃఆ $ git config ——global user.name “ͳ·͑” $
git config —-global user.email “Ί͋Ͳ” ˔ Ϣʔβ໊ͱ͔Λઃఆ Ὂ DPNNJUͷཤྺʹදࣔ͞ΕΔ໊લͱϝʔϧΞυϨε Ὂ HJUIVCʹొͨ͠ͷͰྑ͍ͱࢥ͏ ˔ QVCMJDͳϦϙδτϦͷ߹ɺશੈքʹެ։͞Εͯ ͍ΔͷͰɺݸਓใҙ ˔ ΦϓγϣϯͰϦϙδτϦ͝ͱʹઃఆͰ͖Δ ——local
։ൃͷશମͷྲྀΕ ϦϙδτϦΛDMPOFʢ·ͨ࡞ʣ ϒϥϯνΛΔ มߋΛBEE DPNNJU ϦϞʔτϦϙδτϦQVTI
QVMMSFRVFTUΛൃߦ NFSHF GFUDIɾQVMMͯ͠ϩʔΧϧʹมߋΛө ֬ೝ
˔ ϦϞʔτϦϙδτϦͷίϐʔΛϩʔΧϧʹ࡞͢Δ ˔ HJUϗεςΟϯάαʔϏεͰެ։͞Ε͍ͯΔجຊ ͲΕͰࣗ༝ʹϩʔΧϧDMPOFͰ͖Δ Ὂ ϩʔΧϧϦϙδτϦͪΌΜͱཧ͠Α͏Ͷʂ clone $ pwd
/path/to/git-seminar $ git clone https://github.com/StudioAquatan/web $ ls web $ cd web
։ൃͷશମͷྲྀΕ ϦϙδτϦΛDMPOFʢ·ͨ࡞ʣ ϒϥϯνΛΔ มߋΛBEE DPNNJU ϦϞʔτϦϙδτϦQVTI
QVMMSFRVFTUΛൃߦ NFSHF GFUDIɾQVMMͯ͠ϩʔΧϧʹมߋΛө ֬ೝ
ͦͷલʹ
·ͣόʔδϣϯཧͷ ཧղΛਂΊΑ͏
˔ (JUͰมߋΛDPNNJUͱ͍͏୯ҐͰอଘ͢Δ Ὂ ϑΝΠϧͦͷͷΛอଘ͢ΔΘ͚Ͱͳ͍ Ὂ εφοϓγϣοτΛͱΔˠ༰ྔͷઅʹͳΔ ˔ ʮݱࡏͲͷDPNNJUΛࢦ͍ͯ͠Δ͔ʯͰϑΝΠϧͷ ঢ়ଶ͕ཧ͞Ε͍ͯΔ Ὂ
ݱࡏࢦ͍ͯ͠Δ࠷৽ͷDPNNJUΛͱݺͿ ˔ DPNNJUʹܻͷҰҙͳϋογϡ͕༩͑ΒΕΔ ˔ DPNNJU࿈ଓϦετͷΑ͏ʹͳ͍ͬͯΔ Ὂ DPNNJU͕ࣗલͷDPNNJUͷϙΠϯλʢܻ ͷҰҙͳϋογϡʣΛ͍࣋ͬͯΔ commit HEAD
commit શͯͷมߋ͕ DPNNJU͠ऴΘͬͨঢ়ଶ
commit ৽͘͠ ͱ͍͏ϑΝΠϧΛ ࡞ͨ͠ঢ়ଶ user.html $VTFSIUNM
˔ ৽͘͠ϑΝΠϧΛεςʔδʹՃ͢ΔίϚϯυ ˔ εςʔδͱʜʁ Ὂ ϦϙδτϦʹө͢ΔલͷϑΝΠϧมߋҰཡ Ὂ ͜͜ʹՃ͞Ε͍ͯͳ͍DPNNJU͞Εͳ͍ add $
git add user.html $ git status On branch master Your branch is up-to-date with ‘origin/master'. Changes to be committed: (use "git reset HEAD <file>..." to unstage) new file: user.html
εςʔδʹ ͱ͍͏ϑΝΠϧΛ Ճͨ͠ঢ়ଶ user.html add $VTFSIUNM
˔ εςʔδʹ্͕͍ͬͯΔมߋΛϦϙδτϦө Ὂ ৽͘͠࡞ͨ͠ͷ͓ͯ͘͜͠ͱ Ὂ طʹϦϙδτϦʹؚ·Ε͍ͯΔϑΝΠϧมߋΛՃ ͑ͨͱ͖ˠ ˔ ίϛοτϝοηʔδΘ͔Γ͘͢ Ὂ
ϑΝΠϧΛՃͨ͠ˠzBEEIPHFz Ὂ ϑΝΠϧΛߋ৽ͨ͠ˠzVQEBUFGVHBzͳͲ $ git commit -m “add test_user.html” [master 3ad5b42] add test_user.html 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 test_user.html commit add git commit -a -m “ίϛοτϝοηʔδ”
git commit -m “add user.html” $VTFSIUNM εςʔδͷมߋΛө
શͯͷมߋ͕ DPNNJU͠ऴΘͬͨঢ়ଶ git commit -m “add user.html”
εςʔδ͔ΒDPNNJU·Ͱ ˔ ࡞ۀπϦʔ͔ΒϑΝΠϧ ΛBEE͢ΔͱHJUͷཧର ʹͳΔ ˔ BEEࡁΈͷϑΝΠϧʹม ߋΛՃ͑ΔͱɺࣗಈͰ εςʔδʹ্͕Δ add
commit
։ൃͷશମͷྲྀΕ ϦϙδτϦΛDMPOFʢ·ͨ࡞ʣ ϒϥϯνΛΔ มߋΛBEE DPNNJU ϦϞʔτϦϙδτϦQVTI
QVMMSFRVFTUΛൃߦ NFSHF GFUDIɾQVMMͯ͠ϩʔΧϧʹมߋΛө ֬ೝ
branch ˔ Ұ࿈ͷDPNNJUʹର͠ذΛ࡞Δ͜ͱ͕ग़དྷΔ Ὂ ذΛ࡞͠ϒϥϯνΛ࡞Δ͜ͱ ˠʮϒϥϯνΛΔʯͱ͍͏ ˔ ϒϥϯνͷਖ਼ମʮ͋Δϒϥϯν໊ͷλά͕͍ͨ Ұ࿈ͷDPNNJUͷ͏ͪ࠷৽ͷͷͷϙΠϯλʯ ˔
࠷جຊͷϒϥϯνˠNBTUFS ˔ ϒϥϯνෳΔ͜ͱ͕Ͱ͖Δ Ὂ ྫɿ։ൃஈ֊͝ͱʢEFWFMPQ SFMFBTFʜʣ Ὂ ྫɿػೳ͝ͱʢGFBUVSFIPHF GFBUVSFGVHBʜʣ ˔ جຊతʹԿ͔͢ΔલʹϒϥϯνΛΔ
˔ NBTUFSͷΈ͕͋Δঢ়ଶ ˔ )&"%ͷࢦ͢ҐஔͱNBTUFSͷࢦ͢Ґஔ͕Ұॹ branch # ϒϥϯνҰཡΛදࣔ $ git branch
* master
branch ˔ ྫͱͯࣗ͠ͷϖʔδΛ࡞͢ΔͨΊʹϒϥϯνΛ ࡞ͯ͠ΈΔ Ὂ ϒϥϯν໊zQBHF\\OBNF^^z $ git branch page/{{name}}
$ git branch * master page/{{name}}
checkout $ git checkout page/{{name}} Switched to branch ‘page/{{name}}' $
git branch master * page/{{name}} ˔ ϒϥϯνͷҠಈʹओʹΘΕΔ Ὂ ಛఆͷίϛοτͷϑΝΠϧΛ෮ݩ͢Δػೳ͋Δ ˔ ࡞ࡁΈͷϒϥϯνҠಈ͢Δଞɺϒϥϯν࡞ͱ ಉ࣌ʹDIFDLPVU͢Δ͜ͱͰ͖Δ git checkout -b page/{{name}}
։ൃͷશମͷྲྀΕ ϦϙδτϦΛDMPOFʢ·ͨ࡞ʣ ϒϥϯνΛΔ มߋΛBEE DPNNJU ϦϞʔτϦϙδτϦQVTI
QVMMSFRVFTUΛൃߦ NFSHF GFUDIɾQVMMͯ͠ϩʔΧϧʹมߋΛө ֬ೝ
branch $ git add member/{{name}}.html $ git commit -m “add
{{name}} page” ˔ QBHF\\OBNF^^ϒϥϯνDPNNJU͞Εͨ ˔ )&"%͕Ҡಈ͠࠷৽ͷDPNNJUΛࢦ͢ Ὂ NBTUFSมԽ͠ͳ͍
։ൃͷશମͷྲྀΕ ϦϙδτϦΛDMPOFʢ·ͨ࡞ʣ ϒϥϯνΛΔ มߋΛBEE DPNNJU ϦϞʔτϦϙδτϦQVTI
QVMMSFRVFTUΛൃߦ NFSHF GFUDIɾQVMMͯ͠ϩʔΧϧʹมߋΛө ֬ೝ
˔ ϩʔΧϧϦϙδτϦͷมߋΛϦϞʔτϦϙδτϦ ө͢Δ ˔ Ὂ PSJHJOϦϞʔτϦϙδτϦͷผ໊ʢσϑΥϧτʣ Ὂ QVTI͢Δઌͷϒϥϯν໊ʹҙ ˔
͜͜Ͱෆཁ͕ͩɺ৽نͰQVTIΛߦ͏߹ɺϦϞʔ τϦϙδτϦͷΞυϨεΛՃ͢Δඞཁ͕͋Δ push git push origin {{ϒϥϯν໊}} $ git push origin page/{{name}}
։ൃͷશମͷྲྀΕ ϦϙδτϦΛDMPOFʢ·ͨ࡞ʣ ϒϥϯνΛΔ มߋΛBEE DPNNJU ϦϞʔτϦϙδτϦQVTI
QVMMSFRVFTUΛൃߦ NFSHF GFUDIɾQVMMͯ͠ϩʔΧϧʹมߋΛө ֬ೝ
(JUIVCߨ࠲ࢀর
։ൃͷશମͷྲྀΕ ϦϙδτϦΛDMPOFʢ·ͨ࡞ʣ ϒϥϯνΛΔ มߋΛBEE DPNNJU ϦϞʔτϦϙδτϦQVTI
QVMMSFRVFTUΛൃߦ NFSHF GFUDIɾQVMMͯ͠ϩʔΧϧʹมߋΛө ֬ೝ
˔ ͋ΔϒϥϯνͰͷDPNNJUΛผͷϒϥϯνऔΓࠐΉ ˔ ҎԼQBHF\\OBNF^^ΛNBTUFSϚʔδ͍ͯ͠Δ Ὂ (JUIVC্ͰQVMMSFRVFTUΛϚʔδ͢Δͱ ϦϞʔτϦϙδτϦͰԼه͕࣮ߦ merge
։ൃͷશମͷྲྀΕ ϦϙδτϦΛDMPOFʢ·ͨ࡞ʣ ϒϥϯνΛΔ มߋΛBEE DPNNJU ϦϞʔτϦϙδτϦQVTI
QVMMSFRVFTUΛൃߦ NFSHF GFUDIɾQVMMͯ͠ϩʔΧϧʹมߋΛө ֬ೝ
checkout $ git checkout master Switched to branch ‘master' $
git branch * master page/{{name}} ˔ ࡞ۀ͕ऴΘͬͨΒݩͷϒϥϯνΔ Ὂ ࣍ͷϒϥϯνΛੜϒϥϯν͔ΒΒͳ͍Α͏ʹ ˔ DPNNJU͍ͯ͠ͳ͍มߋ͕͋ΔͱΕͳ͍ Ὂ جຊతʹશͯDPNNJU͔ͯ͠ΒΖ͏ Ὂ Ͳ͏ͯ͠ඞཁͳ߹TUBTI͕͑Δ
˔ ϦϞʔτϦϙδτϦͷมߋΛϩʔΧϧϦϙδτϦ ө͢ΔίϚϯυ Ὂ 8PSLJOH%JSFDUPSZͷมߋߦΘͳ͍ ˔ ɹ Ὂ औಘͨ͠มߋΛ࣮ࡍʹө͢Δ Ὂ
PSJHJOͷ\\ϒϥϯν໊^^ΛϩʔΧϧͷ\\ϒϥϯν໊^^ ө͢Δͱ͍͏ҙຯ fetch git merge origin/{{ϒϥϯν໊}} $ git fetch # ͜͜ͰmasterΛϚʔδ͢Δ $ git merge origin/master
˔ ݱࡏ͍ΔϒϥϯνϦϞʔτͷมߋΛϚʔδ͢Δ Ὂ ͦΕҎ্ͷ͍ํΛ͍͚ͯ͠ͳ͍ ˔ લड़ͷGFUDIͱNFSHFPSJHJO\\ϒϥϯν໊^^Λ ҰׅͰ࣮ߦ͢Δ ˔ άάΔͱ༻͠ͳ͍͜ͱΛਪ͢Δهࣄ͕ࢁ ώοτ͢Δ
Ὂ ͪΌΜͱཧղͯ͑͠ศར pull # masterʹ͍ΔͳΒorigin/masterͷมߋ͕औΓࠐ·ΕΔ $ git pull
։ൃͷશମͷྲྀΕ ϦϙδτϦΛDMPOFʢ·ͨ࡞ʣ ϒϥϯνΛΔ มߋΛBEE DPNNJU ϦϞʔτϦϙδτϦQVTI
QVMMSFRVFTUΛൃߦ NFSHF GFUDIɾQVMMͯ͠ϩʔΧϧʹมߋΛө ֬ೝ
֬ೝ ˔ ϩʔΧϧө͞Ε͔ͨ֬ೝ͢Δ NBTUFSϒϥϯνΛνΣοΫΞτ NFNCFS\\OBNF^^IUNMΛϒϥβͰ։͘ ˔
Ҏ্͕جຊతͳෳਓ։ൃͷྲྀΕʹͳΔ śŧœʙʢů ьʆ ůʙ̇ git fetch && git merge origin/master
(JUIVCͷ͍ํؚΊͨྲྀΕ ϦϙδτϦΛDMPOFʢ·ͨ࡞ʣ JTTVFΛݐͯΔPSׂΓͯΒΕͨJTTVFΛ֬ೝ ϒϥϯνΛΔ มߋΛBEE DPNNJU
ϦϞʔτϦϙδτϦQVTI QVMMSFRVFTUΛൃߦɺϨϏϡʔɾमਖ਼ޙNFSHF ʢJTTVFΛด͡Δʣ ݩͷϒϥϯνΛDIFDLPVU GFUDIɾQVMMͯ͠ϩʔΧϧʹมߋΛө ֬ೝ
5JQT ˔ 2͍ͭDPNNJU͢Ε͍͍ΜͰ͔͢ʁ "࣌ͱ߹ʹΑΔ͕ɺׂͱࡉ͔͍୯ҐͰDPNNJU͠ ͯશવߏΘͳ͍ɻDPNNJU͕૿͑Δ͜ͱΛڪΕΔ ҙຯແ͍ɻ ˔ 2ϨϏϡʔͯ͠ΒΘͳ͍ͱμϝͰ͔͢ʁ "Ұਓͷ࣌ෆཁɻνʔϜ։ൃͰඞਢ ˔
2ϨϏϡʔ͕ාͯ͘ϓϧϦΫग़ͤ·ͤΜ "ϨϏϡΞʔَ͡Όͳ͍ͷͰ҆৺ͯ͠ ˔ 2ίϯϑϦΫτͨ͠ʂ "࣍ճΓ·͠ΐ͏