T아카데미 - Git & GitHub Page
Git이 필요한 이유
1. Git이 추적하는 파일은 총 3가지로 구분 됨
* Unmodified : 이전 버전과 비교하여 수정된 부분이 없는 상태
* Modified : 이전 버전과 비교하여 수정된 부분이 있는 상태
* Staged : 커밋을 위해 준비된 상태 ( 스테이징 )
2. 스테이징이 필요한 이유
* 여러작업 중 일부만 커밋해야 할 경우
* 커밋 전 상태를 수정 또는 체크할 때
3. 커밋 후 40자리의 hash 값을 만들어 키 값으로 사용
GitHub 실습 I - Init, Add, Commit, Push, Diff, Status, Log
- 모든 버전관리 기록은 .git 파일에 저장됨
- 추적을 무시하고 싶다면 .gitignore 파일에 저장
- README.md
1. 프로젝트 내용 (이미지 / 로고)
2. 설치 방법
3. 코드 예제
4. 개발 환경 설정 방법
5. 기여 방법
6. 로그 변경
7. 크레딧
8. 라이센스
9. 연락처
git init
- 초기화
- .git 폴더 생성
git add
- stage로 올림, 폴더나 전체도 가능함
- git add . 현재 폴더의 수정사항 모두 stage로 올림
git status, git diff
- 현재 어떤 파일을 수정 / 스테이징 했는지
- 어느파일이 얼마나 바뀐지
git commit -m "add README.md"
- 간단한 설명과 함께 commit
git log
- 이전 commit 기록 살펴보기
- --all 전체 로그 조회
- git log --all --decorate --graph --oneline
git remote add origin [url]
- 원격 저장소와 연결
- origin 이라는 이름으로 [url]과 연결
git push origin master
- 원격 저장소 master branch에 업데이트
git checkout 키값7자리
- 해당 키값의 버전으로 돌아감
GitHub 실습 II - Pull, Fetch, Reset, Revert, Stash, Fork, Push
git remote -v
- 원격 저장소 버전 체크
git clone [url]
- 원격 저장소에서 다운로드
git branch [name]
- master 는 최종 배포용이기 때문에 branch를 만들어 개발
- [name] branch 만들기
git checkout [name]
- [name] branch로 이동하기
git merge [name]
- [name] branch를 현재 branch로 합친다.
git rebase master
- base master로 re-base 한다.
git branch -d [name]
- 완료된 branch 삭제
git fetch
- 원격 저장소와 동기화
git pull
- 원격 저장소와 동기화하고 merge
git reset [option] [branch]
- branch 이후 기록을 없앰
- 비추
- 이미 원격저장소에 올라간 이후에는 사용할 수 없음
git revert [branch]
- 커밋을 지운 기록까지 남기기
git stash
- 현재 작업하고 있는 작업물을 따로 저장하기
- commit은 안함
원격 저장소 fork
- 사이트에서 가능
- 원 리파지토리의 수정권한은 없음