소스 코드의 일부(수정사항)를 github 저장소에 최신 변경사항으로 추가해주는 작업
문장 및 의미 단위로 잘라서 commit 해야 한다.
즉, 각 commit들은 '동작하는 단위'로 잘라서 사용한다.
commit -m
명령어 한 줄로 쉽게 commit 내용을 삽입할 수 있다.
But, vim 메모장에 직접 작성하는 것을 권장한다.
아래 하단에 추가 설명을 해두었어요..!
로컬 저장소(본인 컴퓨터)에서 원격 저장소(github)에 업데이트하는 작업
git clone 나의 github-repo 주소
mdkir first-repo ##작업할 디렉토리 파일 생성
cd first-repo ##작업할 디렉토리로 이동
vi README.md ##작업한 파일 편집
cat README.md ##편집한 파일 내용 확인
git status ##상태확인. (빨간색 표시로 뜨는 것은 변경사항이 존재하는 파일)
git add README.md ##변경사항들을 '앞접시'로 옮김
git commit ##vim 창에 prefix 잘 달기
git status ##commit 실행 확인 점검
git push origin main ##원격 저장소에 push 업데이트
git clone
할 때, 깃헙 권장 방식은 HTTPS 임으로 해당 방식으로 클론하기git status
로 git 상태를 수시로 확인해주기mkdir second-repo ##디렉토리 이름 == github repo 이름(권장)
git init ##'여기는 git 저장소로 설정할꺼야' ##사용자 최상단에서 하면 절대 안됨!
git status
git remote ## 현재 원격 저장소들의 이름 및 관리 명령어
git remote add mask 깃헙레포주소 ##이름 지울려면? git remote remove 이름(=mask)
##여기까지 클론과 동일##
git remote -v ##fetch->불러오는 방향, push->나가는 방향
touch README.md ##작업할 파일 생성
vi README.md
git add README.md
git commit
git branch -M main ##꼭 main branch로 바꾼 후에 push해야 함
git push -u mask main ##upstream set flag ##mask과 main은 같은 애들이니 push해도 된다는 뜻
~$ git init
사용자 최상단에서 init 하면 큰일남, 선언취소는 가능하지만 전부 날라갈 수도 있음
mask
는 별명(alias, 앨리어스), 어떤 단어든 상관 없음
master
가 branch인 상태에서 git push
하면 안됨
출력 결과는?
## 8: mask의 main과 로컬의 main이 셋팅 되었어
## 9: mask는 받는 사람(=remote)의 별명, 브렌치(=local)는 main!
구분 | git clone | git remote |
---|---|---|
개념 | • remote를 그대로 clone | • 저장소를 분리해서 작업을 관리 |
차이점 | • 관계 및 연결 설정 이미 완료 | • 이름만 같고, 관계 및 연결 설정 안되어 있음 • 로컬메인 → 깃헙메인으로 '사실 같은 상관관계를 가지고있다'고 알려줘야함(-u 사용) |
예 | • ‘대기업컴퓨터’ | • ‘조립식컴퓨터’ |
git clone 방식을 이용하면, 훨씬 작업 시간을 단축할 수 있다.
1. touch로 해당하는 디렉토리에 파일생성
2. 해당 디렉토리로 이동한 후 파일 생성됐는 지 ls로 잘 확인
3. vim 으로 해당 파일 편집
4. git add 해당 파일의 변경 부분 추가
5. git status 확인
6. git commit 및 확인
7. git push 및 확인
ommit -m
❗ 편리하지만, 수정이 불가능 ❗ vim 메모장을 이용하는 옳은 습관을 길들이자...
만약, 연관없는 파일끼리 commit을 한번에 하게되면?
뭐가 어디가 어떻게 바뀌었는 지 찾기 힘들어진다.
따라서 동작 단위로 구분하여 commit 하는 습관을 기르자
글자수는 50자 안쪽으로 / 간략한 설명(영어로) / 제목으로 한번에 설명할 수 있다면 BEST
제목을 잘 정하려면, 'prefix' 를 잘 달아보자
feat: features 기능 구현
docs: 문서작업
conf: 환경설정
test: 본 코드에 대한 테스트 코드
fix: bug-fix 멜펑션이 일어나는 코드를 수정하는 행위, 오타수정, 잘못한 것을 바로 잡는 행위
refactor: 잘 돌아가는 코드를 이넨스먼츠하는 행위, 기능 향상
ci: 기능 개발에 대한 테스트 코드 진행 중, 다른 코드 돌려줄때
build: 빌드 테스트, 퍼포먼스 테스트 의 부산물에 대한 커밋
.
을 붙이면 바로 숨김처리 가능하다.