-
Notifications
You must be signed in to change notification settings - Fork 6
git
egoing edited this page Dec 11, 2019
·
43 revisions
이곳으로 오는 주소 ⇨ http://bit.ly/git-offline
- git : https://git-scm.com/
- vscode : https://code.visualstudio.com/ (코드 에디터 프로그램. 강사가 설치를 요청할 때 설치해주세요.)
- snipaste : https://www.snipaste.com/ (스크린캡처 프로그램. 선택사항)
- sourcetree : https://www.sourcetreeapp.com/ 설치할 때 Registration 항목에서 bitbucket server 말고 bitbucket을 선택해주세요. bitbucket에 회원가입을 해야 설치할 수 있습니다. 인터넷 익스플로어와 같이 오래된 브라우저에서는 설치가 안되는 경우가 있습니다.크롬을 이용해주세요. (깃 클라이언트. 강사가 설치를 요청할 때 설치해주세요.)
- kdiff3 : http://kdiff3.sourceforge.net/ (비교 프로그램. 강사가 설치를 요청할 때 설치해주세요.)
git config --global --add merge.tool kdiff3
git config --global --add mergetool.kdiff3.path "C:/Program Files/KDiff3/kdiff3.exe"
git config --global --add mergetool.kdiff3.trustExitCode false
git config --global --add diff.guitool kdiff3
git config --global --add difftool.kdiff3.path "C:/Program Files/KDiff3/kdiff3.exe"
git config --global --add difftool.kdiff3.trustExitCode false
한글이 깨지는 경우 : Configure > Regional Settings > File Encoding for A > "UTF-8 BOM" 으로 변경
- https://docs.google.com/spreadsheets/d/19YyV5CqNCZDzrkJI6H0FNhkR4AOwh-r0CcwSZBP1hhM/edit?usp=sharing
- git 온라인 강의 입구 : https://opentutorials.org/module/3733
- 지식지도 : https://seomal.org
- gerrit : https://www.youtube.com/watch?v=Jv3ggQw7Eio
git config --global core.editor "code --wait"
- 프로젝트 폴더를 만든다.
- 폴더를 저장소로 지정한다. (git init)
- 파일을 수정한다.
- 커밋에 포함시키고 싶은 파일을 스테이지로 등록한다. (git add)
- 커밋한다. (git commit)
- 시간 여행을 해본다 (HEAD를 옮긴다. => git checkout)
- 시간 여행을 끝낸다. (git checkout master)
- 버전을 취소한다. (master를 옮긴다. => git reset --hard )
- 버전을 복구한다. (작업 내역을 조회한다. => git reflog)
- 실험적인 작업을 시작하기 위해서 브랜치를 만든다(git branch exp)
- 실험적인 작업 브랜치에서 커밋한다. (git checkout exp)
- 마스터에서 작업을 한다. (git checkout master)
- 마스터로 실험을 병합한다. (git checkout master && git merge exp)
- 충돌 상황을 만들어 본다. (3 way merge의 개념을 활용한다)
- 원격 저장소를 만든다. (github.com, gitlab.com)
- 지역 저장소에 원격 저장소를 연결한다. (git remote add origin 원격 저장소의 주소)
- 지역 저장소의 비밀번호를 원격 저장소에 등록한다. (ssh-keygen, id_rsa.pub 파일을 github의 계정에 ssh 키로 등록한다)
- 지역 저장소의 브랜치와 원격 저장소의 브랜치를 연결한다. (git push -u origin master)
- 동료를 추가한다. (github의 setting의 collaborators에 동료의 계정을 추가한다)
- 충돌 상황을 만들어본다.
git init;
echo "1\n\n2\n\n3\n\n4" > rebase.txt;
git add rebase.txt;
git commit -m "init";
git branch exp;
echo "m1\n\n2\n\n3\n\n4" > rebase.txt;
git commit -am "m1";
echo "m1\n\nm2\n\n3\n\n4" > rebase.txt;
git commit -am "m2";
echo "m1\n\nm2\n\nm3\n\n4" > rebase.txt;
git commit -am "m3";
echo "m1\n\nm2\n\nm3\n\nm4" > rebase.txt;
git commit -am "m4";
git checkout exp;
echo "e1\n\n2\n\n3\n\n4" > rebase.txt;
git commit -am "e1";
echo "e1\n\ne2\n\n3\n\n4" > rebase.txt;
git commit -am "e2";
echo "e1\n\ne2\n\ne3\n\n4" > rebase.txt;
git commit -am "e3";
echo "e1\n\ne2\n\ne3\n\ne4" > rebase.txt;
git commit -am "e4";
git rebase master;
git checkout master;
git merge exp;
git init;
echo "1\n\n2\n\n3\n\n4" > revert.txt;
git add revert.txt;
git commit -m "init";
echo "m1\n\n2\n\n3\n\n4" > revert.txt;
git commit -am "m1";
echo "m1\n\nm2\n\n3\n\n4" > revert.txt;
git commit -am "m2";
echo "m1\n\nm2\n\nm3\n\n4" > revert.txt;
git commit -am "m3";
echo "m1\n\nm2\n\nm3\n\nm4" > revert.txt;
git commit -am "m4";
git revert HEAD@{2}
git init;
echo "" > revert.txt;
git add revert.txt;
git commit -m "init";
echo "1" > revert.txt;
git commit -am "1";
echo "2" > revert.txt;
git commit -am "2";
echo "3" > revert.txt;
git commit -am "3";
echo "4" > revert.txt;
git commit -am "4";
git revert HEAD@{2};
# 1 - 2 - 4