소프트웨어 구성관리(형상 관리) - 소프트웨어의 변경사항을 체계적으로 추적하고 통제하는 것
👉 결과
Pc의 git하고 원격의 github가 연동된다.
git config --list로 확인할 수 있음
git init : 사진사를 세팅하는 것(해당 디렉토리에서 .git 폴더를 생성)
git add : 사진 찍을 사람들을 세팅하는 것(파일들을 commit 할 수 있도록 세팅)
git commit -m(message) "commit name" : 사진을 찍는 행위(파일들을 최종적으로 commit!)
git log : 이때까지 내가 해당 디렉토리 내에서 commit 한 기록들을 열람 해줌
git status : git에서 commit 되지 않은 파일들 혹은 수정이 된 파일들의 상태를
알 수 있게 해주는 명령어
git reset --hard "commit code" : 해당 commit 한 내용으로 reset 시켜줌
cf)reset하고 변경된 commit 상태로 가고 싶을 시에는 github를 이용해야만 그 상태로 돌아갈 수 있음
git remote -v : remote(연동)되어 있는 주소 확인
git remote add origin "repository url.git" : repository와 pc 내 로컬 폴더를 연결
git와 github를 연겨해줌(github 홈페이지가 아니라 .git 파일로 연결해야함)
git remote remove origin : 연결 해제 하기
git push origin main : github repository 메인 branch에 현재 commit들을 넣는다.
git pull origin main : github를 통해서 commit 했을 때 그 내용을 클라이언트로 내려받는 명령어
git clone "repository url.git" : pull과 비슷하지만 클라이언트 상에 아무런 파일도 존재하지 않을 때 사용하는 것
github repository에서 모든 commit들을 내 로컬로 가져온다.
😀 해당 commit으로 reset 하는 방법
원치 않는 파일 ignore 시키기
".gitignore." 파일 생성 후
*.exe 를 입력하게 되면 모든 exe파일들을 git에 commit 되지 않고 github에 push 할 수 없음
gitignore.io 에서 해당 언어 파일들의 확장자들을 복사 할 수 있으므로 이용할 수 있음
branch 없이 협업하는 경우에는 push 명령이 겹쳐 문제가 발생 할 수 있음
a->c->d | a->c->q |
---|---|
마지막 push d | 마지막 push q |
d와 q가 겹치게 되므로 나중에 실행한 q를 무시하게 됨(동시에 만들어지지 않아서임)
-> 상대방이 업데이트를 해주었는지 git pull 명령을 통해 계속 알아내야 되는 문제 발생
같은 파일을 수정해서 collision 발생
서버 혹은 원격저장소에 둘 중 하나의 파일에 맞추어 내용이 맞도록 변경해줘야함
Branch의 이점으로 해결 가능 : branch의 merge 명령으로 다른 pc에서의 push 명령을 합칠 수 있음
git branch : 현재 생성되어 있는 브랜치의 목록을 봄
git branch newFeature : newFeature이라는 새로운 브랜치를 만듦
git checkout newFeature : newFeature이라는 브랜치로 이동
git branch -D newFeature : newFeature이라는 브랜치를 삭제
git push origin "branch name" : 특정 브랜치를 깃허브에 푸시
git pull origin "branch name" : 브랜치를 깃허브에서 가져와서 최신화
Github에서 pull request로 파일을 pull 해주고 merge 하면 main branch에서 최신화 할 수 있음
1.fork는 github 계정 사이간에 repository를 복사해오는 것
2.fork 명령 후 내 계정에서 git을 cloning 하거나 github에서 수정함
3.수정한 파일을 push & commit 한다.
4.해당 파일을 본 계정에 pull 하고 싶으면 pull request를 이용
본 계정에서는 pull request를 comment 하거나 merge하여 처리 가능함
깃린이 코스를 수강하고 난 뒤의 Github 사용법 정리