{"id":3677,"date":"2020-09-17T00:41:31","date_gmt":"2020-09-16T15:41:31","guid":{"rendered":"\/blog\/?p=3677"},"modified":"2023-09-21T09:26:38","modified_gmt":"2023-09-21T00:26:38","slug":"git","status":"publish","type":"post","link":"https:\/\/hasu0707.duckdns.org\/blog\/?p=3677","title":{"rendered":"git \uc790\ub8cc \uc815\ub9ac"},"content":{"rendered":"\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1021\" height=\"579\" src=\"\/blog\/wp-content\/uploads\/2020\/09\/git_workflow.png\" alt=\"\" class=\"wp-image-3727\" srcset=\"https:\/\/hasu0707.duckdns.org\/blog\/wp-content\/uploads\/2020\/09\/git_workflow.png 1021w, https:\/\/hasu0707.duckdns.org\/blog\/wp-content\/uploads\/2020\/09\/git_workflow-768x436.png 768w\" sizes=\"auto, (max-width: 1021px) 100vw, 1021px\" \/><figcaption>Git Architecture-1<\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1280\" height=\"855\" src=\"\/blog\/wp-content\/uploads\/2020\/09\/git_architechture2.png\" alt=\"\" class=\"wp-image-3726\" srcset=\"https:\/\/hasu0707.duckdns.org\/blog\/wp-content\/uploads\/2020\/09\/git_architechture2.png 1280w, https:\/\/hasu0707.duckdns.org\/blog\/wp-content\/uploads\/2020\/09\/git_architechture2-768x513.png 768w\" sizes=\"auto, (max-width: 1280px) 100vw, 1280px\" \/><figcaption>Git Architecture-2<\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1698\" height=\"1592\" src=\"\/blog\/wp-content\/uploads\/2020\/09\/git_architechture1.png\" alt=\"\" class=\"wp-image-3725\" srcset=\"https:\/\/hasu0707.duckdns.org\/blog\/wp-content\/uploads\/2020\/09\/git_architechture1.png 1698w, https:\/\/hasu0707.duckdns.org\/blog\/wp-content\/uploads\/2020\/09\/git_architechture1-768x720.png 768w, https:\/\/hasu0707.duckdns.org\/blog\/wp-content\/uploads\/2020\/09\/git_architechture1-1536x1440.png 1536w\" sizes=\"auto, (max-width: 1698px) 100vw, 1698px\" \/><figcaption>Git Architecture-3<\/figcaption><\/figure>\n\n\n\n<span style=\"font-family: monospace;\">\ucd9c\ucc98: <a href=\"https:\/\/github.com\/jeonghwan-kim\/git-usage\" target=\"_blank\" rel=\"noopener\">https:\/\/github.com\/jeonghwan-kim\/git-usage<\/a><br \/><br \/><span style=\"font-size: 24px;\">\uad6c\uc870<\/span><br \/>\ucf54\ub4dc\ub294 \uc544\ub798 \uc138 \ub2e8\uacc4\uc5d0 \uac78\uccd0 \uc800\uc7a5\ub41c\ub2e4.<br \/><br \/>\uc2a4\ud14c\uc774\uc9d5 -&gt; \ucee4\ubc0b -&gt; \uc6d0\uaca9\uc800\uc7a5\uc18c<br \/><br \/>git add {\ud30c\uc77c\uba85} \uc73c\ub85c \ud30c\uc77c\uc744 \uc2a4\ud14c\uc774\uc9d5 \uc0c1\ud0dc\uc5d0 \ub123\ub294\ub2e4.<br \/>git commit \uc73c\ub85c \uc2a4\ud14c\uc774\uc9d5 \uc0c1\ud0dc\uc5d0 \uc788\ub294 \ubaa8\ub4e0 \ubcc0\uacbd\uc0ac\ud56d\uc744 \ucee4\ubc0b\ud55c\ub2e4. \uc5ec\uae30\uae4c\uc9c0\uac00 \ub85c\uceec\uc5d0\uc11c\uc758 \uc791\uc5c5<br \/>git push \ub85c \ucee4\ubc0b\ub41c \uc800\uc7a5\uc18c\ub97c \uc6d0\uaca9 \uc800\uc7a5\uc18c\ub85c \ubc00\uc5b4\ub123\ub294\ub2e4.<br \/><br \/><span style=\"font-size: 24px;\">\uae30\ubcf8 \uba85\ub839\uc5b4<\/span><br \/><br \/>\uc800\uc7a5\uc18c \uc0dd\uc131<br \/><br \/>git init<br \/>\uc6d0\uaca9 \uc800\uc7a5\uc18c\ub85c\ubd80\ud130 \ubcf5\uc81c<br \/><br \/>git clone {url}<br \/>\ubcc0\uacbd \uc0ac\ud56d \uccb4\ud06c<br \/><br \/>git status \/\/<br \/>\ud2b9\uc815 \ud30c\uc77c \uc2a4\ud14c\uc774\uc9d5<br \/><br \/>git add {\ud30c\uc77c\uba85}<br \/>\ubcc0\uacbd\ub41c \ubaa8\ub4e0 \ud30c\uc77c \uc2a4\ud14c\uc774\uc9d5<br \/><br \/>git add *<br \/>\ucee4\ubc0b<br \/><br \/>git commit -m &ldquo;{\ubcc0\uacbd \ub0b4\uc6a9}&rdquo;<br \/>\uc6d0\uaca9\uc73c\ub85c \ubcf4\ub0b4\uae30<br \/><br \/>git push origin master<br \/>\uc6d0\uaca9\uc800\uc7a5\uc18c \ucd94\uac00<br \/><br \/>git remote add origin {\uc6d0\uaca9\uc11c\ubc84\uc8fc\uc18c}<br \/>\ucc38\uace0 \ud398\uc774\uc9c0<br \/><br \/>download(osx): http:\/\/code.google.com\/p\/git-osx-installer\/downloads\/list<br \/>download(windows): http:\/\/git-scm.com\/download\/win<br \/>\uc124\uce58 \uba54\ub274\uc5bc: http:\/\/blog.outsider.ne.kr\/389<br \/>\uc0ac\uc6a9 \uba54\ub274\uc5bc: http:\/\/dogfeet.github.io\/articles\/2012\/how-to-github.html<br \/>git \uac04\ud3b8 \uc548\ub0b4\uc11c: http:\/\/rogerdudler.github.com\/git-guide\/index.ko.html<br \/>\ud55c\uc7a5\uc73c\ub85c \ud575\uc2ec \uae30\ub2a5\ub9cc: http:\/\/rogerdudler.github.com\/git-guide\/files\/git_cheat_sheet.pdf<br \/><br \/><br \/><br \/><span style=\"font-size: 24px;\">Commit<\/span><br \/>\ucee4\ubc0b \ud569\uce58\uae30<br \/><br \/>git rebase -i HEAD~4 \/\/ \ucd5c\uc2e0 4\uac1c\uc758 \ucee4\ubc0b\uc744 \ud558\ub098\ub85c \ud569\uce58\uae30<br \/>\ucee4\ubc0b \uba54\uc138\uc9c0 \uc218\uc815<br \/><br \/>$ git commit --amend \/\/ \ub9c8\uc9c0\ub9c9 \ucee4\ubc0b\uba54\uc138\uc9c0 \uc218\uc815(ref)<br \/>\uac04\ub2e8\ud55c commit\ubc29\ubc95<br \/><br \/>$ git add {\ubcc0\uacbd\ud55c \ud30c\uc77c\ubcd1}<br \/>$ git commit -m &ldquo;{\ubcc0\uacbd \ub0b4\uc6a9}\"<br \/>\ucee4\ubc0b \uc774\ub825 \ud655\uc778<br \/><br \/>$ git log \/\/ \ubaa8\ub4e0 \ucee4\ubc0b\ub85c\uadf8 \ud655\uc778<br \/>$ git log -3 \/\/ \ucd5c\uadfc 3\uac1c \ucee4\ubc0b\ub85c\uadf8 \ud655\uc778<br \/>$ git log --pretty=oneline \/\/ \uac01 \ucee4\ubc0b\uc744 \ud55c \uc904\ub85c \ud45c\uc2dc<br \/>$ git reflog \/\/ reset \ud639\uc740 rebase\ub85c \uc5c6\uc5b4\uc9c4 \uacfc\uac70\uc758 \ucee4\ubc0b \uc774\ub825 \ud655\uc778<br \/>\ucee4\ubc0b \ucde8\uc18c<br \/><br \/>$ git reset HEAD^ \/\/ \ub9c8\uc9c0\ub9c9 \ucee4\ubc0b \uc0ad\uc81c<br \/>$ git reset --hard HEAD \/\/ \ub9c8\uc9c0\ub9c9 \ucee4\ubc0b \uc0c1\ud0dc\ub85c \ub418\ub3cc\ub9bc<br \/>$ git reset HEAD * \/\/ \uc2a4\ud14c\uc774\uc9d5\uc744 \uc5b8\uc2a4\ud14c\uc774\uc9d5\uc73c\ub85c \ubcc0\uacbd, ref<br \/><br \/><br \/><br \/><span style=\"font-size: 24px;\">Branch<\/span><br \/>master \ube0c\ub79c\uce58\ub97c \ud2b9\uc815 \ucee4\ubc0b\uc73c\ub85c \uc62e\uae30\uae30<br \/><br \/>git checkout better_branch<br \/>git merge --strategy=ours master &nbsp; &nbsp;# keep the content of this branch, but record a merge<br \/>git checkout master<br \/>git merge better_branch &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;# fast-forward master up to the merge<br \/>\ube0c\ub79c\uce58 \ubaa9\ub85d<br \/><br \/>$ git branch \/\/ \ub85c\uceec<br \/>$ git branch -r \/\/ \ub9ac\ubaa8\ud2b8<br \/>$ git branch -a \/\/ \ub85c\uceec, \ub9ac\ubaa8\ud2b8 \ud3ec\ud568\ub41c \ubaa8\ub4e0 \ube0c\ub79c\uce58 \ubcf4\uae30<br \/>\ube0c\ub79c\uce58 \uc0dd\uc131<br \/><br \/>git branch new master \/\/ master -&gt; new \ube0c\ub79c\uce58 \uc0dd\uc131<br \/>git push origin new \/\/ new \ube0c\ub79c\uce58\ub97c \ub9ac\ubaa8\ud2b8\ub85c \ubcf4\ub0b4\uae30<br \/>\ube0c\ub79c\uce58 \uc0ad\uc81c<br \/><br \/>git branch -D {\uc0ad\uc81c\ud560 \ube0c\ub79c\uce58 \uba85} \/\/ local<br \/>git push origin :{the_remote_branch} \/\/ remote<br \/>\ube48 \ube0c\ub79c\uce58 \uc0dd\uc131<br \/><br \/>$ git checkout --orphan {\uc0c8\ub85c\uc6b4 \ube0c\ub79c\uce58 \uba85}<br \/>$ git commit -a \/\/ \ucee4\ubc0b\ud574\uc57c \uc0c8\ub85c\uc6b4 \ube0c\ub79c\uce58 \uc0dd\uc131\ub428<br \/>$ git checkout -b new-branch \/\/ \ube0c\ub79c\uce58 \uc0dd\uc131\uacfc \ub3d9\uc2dc\uc5d0 \uccb4\ud06c\uc544\uc6c3<br \/>\ub9ac\ubaa8\ud2b8 \ube0c\ub79c\uce58 \uac00\uc838\uc624\uae30<br \/><br \/>$ git checkout -t origin\/{\uac00\uc838\uc62c \ube0c\ub79c\uce58\uba85} \/\/ ref<br \/>\ube0c\ub79c\uce58 \uc774\ub984 \ubcc0\uacbd<br \/><br \/>$ git branch -m {new name} \/\/ ref<br \/><br \/><br \/><br \/><span style=\"font-size: 24px;\">Tag<\/span><br \/>\ud0dc\uadf8 \uc0dd\uc131<br \/><br \/>git tag -a {tag name} -m {tag message} {commit hash}<br \/>git tag {tag name} {tag name} -f -m \"{new message}\" \/\/ Edit tag message<br \/>\ud0dc\uadf8 \uc0ad\uc81c<br \/><br \/>git tag -d {tag name}<br \/>git push origin :tags\/{tag name} \/\/ remote<br \/>\ud0dc\uadf8 \ud478\uc2dc<br \/><br \/>git push origin --tags<br \/>git push origin {tag name}<br \/>git push --tags<br \/><br \/><br \/><br \/><span style=\"font-size: 24px;\">\uae30\ud0c0<\/span><br \/>\ud30c\uc77c \uc0ad\uc81c<br \/><br \/>git rm --cached --ignore-unmatch [\uc0ad\uc81c\ud560 \ud30c\uc77c\uba85]<br \/>\ud788\uc2a4\ud1a0\ub9ac \uc0ad\uc81c<br \/><br \/>\ubaa9\uc801: \ud328\uc2a4\uc6cc\ub4dc, \uc544\uc774\ub514 \uac19\uc740 \ube44\uacf5\uac1c \uc815\ubcf4\uac00 \ub2f4\uae34 \ud30c\uc77c\uc744 \uc2e4\uc218\ub85c \uc62c\ub838\uc744 \ub54c \uc0ad\uc81c\ud558\ub294 \ubc29\ubc95\uc774\ub2e4. (history\uc5d0\uc11c\ub3c4 \ud574\ub2f9 \ud30c\uc77c\ub9cc \uc0ad\uc81c)<br \/>$ git clone [url] # \uc18c\uc2a4 \ub2e4\uc6b4\ub85c\ub4dc<br \/>$ cd [foler_name] # \ud574\ub2f9 \ud3f4\ub354 \uc774\ub3d9<br \/>$ git filter-branch --index-filter 'git rm --cached --ignore-unmatch [\uc0ad\uc81c\ud560 \ud30c\uc77c\uba85]' --prune-empty -- --all # \ubaa8\ub4e0 \ud788\uc2a4\ud1a0\ub9ac\uc5d0\uc11c \ud574\ub2f9 \ud30c\uc77c \uc0ad\uc81c<br \/>$ git push origin master --force # \uc11c\ubc84\ub85c \uc804\uc1a1<br \/>\ud788\uc2a4\ud1a0\ub9ac\uc5d0\uc11c \ud3f4\ub354 \uc0ad\uc81c:<br \/><br \/>git filter-branch --tree-filter 'rm -rf vendor\/gems' HEAD<br \/>\ub9ac\ubaa8\ud2b8 \uc8fc\uc18c \ucd94\uac00\ud558\uc5ec \ub85c\uceec\uc5d0 \uc2f1\ud06c\ud558\uae30<br \/><br \/>$ git remote add upstream {\ub9ac\ubaa8\ud2b8 \uc8fc\uc18c}<br \/>$ git pull upstream {\ube0c\ub79c\uce58\uba85}<br \/>\ucd5c\uc801\ud654<br \/><br \/>$ git gc<br \/>$ git gc --aggressive<br \/><br \/><br \/><br \/><span style=\"font-size: 24px;\">\uc11c\ubc84 \uc124\uc815<\/span><br \/>\uac15\uc81c \ud478\uc2dc \uc124\uc815<br \/><br \/>git config receive.denynonfastforwards false<br \/><br \/>Alias<br \/>~\/.gitconfig \ud30c\uc77c\uc744 \uc124\uc815\ud558\uc5ec Git \uba85\ub839\uc5b4\uc758 \uc568\ub9ac\uc5b4\uc2a4\ub97c \uc9c0\uc815\ud560 \uc218 \uc788\ub2e4.<br \/><br \/>~\/.gitconfig &gt; alias \ubd80\ubd84:<br \/><br \/><br \/>[alias]<br \/>&nbsp; br = branch<br \/>&nbsp; co = checkout<br \/>&nbsp; rb = rebase<br \/>&nbsp; st = status<br \/>&nbsp; cm = commit<br \/>&nbsp; pl = pull<br \/>&nbsp; ps = push<br \/>&nbsp; lg = log --graph --abbrev-commit --decorate --format=format:'%C(cyan)%h%C(reset) - %C(green)(%ar)%C(reset) &nbsp;%C(white)%s%C(reset) %C(dim white)- %an%C(reset)%C(yellow)%d%C(reset)' --all<br \/>&nbsp; ad = add<br \/>&nbsp; tg = tag<br \/>&nbsp; df = diff<br \/><br \/><span style=\"font-size: 24px;\">\u25a0git \ud55c\uae00 \ub9e4\ub274\uc5bc<\/span><br \/>https:\/\/git-scm.com\/book\/ko\/v2\/<br \/><br \/><br \/><span style=\"font-size: 24px;\">\u25a0git config \uc815\ub9ac<\/span><br \/>REM \uc0ac\uc6a9\uc790 \uc774\ub984 \ubc0f \uc774\uba54\uc77c<br \/>git config --global user.name \"Your name\"<br \/>git config --global user.email \"Your email address\"<br \/><br \/>REM \uc124\uc815 \uc870\ud68c<br \/>git config --global --list<br \/>git config --list<br \/><br \/>REM \ucd9c\ub825 \uc0c9\uc0c1 \ud65c\uc131\ud654<br \/>git config --global color.ui \"auto\"<br \/><br \/>REM \uac1c\ud589\ubb38\uc790 \ubcc0\uacbd \ube44\ud65c\uc131\ud654<br \/>git config --global core.autocrlf false<br \/><br \/>REM SSL \uc0ac\uc6a9 \ube44\ud65c\uc131\ud654<br \/>git config --global http.sslVerify false<br \/><br \/>REM \uc778\uc99d\uc11c \uc124\uc815<br \/>git config --system http.sslcainfo \"C:\\PortableApps\\cmd_git\\mingw32\\ssl\\certs\\ca-bundle.crt\"<br \/><br \/>REM \uc5d0\ub514\ud130 \uc124\uc815<br \/>git config --global core.editor \"'C:\\PortableApps\\Notepad++Portable\\notepad++.exe' -multiInst -nosession\"<br \/><br \/><br \/><br \/><span style=\"font-size: 24px;\">\u25a0github \ud328\uc2a4\uc6cc\ub4dc \ucd08\uae30\ud654<\/span><br \/>git credential reject<br \/>protocol=https<br \/>host=github.com<br \/>&lt;\uc5d4\ud130&gt;<br \/><br \/><br \/><br \/><span style=\"font-size: 24px;\">\u25a0github \uc800\uc7a5\uc18c \ucd08\uae30\ud654<\/span><br \/>RMDIR \/S \/Q .git<br \/><br \/>REM recreate the repos from the current content only<br \/>git init<br \/>git add .<br \/>git commit -m \"Initial commit\"<br \/><br \/>REM &nbsp;push to the github remote repos ensuring you overwrite history<br \/>git remote add origin \"git@github.com:kildong\/test.git\"<br \/>git push -u --force origin master<br \/><br \/><br \/><br \/><span style=\"font-size: 24px;\">\u25a0git \ucee4\ub9e8\ub4dc \uc815\ub9ac<\/span><br \/>&nbsp; \u25cegit init<br \/>&nbsp; &nbsp; \ub85c\uceec\uc800\uc7a5\uc18c initialize<br \/>&nbsp; &nbsp; : .git \ud3f4\ub354\uac00 \uc0dd\uae34\ub2e4. (.git \ud3f4\ub354 \uc5c6\uc73c\uba74 \ubc84\uc804\uad00\ub9ac \ub418\uc9c0 \uc54a\uc74c.)<br \/>&nbsp; &nbsp; : \uc9c0\uc815\ud55c \ub85c\uceec \uc800\uc7a5\uc18c\uac00 \uc5c6\uc73c\uba74 \uc0c8\ub85c \uc0dd\uc131 + \ucd08\uae30\ud654<br \/>&nbsp; &nbsp; git init [\ub85c\uceec\uc800\uc7a5\uc18c\uc704\uce58]<br \/><br \/>&nbsp; &nbsp; \ud604\uc7ac \uc704\uce58 \ub85c\uceec\uc800\uc7a5\uc18c initialize<br \/>&nbsp; &nbsp; git init .<br \/><br \/><br \/><br \/>&nbsp; \u25cegit status<br \/>&nbsp; &nbsp; \ud604\uc7ac \uc0c1\ud0dc \ud655\uc778<br \/>&nbsp; &nbsp; : pull \ub610\ub294 push \ud560 \ub0b4\uc6a9\uc774 \uc788\ub294\uc9c0 \ub4f1\ub4f1 \uc54c \uc218 \uc788\ub2e4.<br \/>&nbsp; &nbsp; git status<br \/><br \/><br \/><br \/>&nbsp; \u25cegit diff<br \/>&nbsp; &nbsp; \ubc14\ub010 \ubd80\ubd84 \ubcf4\uae30<br \/>&nbsp; &nbsp; git diff<br \/><br \/><br \/><br \/>&nbsp; \u25cegit add<br \/>&nbsp; &nbsp; \ud30c\uc77c\uc744 Staging Area\uc5d0 \uc62c\ub9ac\uae30<br \/>&nbsp; &nbsp; git add [\ud30c\uc77c\uc774\ub984]<br \/><br \/>&nbsp; &nbsp; \ud604\uc7ac \ub514\ub809\ud1a0\ub9ac\uc5d0 \uc788\ub294 \ubaa8\ub4e0 \ud30c\uc77c\uc744 add<br \/>&nbsp; &nbsp; git add .<br \/><br \/><br \/><br \/>&nbsp; \u25cegit commit<br \/>&nbsp; &nbsp; \ucee4\ubc0b \uba54\uc2dc\uc9c0\uc640 \ud568\uaed8 \ub4f1\ub85d<br \/>&nbsp; &nbsp; git commit -m \"\ucee4\ubc0b\uba54\uc2dc\uc9c0\"<br \/><br \/>&nbsp; &nbsp; add\uc640 commit\uc744 \ub3d9\uc2dc\uc5d0<br \/>&nbsp; &nbsp; : \ucc98\uc74c \uc0dd\uc131\ud55c \ud30c\uc77c\uc740 \ucd94\uc801\ub418\uc9c0 \uc54a\ub294 \uc0c1\ud0dc\uc774\uae30 \ub54c\ubb38\uc5d0, \ucd5c\ucd08 \ud55c \ubc88\uc740 add \ud574\uc57c \ud55c\ub2e4.<br \/>&nbsp; &nbsp; git commit -am \"\ucee4\ubc0b\uba54\uc2dc\uc9c0\"<br \/><br \/>&nbsp; &nbsp; \uc5d0\ub514\ud130\ub85c \ucee4\ubc0b \uba54\uc2dc\uc9c0 \uc791\uc131<br \/>&nbsp; &nbsp; : \uc5ec\ub7ec \uc904\uc758 \ucee4\ubc0b \uba54\uc2dc\uc9c0\ub97c \ud3b8\ud558\uac8c \uc791\uc131 \uac00\ub2a5\ud558\ub2e4.<br \/>&nbsp; &nbsp; git commit<br \/><br \/>&nbsp; &nbsp; \ubc14\ub85c \uc9c1\uc804 \ucee4\ubc0b \uba54\uc2dc\uc9c0 \uc218\uc815<br \/>&nbsp; &nbsp; 1) git commit --amend<br \/>&nbsp; &nbsp; 2) \uc5d0\ub514\ud130\ub85c \uc218\uc815 \ud6c4 \uc800\uc7a5<br \/>&nbsp; &nbsp; 3) git push -f (-f \uc635\uc158\uc744 \ub123\uc5b4\uc918\uc57c \uac15\uc81c\ub85c \ub36e\uc5b4 \uc50c\uc6cc\uc9c4\ub2e4. \ub300\uc2e0 \uc6d0\uaca9\uc800\uc7a5\uc18c\ub97c \ub0b4 \ub85c\uceec\uc800\uc7a5\uc18c\uc640 \ub611\uac19\uc774 \ub9cc\ub4dc\ub2c8\uae4c \uc870\uc2ec\ud574\uc57c\ud55c\ub2e4. \uadf8\ub0e5 \ucee4\ubc0b\ud560 \ub54c \uc870\uc2ec\ud558\uc790)<br \/><br \/><br \/><br \/>&nbsp; \u25cegit log<br \/>&nbsp; &nbsp; \ubc84\uc804 History \ubcf4\uae30 (commit history \ud655\uc778)<br \/>&nbsp; &nbsp; git log<br \/><br \/>&nbsp; &nbsp; \ud1b5\uacc4 \ud655\uc778 (\uba87 \uc904\uc774 \ucd94\uac00 \ub418\uc5c8\uace0, \uba87 \uc904\uc774 \uc0ad\uc81c\ub418\uc5c8\uace0)<br \/>&nbsp; &nbsp; git log --stat<br \/><br \/>&nbsp; &nbsp; \ucee4\ubc0b \uba54\uc2dc\uc9c0, \uc218\uc815\ub41c \ubd80\ubd84 \ud568\uaed8 \ubcf4\uae30<br \/>&nbsp; &nbsp; git log -p<br \/><br \/>&nbsp; &nbsp; \ubaa8\ub4e0 \ube0c\ub79c\uce58 history \ubcf4\uae30<br \/>&nbsp; &nbsp; git log -all<br \/><br \/>&nbsp; &nbsp; \uc2dc\uac01\uc801\uc73c\ub85c \ud655\uc778<br \/>&nbsp; &nbsp; git log --graph<br \/><br \/>&nbsp; &nbsp; \ud55c \uc904\ub85c \ud45c\uc2dc<br \/>&nbsp; &nbsp; git log --oneline<br \/><br \/>&nbsp; &nbsp; \ud3ec\ub9f7\ud305<br \/>&nbsp; &nbsp; git log --pretty=format:\"%h -&gt; %an, %ar : %s\"<br \/>&nbsp; &nbsp; %h: commit id (hash)<br \/>&nbsp; &nbsp; %an: author<br \/>&nbsp; &nbsp; %ar: \uc5b8\uc81c \ud588\ub294\uc9c0<br \/>&nbsp; &nbsp; %s: \uba54\uc2dc\uc9c0<br \/><br \/><br \/><br \/>&nbsp; \u25cegit reset<br \/>&nbsp; &nbsp; \ubc84\uc804 \ub418\ub3cc\ub9ac\uae30 (\uac70\uc758 \uc0ad\uc81c\uc640 \ube44\uc2b7)<br \/>&nbsp; &nbsp; : \ud611\uc5c5 \uc0c1\ud0dc\uc5d0\uc11c \uc774\ubbf8 \uacf5\uc720\ub41c \ubc84\uc804\uc744 reset \ud558\uba74 \uc548 \ub41c\ub2e4.<br \/>&nbsp; &nbsp; git reset<br \/><br \/>&nbsp; &nbsp; staging area\uc5d0 \uc788\ub294 \ud30c\uc77c \ub0b4\ub9ac\uae30<br \/>&nbsp; &nbsp; git reset \ud30c\uc77c\uba85<br \/><br \/>&nbsp; &nbsp; \uc774\uc804 \ucee4\ubc0b \uc0c1\ud0dc\ub85c \ub3cc\uc544\uac00\uae30<br \/>&nbsp; &nbsp; git reset --hard [commit id]<br \/>&nbsp; &nbsp; : --hard =&gt; \uadf8 \uc774\ud6c4 \ucee4\ubc0b\uc740 \ubaa8\ub450 \uc5c6\ub358\uac70\ub85c \uccd0\ubc84\ub9ac\uaca0\ub2e4. (\ucee4\ubc0b \ub0b4\uc5ed \uc0ad\uc81c\ub428.)<br \/>&nbsp; &nbsp; : --soft =&gt; \ud574\ub2f9 \ucee4\ubc0b\uc73c\ub85c \ub418\ub3cc\uc544\uac00\uc9c0\ub9cc, \uadf8 \uc774\ud6c4 \ucee4\ubc0b\uacfc \uad00\ub828\ub41c \ud30c\uc77c\ub4e4 (\uc218\uc815\ub418\uac70\ub098 \uc0ad\uc81c\ub418\uac70\ub098 \ucd94\uac00\ub418\uac70\ub098..)\uc740 \ubcf4\uc874\ud55c\ub2e4.<br \/>&nbsp; &nbsp; : \uc774\ubbf8 push\ud55c \ub0b4\uc5ed\uc5d0 \ub300\ud574\uc11c reset \ud55c\ub2e4\uba74, reset \ud6c4 push\uac00 \uc548\ub41c\ub2e4. (\uc0c1\ud0dc\uac00 \uc644\uc804 \ub2ec\ub77c\uc838\ubc84\ub824\uc11c) =&gt; git push -f\ud558\uba74 \uc6d0\uaca9\uc800\uc7a5\uc18c\uc5d0\ub3c4 \ubc18\uc601\ub41c\ub2e4.<br \/><br \/><br \/><br \/>&nbsp; \u25cegit revert<br \/>&nbsp; &nbsp; \ub418\ub3cc\ub9ac\uae30\ub97c \ud3ec\ud568\ud558\uba74\uc11c \ub418\ub3cc\ub9b0 \ub0b4\uc6a9\uc744 \ubcf4\uc874\ud558\ub294 \uc138\ub828\ub41c \uce5c\uad6c<br \/>&nbsp; &nbsp; : \uc5ed\uc21c\uc73c\ub85c revert \ud574\uc57c \ud55c\ub2e4.<br \/>&nbsp; &nbsp; git revert [revert \ub420 commit id]<br \/><br \/><br \/><br \/>&nbsp; \u25cegit branch<br \/>&nbsp; &nbsp; : \uae30\ubcf8\uc801\uc73c\ub85c Git \uc800\uc7a5\uc18c\ub97c \ub9cc\ub4e4\uba74 \uc790\ub3d9\uc73c\ub85c \ub9c8\uc2a4\ud130(master) \ube0c\ub79c\uce58\uac00 \uc0dd\uc131\ub41c\ub2e4. \uc774 \ube0c\ub79c\uce58\ub294 \uc77c\ubc18\uc801\uc73c\ub85c \ubc30\ud3ec\uac00 \uac00\ub2a5\ud55c \uc218\uc900\uc758 \uc548\uc815\ud654\ub41c \ubc84\uc804\uc744 \ud3ec\ud568\ud558\uace0 \uc788\ub2e4.<br \/><br \/>&nbsp; &nbsp; master branch---develop branch<br \/>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;\\---bug fix branch<br \/>&nbsp; &nbsp; \ube0c\ub79c\uce58 \ubaa9\ub85d \ubcf4\uae30<br \/>&nbsp; &nbsp; : \ud604\uc7ac \ube0c\ub79c\uce58\ub294 * \ub85c \ud45c\uc2dc<br \/>&nbsp; &nbsp; git branch<br \/><br \/>&nbsp; &nbsp; \ube0c\ub79c\uce58 \uc0dd\uc131<br \/>&nbsp; &nbsp; : \ud604\uc7ac \ube0c\ub79c\uce58\ub97c \uae30\uc900\uc73c\ub85c \ubcf5\uc0ac\ud574\uc11c \ub9cc\ub4e0\ub2e4.<br \/>&nbsp; &nbsp; git branch [\ube0c\ub79c\uce58\uc774\ub984]<br \/><br \/>&nbsp; &nbsp; \ube0c\ub79c\uce58 \uc81c\uac70<br \/>&nbsp; &nbsp; : \ubcd1\ud569\uc774 \ub05d\ub09c \ube0c\ub79c\uce58\ub294 \uc81c\uac70\ud574\uc8fc\uc790.<br \/>&nbsp; &nbsp; git branch -d [branch]<br \/><br \/><br \/><br \/>&nbsp; \u25cegit checkout<br \/>&nbsp; &nbsp; \ube0c\ub79c\uce58 \uc774\ub3d9<br \/>&nbsp; &nbsp; git checkout [\ube0c\ub79c\uce58\uc774\ub984]<br \/><br \/>&nbsp; &nbsp; \uc6d0\uaca9 \uc800\uc7a5\uc18c\uc758 \ube0c\ub79c\uce58\ub97c \uac00\uc838\uc624\uba74\uc11c \uadf8 \ube0c\ub79c\uce58\ub85c \uc774\ub3d9<br \/>&nbsp; &nbsp; git checkout -b [\uc0dd\uc131\ud560 \ube0c\ub79c\uce58] [\uac00\uc838\uc62c \uc6d0\uaca9\ube0c\ub79c\uce58]<br \/><br \/>&nbsp; &nbsp; not staged \ud658\uacbd\uc5d0\uc11c, \uc218\uc815\ub41c \ub0b4\uc6a9 \ub418\ub3cc\ub9ac\uae30<br \/>&nbsp; &nbsp; git checkout -- [file]<br \/><br \/><br \/><br \/>&nbsp; \u25cegit merge<br \/>&nbsp; &nbsp; \ube0c\ub79c\uce58 \ubcd1\ud569<br \/>&nbsp; &nbsp; ex) o2 \ube0c\ub79c\uce58\ub97c master \ube0c\ub79c\uce58\ub85c \ud569\uce58\uaca0\ub2e4.<br \/>&nbsp; &nbsp; master \ube0c\ub79c\uce58\ub85c \uc774\ub3d9<br \/>&nbsp; &nbsp; git checkout master<br \/><br \/>&nbsp; &nbsp; \ud604\uc7ac \ube0c\ub79c\uce58(master)\ub85c \ubcd1\ud569\ud558\uace0 \uc2f6\uc740 \ube0c\ub79c\uce58\ub97c \ub561\uaca8\uc628\ub2e4.<br \/>&nbsp; &nbsp; git merge o2<br \/><br \/>&nbsp; &nbsp; \ubcd1\ud569\ub41c \uc0c8\ub85c\uc6b4 \ubc84\uc804\uc758 \ucee4\ubc0b \uba54\uc2dc\uc9c0 \uc785\ub825<br \/><br \/>&nbsp; &nbsp; \ubcd1\ud569 \uc644\ub8cc<br \/><br \/><br \/>&nbsp; &nbsp; \ucda9\ub3cc \ud574\uacb0 \ud6c4 \ubcd1\ud569<br \/>&nbsp; &nbsp; \/\/ &nbsp;\ucda9\ub3cc \ud30c\uc77c \uc608\uc2dc<br \/>&nbsp; &nbsp; #Title<br \/>&nbsp; &nbsp; content<br \/>&nbsp; &nbsp; &lt;&lt;&lt;&lt;&lt;&lt;&lt; HEAD<br \/>&nbsp; &nbsp; master<br \/>&nbsp; &nbsp; ======= (\uad6c\ubd84\uc790)<br \/>&nbsp; &nbsp; o2<br \/>&nbsp; &nbsp; &gt;&gt;&gt;&gt;&gt;&gt;&gt; o2<br \/>&nbsp; &nbsp; \ucda9\ub3cc \ud574\uacb0 \ubc29\ubc95<br \/>&nbsp; &nbsp; \ucda9\ub3cc \ud574\uacb0\ud558\uace0 \ud30c\uc77c \uc800\uc7a5 &gt; git add [\ucda9\ub3cc\ud30c\uc77c] &gt; git commit &gt; \ucda9\ub3cc \ud574\uacb0 \uc644\ub8cc<br \/><br \/>&nbsp; &nbsp; \uc678\ubd80 \ub3c4\uad6c\ub97c \uc774\uc6a9\ud55c \ubcd1\ud569<br \/>&nbsp; &nbsp; : \uae30\uc874\uc5d0 \uc14b\ud305 \ud574\ub450\uc5b4\uc57c \ud55c\ub2e4.<br \/>&nbsp; &nbsp; : ex) p4Merge<br \/>&nbsp; &nbsp; git mergetool<br \/><br \/><br \/>&nbsp; &nbsp; \ucee4\ubc0b \uba54\uc2dc\uc9c0\ub97c \ub0a8\uae30\ub294 merge<br \/>&nbsp; &nbsp; git merge --no-ff &lt;\uba38\uc9c0\ud560 \ube0c\ub79c\uce58&gt;<br \/><br \/><br \/><br \/>&nbsp; \u25cegit remote<br \/>&nbsp; &nbsp; \uc6d0\uaca9 \uc800\uc7a5\uc18c \ubaa9\ub85d<br \/>&nbsp; &nbsp; git remote<br \/><br \/>&nbsp; &nbsp; \uc6d0\uaca9 \uc800\uc7a5\uc18c \ubaa9\ub85d + \uc6d0\uaca9 \uc800\uc7a5\uc18c \uc8fc\uc18c<br \/>&nbsp; &nbsp; git remote -v<br \/><br \/>&nbsp; &nbsp; \uc6d0\uaca9 \uc800\uc7a5\uc18c \uc0c1\uc138\ubcf4\uae30<br \/>&nbsp; &nbsp; git remote show [\uc6d0\uaca9\uc800\uc7a5\uc18c\uc774\ub984]<br \/><br \/>&nbsp; &nbsp; \uc6d0\uaca9 \uc800\uc7a5\uc18c \ucd94\uac00<br \/>&nbsp; &nbsp; : \ud558\ub098\uc758 \ub85c\uceec \uc800\uc7a5\uc18c\ub97c \uc5ec\ub7ec \uac1c\uc758 \uc6d0\uaca9 \uc800\uc7a5\uc18c\uc640 \uc5f0\uacb0 \ud560 \uc218 \uc788\uae30 \ub54c\ubb38\uc5d0 \uc6d0\uaca9 \uc800\uc7a5\uc18c\uc5d0 \ubcc4\uba85\uc744 \ubd99\uc5ec\uc900\ub2e4. (\uc8fc\ub85c \ud558\ub098\uc758 \ub85c\uceec \uc800\uc7a5\uc18c\uc5d0 \ud558\ub098\uc758 \uc6d0\uaca9 \uc800\uc7a5\uc18c\ub97c \uc5f0\uacb0 \ud558\uae30 \ub54c\ubb38\uc5d0 origin\uc744 \ubcc4\uba85\uc73c\ub85c \ub9ce\uc774 \uc4f4\ub2e4.)<br \/>&nbsp; &nbsp; git remote add [\uc6d0\uaca9 \uc800\uc7a5\uc18c \ubcc4\uba85] [\uc6d0\uaca9 \uc800\uc7a5\uc18c \uc8fc\uc18c]<br \/><br \/>&nbsp; &nbsp; \uc6d0\uaca9 \uc800\uc7a5\uc18c \uc774\ub984 \ubc14\uafb8\uae30<br \/>&nbsp; &nbsp; git remote rename [\ud604\uc7ac\uc774\ub984] [\ubc14\uafc0\uc774\ub984]<br \/><br \/>&nbsp; &nbsp; \uc6d0\uaca9 \uc800\uc7a5\uc18c \uc0ad\uc81c<br \/>&nbsp; &nbsp; git remote rm [\uc6d0\uaca9\uc800\uc7a5\uc18c\uc774\ub984]<br \/><br \/><br \/><br \/>&nbsp; \u25cegit push<br \/>&nbsp; &nbsp; origin \uc800\uc7a5\uc18c\uc758 master \ube0c\ub79c\uce58\ub85c push<br \/>&nbsp; &nbsp; git push -u origin master<br \/><br \/><br \/><br \/>&nbsp; \u25cegit pull<br \/>&nbsp; &nbsp; origin \uc800\uc7a5\uc18c\uc758 master \ube0c\ub79c\uce58 \ub0b4\uc6a9 \uac00\uc838\uc624\uae30<br \/>&nbsp; &nbsp; git pull origin master<br \/><br \/><br \/><br \/>&nbsp; \u25cegit clone<br \/>&nbsp; &nbsp; \uc6d0\uaca9 \uc800\uc7a5\uc18c \ub0b4\uc6a9\uc744 \ub85c\uceec \uc800\uc7a5\uc18c\ub85c \ubcf5\uc81c\ud558\uae30<br \/>&nbsp; &nbsp; : \ud604\uc7ac \uc704\uce58\ub85c \uac00\uc838\uc628\ub2e4.<br \/>&nbsp; &nbsp; git clone [\uc6d0\uaca9 \uc800\uc7a5\uc18c]<br \/><br \/><br \/><br \/>&nbsp; \u25cegit stash<br \/>&nbsp; &nbsp; \ud558\ub358 \uc791\uc5c5 \uc784\uc2dc\ub85c \uc800\uc7a5\ud558\uae30<br \/>&nbsp; &nbsp; git stash<br \/><br \/>&nbsp; &nbsp; stash \ubaa9\ub85d \ud655\uc778\ud558\uae30<br \/>&nbsp; &nbsp; git stash list<br \/><br \/>&nbsp; &nbsp; \uc784\uc2dc \uc800\uc7a5 \ud588\ub358 \uac83 \ub2e4\uc2dc \uc801\uc6a9\ud558\uae30<br \/>&nbsp; &nbsp; git stash apply<br \/><br \/>&nbsp; &nbsp; stash \uc81c\uac70\ud558\uae30<br \/>&nbsp; &nbsp; : \uc801\uc6a9\ud588\uc9c0\ub9cc \ubaa9\ub85d\uc5d0\ub294 \ub0a8\uc544\uc788\uc74c. \ub530\ub77c\uc11c \uc81c\uac70 \ud574\uc8fc\uc5b4\uc57c \ud568.<br \/>&nbsp; &nbsp; git stash drop<br \/><br \/><br \/><br \/>&nbsp; \u25cegit archive<br \/>&nbsp; &nbsp; : git \ub808\ud30c\uc9c0\ud1a0\ub9ac\uc5d0 \uc788\ub294 \uc18c\uc2a4\ucf54\ub4dc\ub9cc \uc555\ucd95<br \/>&nbsp; &nbsp; git archive --format=zip master -o Master.zip<br \/>&nbsp; &nbsp; =&gt; \ub9c8\uc2a4\ud130 \ube0c\ub79c\uce58\ub97c zip \ud615\uc2dd\uc73c\ub85c Master.zip\uc73c\ub85c \ucd94\ucd9c<br \/>&nbsp; &nbsp; =&gt; .git \ud3f4\ub354\ub294 \ucd94\ucd9c\ub418\uc9c0 \uc54a\uc74c.<br \/>&nbsp; &nbsp; =&gt; Master.zip \uc790\ub9ac\uc5d0 \uc0c1\ub300\uacbd\ub85c \uac00\ub2a5 (..\/Master.zip \uc774\ub77c\uace0 \ub123\uc73c\uba74 \uc0c1\uc704 \ub514\ub809\ud1a0\ub9ac\uc5d0 \ucd94\ucd9c\ub428)<br \/><br \/><span style=\"font-size: 24px;\">\u25a0ID\/PW \uc778\uc99d<\/span><br \/>&nbsp; git clone https:\/\/[\uc0ac\uc6a9\uc790ID]:[\ube44\ubc00\ubc88\ud638]@[git\uc8fc\uc18c]<br \/>&nbsp; git clone https:\/\/username:password@github.com\/username\/repository.git<br \/><br \/><span style=\"font-size: 24px;\">\u25a0\uc778\uc99d\uae30\uad00 \uc778\uc99d\uc11c(CA Certificate) \uc815\ubcf4 \ud655\uc778<\/span><br \/>&nbsp; git config --global http.sslCAInfo<br \/><br \/><span style=\"font-size: 24px;\">\u25a0\uc778\uc99d\uae30\uad00 \uc778\uc99d\uc11c(CA Certificate) \uc704\uce58 \uc9c0\uc815<\/span><br \/>&nbsp; git config --global http.sslCAInfo d:\/devel\/my-ca-bundle.crt<br \/><br \/><span style=\"font-size: 24px;\">\u25c6\uc774\uc288:<\/span><br \/>&nbsp; &gt; git clone https:\/\/github.com\/theswice\/theswice_temp.git<br \/>&nbsp; Cloning into 'theswice_temp.git'...<br \/>&nbsp; fatal: unable to access 'https:\/\/github.com\/theswice\/theswice_temp.git\/':<br \/>&nbsp; SSL certificate problem: unable to get local issuer certificate<br \/><br \/>--&gt;\ud574\uacb0 \ubc29\ubc95:<br \/>&nbsp; git config --global http.sslVerify false<br \/>&nbsp; \ub610\ub294<br \/>&nbsp; export GIT_SSL_NO_VERIFY=0<\/span>\n\n\n\n<hr class=\"wp-block-separator\"\/>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"powershell\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">@ECHO OFF\nREM #################################################################\nREM #\nREM # \uc2e0\uaddc \uc18c\uc2a4\ucf54\ub4dc\ub97c github\uc5d0 push\ud55c\ub2e4.\nREM #\nREM # github\uc5d0\uc11c repository\ub294 \ubbf8\ub9ac \uc0dd\uc131\ub418\uc5b4 \uc788\uc5b4\uc57c \ud55c\ub2e4.\nREM #\nREM #################################################################\n\nREM =======================================\nREM \u25a0 CODEPAGE\ub97c UTF-8\ub85c \ubcc0\uacbd\nREM =======================================\nCHCP 65001 1> NUL 2> NUL\n\nSET \"CURR_DIR=%CD%\"\n\nREM #################################################################\nREM #\nREM # \ud568\uc218 \ud638\ucd9c\nREM #\nREM #################################################################\nCALL :FUNC_GIT_NEWPUSH \"d:\\0_tmp\\src\\esecu_utm\" \"esecu_utm\" \"esecu_utm\" \"eSecuVali Corp.\"\n\nCD \/D %CURR_DIR%\nEXIT \/B %ERRORLEVEL%\n\nREM #################################################################\nREM #\nREM # git\uc744 \ucd08\uae30\ud654\ud558\uace0 \ud574\ub2f9 \ub514\ub809\ud1a0\ub9ac\ub97c \ubaa8\ub450 push \ud55c\ub2e4.\nREM #\nREM # %1: \uc18c\uc2a4 \ub514\ub809\ud1a0\ub9ac\nREM # %2: branch\nREM # %3: github remote repository\nREM # %4: comment\nREM #\nREM #################################################################\n:FUNC_GIT_NEWPUSH\n    CD \/D %1\n    RMDIR \/S \/Q .git\n    git init\n    git config --global core.autocrlf false\n    git config pull.rebase true\n    git config credential.helper store --global\n    git config --global http.sslVerify false\n    git config --global user.email \"gitest@github.com\"\n    git config --global user.name \"Hong Kil-Dong\"\n    git config --system http.sslcainfo \"C:\\PortableApps\\cmd_git\\mingw32\\ssl\\certs\\ca-bundle.crt\"\n    git config --global core.editor \"'C:\\PortableApps\\Notepad++Portable\\notepad++.exe' -multiInst -nosession\"\n    git remote add origin \"https:\/\/github.com\/kildong\/%3.git\"\n\n    git add *\n    git commit -m %4\n    git branch %2\n    git checkout %2\n\n    git pull origin %2\n    git push --force --set-upstream origin %2\n    REM git push --set-upstream origin %2\nEXIT \/B \/0<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>\ucd9c\ucc98: https:\/\/github.com\/jeonghwan-kim\/git-usage \uad6c\uc870\ucf54\ub4dc\ub294 \uc544\ub798 \uc138 \ub2e8\uacc4\uc5d0 \uac78\uccd0 \uc800\uc7a5\ub41c\ub2e4. \uc2a4\ud14c\uc774\uc9d5 -&gt; \ucee4\ubc0b -&gt; \uc6d0\uaca9\uc800\uc7a5\uc18c git add {\ud30c\uc77c\uba85} \uc73c\ub85c \ud30c\uc77c\uc744 \uc2a4\ud14c\uc774\uc9d5 \uc0c1\ud0dc\uc5d0 \ub123\ub294\ub2e4.git commit \uc73c\ub85c \uc2a4\ud14c\uc774\uc9d5 \uc0c1\ud0dc\uc5d0 \uc788\ub294 \ubaa8\ub4e0 \ubcc0\uacbd\uc0ac\ud56d\uc744 \ucee4\ubc0b\ud55c\ub2e4. \uc5ec\uae30\uae4c\uc9c0\uac00 \ub85c\uceec\uc5d0\uc11c\uc758 \uc791\uc5c5git push \ub85c \ucee4\ubc0b\ub41c \uc800\uc7a5\uc18c\ub97c \uc6d0\uaca9 \uc800\uc7a5\uc18c\ub85c \ubc00\uc5b4\ub123\ub294\ub2e4. \uae30\ubcf8 \uba85\ub839\uc5b4 \uc800\uc7a5\uc18c \uc0dd\uc131 git init\uc6d0\uaca9 \uc800\uc7a5\uc18c\ub85c\ubd80\ud130 \ubcf5\uc81c git clone {url}\ubcc0\uacbd \uc0ac\ud56d \uccb4\ud06c git status \/\/\ud2b9\uc815 [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_import_markdown_pro_load_document_selector":0,"_import_markdown_pro_submit_text_textarea":"","site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"categories":[17],"tags":[],"class_list":["post-3677","post","type-post","status-publish","format-standard","hentry","category-development_dev_tools"],"_links":{"self":[{"href":"https:\/\/hasu0707.duckdns.org\/blog\/index.php?rest_route=\/wp\/v2\/posts\/3677","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/hasu0707.duckdns.org\/blog\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/hasu0707.duckdns.org\/blog\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/hasu0707.duckdns.org\/blog\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/hasu0707.duckdns.org\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=3677"}],"version-history":[{"count":0,"href":"https:\/\/hasu0707.duckdns.org\/blog\/index.php?rest_route=\/wp\/v2\/posts\/3677\/revisions"}],"wp:attachment":[{"href":"https:\/\/hasu0707.duckdns.org\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=3677"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/hasu0707.duckdns.org\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=3677"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/hasu0707.duckdns.org\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=3677"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}