협업툴 Git 사용하는 방법
Git 관리 영역 이해하기
작업 영역(work decretory)
프로젝트에서 계속 변화하는 영역을 의미합니다.
다음 명령어로 작업 영역을 생성합니다.
git init
인덱스 영역(index)
프로젝트에서 작업이 동기화되는 영역입니다.
다음 명령어로 인덱스 영역을 생성합니다.
git add .
헤드 영역
작업 영역에서 내용을 변경하기 전에 원본을 보관하는 영역입니다. 영구보관 안되는 메모리에 남아있는 데이터를 하드디스크에 영구적 기록합니다.
version1 commit
헤드에 버전 보관 후에 index를 동기화 시켜준다. 변경된 version2를 만든다. 헤드를 옮기기만 하면 된다.동기
일에 순서가 있다. 사용자 경험(UX)이 좋지 않다.
ex) 라면 물을 끊이는 동안 멍때리고 기다림비동기
일의 순서가 섞여있다.
ex) 라면 물을 끊이는 동안 삼겹살을 굽는다동기화의 의미
프로그래밍에서의 동기화 : 일의 순서가 있다
데이터에서의 동기화 : 데이터의 일관성
git commit
Git 사용해보기
0.Git 초기 설정하기
git config –global user.email “choi.dahye424@gmail.com”
->git config –global user.name “choi”
1.터미널에서 작업 영역을 생성할 프로젝트 파일로 이동
cd /Users/dahyechoi/workspace/gitwork/blog
2.작업 영역을 생성한다. (‘.git’ 파일이 생성된다)
윈도우의 경우 : 폴더에서 마우스 오른쪽으로 바로가기 가능
git init
3.blog 폴더에 신규 파일을 생성(‘회원가입.txt’)
4.상태를 확인한다.
git status
빨간글자 : 변경된 부분을 알려준다
“\355\232\214\354\233\220\352\260\200\354\236\205.txt”
5.인덱스 영역에 넣어준다.
git add .
6.헤드 영역에 기록한다.
git commit -m “messege”
7.헤더에 기록된 로그를 확인한다.
git log
명령어 ‘clear’로 터미널을 깨끗하게 지울 수 있다.
8.작업 파일 삭제하기
git reset –hard 해쉬값
hash값의 앞 4자리 정도 적어서 엔터 치면 해쉬값이 자동 완성된다.
reset options
reset –hard : 작업영역까지 모두 날려주는 것
reset –soft : 헤더만 옮기는 것
reset –mixed : 이전박스로 바꿔주는 것
9.작업 파일 복구하기
내가 한번이라도 커밋한 로그가 다 나온다.
git reflog
브랜치(Branch) 사용하는 방법
협업의 효율성을 높여주기 위해서 메인 헤드가 아닌 메인 헤드의 데이터를 상속받는 브랜치를 생성하여 각자 작업을 할 수 있게 만드는 것.
1.브랜치를 생성한다.
git branch 브랜치명
2.브랜치 리스트에서 사용 중인 브랜치를 확인한다.
git branch
사용중인 브랜치에는 브랜치명 앞에 *가 붙는다.
3.작업할 브랜치로 변경한다.
git checkout 브랜치명
4.변경한 브랜치를 확인한다.
git branch
5.선택한 브랜치가 가지고 있는 리스트를 확인한다.
git log
상위 브런치(Master Brench)의 데이터를 상속받은 것을 확인할 수 있다.
6.새로운 작업을 하나 추가하고 확인한다.
git add .
git commit -m “message”
git log
7.상위 브랜치(Master Brench)로 변경해서 하위 브랜치와 병합한다.
git merge d1
브런치 변경 : git checkout master
전체 작업 보기
Last login: Wed Sep 1 10:52:35 on ttys000
dahyechoi@Dahyeui-MacBookPro ~ % cd /Users/dahyechoi/workspace/gitwork/note =>프로젝트 폴더 이동
dahyechoi@Dahyeui-MacBookPro note % git init =>작업영억 만들기
힌트: Using ‘master’ as the name for the initial branch. This default branch name
힌트: is subject to change. To configure the initial branch name to use in all
힌트: of your new repositories, which will suppress this warning, call:
힌트:
힌트: git config –global init.defaultBranch
힌트:
힌트: Names commonly chosen instead of ‘master’ are ‘main’, ‘trunk’ and
힌트: ‘development’. The just-created branch can be renamed via this command:
힌트:
힌트: git branch -m
/Users/dahyechoi/workspace/gitwork/note/.git/ 안의 빈 깃 저장소를 다시 초기화했습니다
dahyechoi@Dahyeui-MacBookPro note % git add .
dahyechoi@Dahyeui-MacBookPro note % git commit -m “1.글쓰기 완료”
[master (최상위-커밋) 6d673af] 1.글쓰기 완료
1 file changed, 6 insertions(+)
create mode 100644 “\352\270\200\354\223\260\352\270\260.txt”
dahyechoi@Dahyeui-MacBookPro note % git add .
dahyechoi@Dahyeui-MacBookPro note % git commit -m “1.글쓰기 완료”
[master (최상위-커밋) 6d673af] 1.글쓰기 완료
1 file changed, 6 insertions(+)
create mode 100644 “\352\270\200\354\223\260\352\270\260.txt”
dahyechoi@Dahyeui-MacBookPro note % git branch d1
dahyechoi@Dahyeui-MacBookPro note % git branch =>브랜치 목록에서 사용중인 브랜치 보기(*)
d1
* master
dahyechoi@Dahyeui-MacBookPro note % git checkout d1
‘d1’ 브랜치로 전환합니다
dahyechoi@Dahyeui-MacBookPro note % git branch
* d1
master
dahyechoi@Dahyeui-MacBookPro note % git log
commit 6d673af950c13f1afe19d16eac19c50d615215ad (HEAD -> d1, master)
Author: choi <choi.dahye424@gmail.com>
Date: Wed Sep 1 11:19:27 2021 +0900
1.글쓰기 완료
dahyechoi@Dahyeui-MacBookPro note % git add .
dahyechoi@Dahyeui-MacBookPro note % git commit -m “글목록보기완료”
[d1 0fa0097] 글목록보기완료
1 file changed, 6 insertions(+)
create mode 100644 “\352\270\200\353\252\251\353\241\235\353\263\264\352\270\260.txt”
dahyechoi@Dahyeui-MacBookPro note % git log =>새로 추가한 작업 목록 보기
commit 0fa0097847dd801fd66ce102545d716a477e6228 (HEAD -> d1)
Author: choi <choi.dahye424@gmail.com>
Date: Wed Sep 1 11:35:18 2021 +0900
글목록보기완료
commit 6d673af950c13f1afe19d16eac19c50d615215ad (master)
Author: choi <choi.dahye424@gmail.com>
Date: Wed Sep 1 11:19:27 2021 +0900
1.글쓰기 완료
dahyechoi@Dahyeui-MacBookPro note % git checkout master
‘master’ 브랜치로 전환합니다
dahyechoi@Dahyeui-MacBookPro note % git merge d1
업데이트 중 6d673af..0fa0097
Fast-forward
“\352\270\200\353\252\251\353\241\235\353\263\264\352\270\260.txt” | 6 ++++++
1 file changed, 6 insertions(+)
create mode 100644 “\352\270\200\353\252\251\353\241\235\353\263\264\352\270\260.txt”
dahyechoi@Dahyeui-MacBookPro note %