ë댟ě˝ëŠ 'Git ë§ě¤í° ęłźě ' ę°ě
ë댟ě˝ëŠ ě íë¸ ęš, ęšíë¸ ě ëëĄ ë°°ě°ę¸° (기본 ë§ě¤í°í¸, ě¤ëŹ´ěě ężëŚŹě§ ë§ě)
íëĄě í¸ íěźě ěě , ěě íęł ěë working directory
git add
ě´ë ě ë ěě íë¤ę° ë˛ě historyě ě ěĽí ě¤ëšę° ëěë¤ëŠ´ í´ëš íěźë¤ě ěŽę˛¨ëë staging area
git commit
ë˛ě ě history뼟 ę°ě§ęł ěë .git repository ëë .git directory
git checkout
.git directoryě ě ěĽë ë˛ě ë¤ě ě¸ě ë ě§ ěíë ë˛ě ěźëĄ ë¤ě ë댴 ě ěë¤
git push
githubě ę°ě ěë˛ě ëě .git directory뼟 ě ëĄëí´ëë¤
git pull
ěë˛ěě ëĄěťŹëĄ ë¤ě ë¤ě´ëĄë ë°ęł ěśě ë
ę°ę°ě 읤ë°ěë ě¤ë ěˇë ě ëł´ë¤ě 기ë°ěźëĄ í´ě ęł ě í í´ěě˝ëę° ëśęłźëë¤. ě´ëĽź ě´ěŠí´ ë˛ě ě 보뼟 참쥰í ě ěë¤. ꡸ë°ěë ë˛ě ę´ë ¨ ëŠěě§, ëę° ě¸ě ěěąíëě§ě ëí ě ëł´ë¤ë íŹí¨ëě´ ěë¤.
ěëĄ íěźě ë§ë¤ęą°ë 기쥴ě 쥴ěŹíë íëĄě í¸ěě gitě ě´ę¸°íí 경ě°, gitě´ ęˇ¸ íěźě ëí ě 보뼟 ě í 모뼴기 ë돸ě untracked ěíëźęł í ě ěë¤
맨 ě˛ěěë git add ëŞ ë šě´ëĽź ě´ěŠí´ working directoryěě staging areaëĄ ěŽę˛¨ě¤ěź tracked ěíę° ëë¤
gitě´ ě´ëŻ¸ ěęł ěě´ě tracking ě¤ě¸ íěźě´ëźëŠ´, tracked ěíëźęł í ě ěë¤
꡸ë ę˛ tracked ěíę° ë íěźě´
unmodified
ěímodified
ěí â ě´ íěźë§ ë¤ě git add ëŞ
ë šě´ëĽź ě´ěŠí´ staging areaëĄ ěŽę¸¸ ě ěë¤đ ě¤ěľ 'ëĄěťŹ íěźë¤ ěśę°í기 add'
- git init
â git ě´ę¸°í (.git íěź ë§ëŚ)rm -rf .git
â git ěě
- echo hello world! > a.txt
â hello world! ëźë ë´ěŠě ę°ě§ a.txt íěź ěěąrm a.txt
â a.txt íěź ě ęą°
- í°ëŻ¸ëěě (master) ę¸ě ěě´ ë ¸ëěě´ ë늴, working directoryě ěě§ commit ëě§ ěě ëłę˛˝ ěŹíě´ ěěě ě미íë¤
- ( git add b.txt c.txt ) ëě ( git add *.txt ) ëźęł í ě ěë¤.
git add
working directoryěě staging areaě ěśę°í기
git rm --cached *
staging areaěě ě§ě°ęł working directoryëĄ ëł´ë´ę¸°
đĄ
git add *
ěgit add .
ě ě°¨ě´
git add *
í íě ě´ë¤ íěźě working directoryěě ěě íë¤ëŠ´, ë¤ěgit add *
뼟 íëëźë ꡸ ëłę˛˝ěŹíě staging areaě ěśę°ëě§ ěëë¤. ě´ë´ ëgit add .
ě ěŹěŠí ě ěë¤.
đĄ rm / mvě git rm / git mvě ě°¨ě´
í°ëŻ¸ë ëŞ ë šě´
rm
ě ě´ěŠí´ íěźě ěě í늴(mv
뼟 ě´ěŠí´ íěźëŞ ě ë°ęž¸ëŠ´) ꡸ ëłę˛˝ěŹíě working directoryěë§ ë¨ě ěë¤.
ë°ëźě, ě´ ëłę˛˝ěŹíě íŹí¨í´ě commit íë ¤ëŠ´, 먟ě [ git add . ]ě ěŹěŠí´ ꡸ ëłę˛˝ěŹíě staging areaě ěśę°í´ě¤ěź íë¤ęˇ¸ëŹë, git ëŞ ë šě´
git rm
ě ě´ěŠí´ íěźě ěě í늴(git mv
뼟 ě´ěŠí´ íěźëŞ ě ë°ęž¸ëŠ´) ěëěźëĄ ëłę˛˝ěŹíě´ staging areaě ěśę°ëëŻëĄ ë°ëĄ ě´ ëłę˛˝ěŹíęšě§ íŹí¨í´ě commit í ě ěë¤.
tracking íęł ěśě§ ěě(gitęłź githubě ěŹëŚŹęł ěśě§ ěě) íěźë¤ě gitignore íěź
ě ěśę°íë¤
echo *.log > .gitignore
â logëĄ ëëë 모ë íěźgit status -h 뼟 íľí´ ë¤ě ěŹěŠí ě ěë ěľě íě¸
ě´ëĽź íľí´ ě´ë¤ íěźě´ ěě ëěęł , staging areaě ěëě§ ěëě§ëĽź íě¸í ě ěë¤. ꡸ëŹë, git statusëĄë íěźě ě´ë¤ ë´ěŠě´ ě´ëťę˛ ěě ëěëě§ë íě¸í ě ěë¤.
git diff뼟 ěŹěŠí´ working directoryě ëłę˛˝ěŹíë¤ë§ě íě¸
í ě ěë¤.
[ ěě ]
Îť git diff
diff --git a/c.txt b/c.txt
index 12a8798..311c32c 100644
--- a/c.txt
+++ b/c.txt
@@ -1 +1,2 @@
hello world!
+add
diff --git a/c.txt b/c.txt
aë ě´ě ë˛ě
, bë ě§ę¸ ë˛ě
ě ě미íë¤.
ěŹę¸°ě 'ě´ě ë˛ě 'ě´ë (working directoryě ěë íěźě 경ě°) ě´ě ě commitë ë˛ě ëë staging areaě ěë íěźě ę°ëŚŹí¨ë¤
--- a/c.txt
+++ b/c.txt
ě´ě ë˛ě ęłź ě§ę¸ ë˛ě ě ëšęľíë¤
@@ -1 +1,2 @@
hello world!
+add
-ë ě´ě ë˛ě ě ě미íë¤. -1
ě ě´ě ë˛ě ě 첍 ë˛ě§¸ ě¤ě ě미íë¤.
ě ěěěěë ě´ě ë˛ě ě 첍 ë˛ě§¸ ě¤ě hello world!ę° ěěě ě미íë¤.
+ë ě§ę¸ ë˛ě ě ě미íë¤. -1, 2
ë ě§ę¸ ë˛ě ě 첍 ë˛ě§¸ ě¤ěě ë ë˛ě§¸ ě¤ęšě§ëĽź ě미íë¤. ě ěěěěë hello world!ę° ěë ěíěě addëźë í
ě¤í¸ę° ěśę°ëěěě ě미íë¤.
ěśę°
ę° ëěë¤ëŠ´, + ë¤ěě ëłę˛˝ë ěśę°ë ëě¨ë¤. ëł´íľě ě´ëĄěěźëĄ í기ëë¤. (ě ěěě 경ě°, +add)
ěě
ę° ëěë¤ëŠ´, - ë¤ěě ěě ë ë´ěŠě´ ëě¨ë¤. ëł´íľě 뚨ę°ěěźëĄ í기ëë¤.
꡸ë°ë°, git diffë§ěźëĄë working directoryě ěë ëłę˛˝ěŹíë¤ë§ íě¸í´ëłź ě ěë¤.
cat c.txt
cat ëŞ ë šě´ëĽź ě´ěŠí´ě c.txt íěźě ěë ë´ěŠě íě¸í´ëł´ëŠ´, hello world!ě addę° ëě¤ě§ë§, hello world!ë staging areaě ë¤ě´ ěęł , addë ěě§ working directoryě ě기 ë돸ě git diff뼟 ě´ěŠí늴 addë§ ëě¨ë¤.
git diff --staged
git diff --cached (cachedë stagedě ëěě´ëĄ ěŹěŠëë¤)
staging areaě ëłę˛˝ěŹíě íě¸
í기 ěí´ěë git diff --staged뼟 ěŹěŠí ě ěë¤.
[ ěě ]
Îť git diff --staged
diff --git a/c.txt b/c.txt
new file mode 100644
index 0000000..12a8798
--- /dev/null
+++ b/c.txt
@@ -0,0 +1 @@
+hello world!
diff --git a/style.css b/style.css
new file mode 100644
index 0000000..65699e6
--- /dev/null
+++ b/style.css
@@ -0,0 +1 @@
+styling
diff --git a/c.txt b/c.txt
cëźë íěźě´ ěë¤
--- /dev/null
+++ b/c.txt
ě´ě ěë ěěëë°
cëźë íěźě´ ěśę°ëěë¤
@@ -0,0 +1 @@
+hello world!
ě´ě ěë ě´ë¤ ě¤ë ěěě§ë§
ěëĄě´ íěźě 첍 ë˛ě§¸ ě¤ě hello world!ëźęł ěśę°ëěë¤
diff --git a/style.css b/style.css
style.cssëźë íěźě´ ěë¤
--- /dev/null
+++ b/style.css
ě´ě ěë ěěëë°
cëźë íěźě´ ěśę°ëěë¤
@@ -0,0 +1 @@
+styling
ě´ě ěë ě´ë¤ ě¤ë ěěě§ë§
ěëĄě´ íěźě 첍 ë˛ě§¸ ě¤ě stylingě´ëźęł ěśę°ëěë¤