(http://pismute.github.io/whygitisbetter/images/local-remote.png)
<GIT 프로젝트 흐름도>
git add (파일명) // 특정 파일을 Staging area에 추가
git add . // 현재 및 하위 디렉토리 모든 파일을 Staging area 에 추가
git commit -m "(text)" // 의미 있는 수정 작업이 끝났음을 알리는 작업. local repository에 추가
git push origin master // remote repository에 추가
git push origin (name) // name 브랜치를 origin remote repository 로 푸시
이렇게 하면 로컬 저장소의 현재 브랜치의 변경 내용을 식별 가능한 이름의 새로운 브랜치로 원격 저장소로 푸시할 수 있다.
깃허브에서 name 브랜치에서 dev 브랜치로 pr을 날린다.
다른 팀원이 merge를 시켜주면 merge가 완료 된다.
다른 팀원이 올려놓은 최신 코드 가져오기
git pull origin dev
원격 dev 브랜치를 내 로컬에서 위치해있는 브랜치로 가져와서 병합한다.
2) 버전확인
git --version
3) 커밋 로그
git log // 이후에 git chekout 으로 시점을 변경하거나 reset 등으로 되돌릴 수 있다.
git reflog
git reset HEAD@{index} // index 시점으로 돌아간다.
3) 원격 저장소 확인/연결
GIT에서 remote는 외부 깃허브 저장소가 있는 url에 대한 alias(별칭)을 만들어 관리하기 위한 명령어이다. (origin이 alias의 기본 이름이다)
git remote // alias 목록을 가져온다.
git remote -v // alias 와 alias가 연결된 url도 같이 가져온다
git remote add [alias] [url] // 특정 url을 alias로 다루도록 할 수 있다.
git remote add origin [깃허브 저장소 url] // 과 같이 사용하면 된다.
4) 브랜치
브랜치를 통해 분리된 작업 영역을 나누고, 해당 영역에서 변경된 내용은 나중에 원래의 버전과 비교해서 새로운 버전으로 만들어 낼 수 있다. 저장소를 만들면 기본으로 master 브랜치가 생성된다.
git fetch // 정보 업데이트
git branch // 현재 내가 위치한 branch 확인
git branch -v // 브랜치의 마지막 커밋 메시지 확인
git branch (name) // 브랜치 생성
git switch (name) // 해당 브랜치로 이동
git switch -c (name) // 브랜치를 만들며 해당 브랜치로 이동
git restore // 작업중인 파일(변경 내역이 있는) 을 복원
git restore --staged // stage된 파일도 복구가 가능
git branch -d (name) // 브랜치 삭제 (D는 강제 삭제)
git checkout (name) // 현재 로컬 브랜치의 내용을 해당 로컬브랜치 로 이동
다음 브랜치를 merge 하는 방법
: merge 하기 전, 해당 브랜치로 스위치 후 git pull
다시 내 브랜치로 돌아와서 git mergre (name)
5) 상태 확인
git status
stage 영역에 없으면 빨간색 == add 안된 상태
stage 영역에 있으면 초록색 = add 된 상태
6) .gitignore
Repository에 넣기 싫은 파일이 있을 때 .gitignore 파일에 제외하고 싶은 폴더, 파일을 적으면 된다.
파일명.확장자 // 특정 파일 제외하기
/파일명.확장자 // 현재 경로에 있는 파일 제외
폴더/ // 특정 확장자 파일 모두 제외
*.확장자 // 특정 확장자 파일 모두 제외
!파일명.확장자 // 예외처리 하고 싶은 파일