728x90
반응형
본 내용은 부스트캠프의 이고잉님의 Github 특강 내용을 토대로 작성되었습니다
Git 기본 명령어 정리
- git config --global alias.l "log --oneline --all --graph”
- git의 log를 보여주는 명령어를 단축어로 설정하자!
- 이렇게 설정하면 git l 만 입력해도 상세한 내용을 확인할 수 있음
- git status: 커밋하지 않은 수정된 파일이 있는지 확인
- 빨간색으로 출력 → 아직 stage에 올라가지 않은 파일
- 초록색으로 출력 → stage에 올라간 파일 (하지만 아직 커밋되지 않음)
- M: Modified — 파일이 수정되었음
- U: Untracked — 한번도 add된 적이 없음 (git이 관리한 적 없음)
- git add 파일명 : 파일을 stage에 올리기
- git commit -m “커밋 메세지” : stage에 올라온 파일들을 commit
- git commit -am “커밋 메세지" : modified 파일을 모두 stage에 자동으로 올린 뒤 commit (untracked 파일들은 auto adding이 불가능함)
- add: untracked → tracked
- -a: tracked만 adding해주는 옵션
- 중요한 정보가 담긴 파일(예: config file)은 함부로 commit하면 안된다! → git이 자동으로 무시하도록 처리해주는게 좋다!
- .gitignore : 무시하고자 하는 파일들의 이름들을 적어주는 파일
- ignore 파일에 적어줌으로써 파일이 status에 더 이상 나타나지 않도록 할 수 있음
- ignore 파일은 프로젝트 내 일종의 정책이기 때문에 commit해야함!
- 그렇다면 보안이 필요하지만 팀원끼리 꼭 공유해야하는 파일은 어떻게 할까? → template 파일을 생성하여 commit한다!
- config.txt
user@mail.com: dongyeon userpwd: 1234
- config.txt.template
user@mail.com: USER_ID userpwd: USER_PWD
- git revert : 선택한 버전을 취소한 새 버전을 만들어줌
- 하지만 conflice를 유발할 수도 있기 때문에, 조심해서 사용해야 함
- 가능한 마지막 버전만 취소할 때 사용하는 것 권장
- git reset --hard 커밋아이디: 커밋을 취소하고 특정 커밋 시점으로 head가 가리키는 main을 옮김
- reset의 옵션별 차이점: https://opentutorials.org/module/4032/24533
- checkout : HEAD를 바꾼다 — 과거로 시간여행
- reset: HEAD가 가리키는 Main Branch를 바꾼다 — 현재로 돌아오는 시간을 바꿈
- 이 떄, reset을 함으로써 특정 파일에 가리키는 branch가 하나도 없어지면 삭제된 것 처럼 보임 (실제로 삭제 X 깃은 모두 백업해두었음! 단, 아무도 바라보지 않는 파일은 로컬에만 있음)
git reset: if attached HEAD: HEAD의 branch가 이동 else: checkout 시간여행
- git reflog : 커밋, 체크아웃 등 모든 작업활동을 기록한 내용을 확인할 수 있음
- git commit --amend -m 새로운커밋명: 마지막 커밋의 이름을 바꾸는 명령어
- 이때, 원본을 수정하면 안되기 때문에 새로운 커밋 ID가 할당됨
- 이전 작업의 커밋 ID를 확인하고 싶으면 git reflog를 사용하여 아이디 확인
- git push : 로컬 저장소의 변경 내역을 원격 저장소에 반영하도록 업로드
- git pull: 원격 저장소의 업데이트 내역을 로컬 저장소로 다운로드 및 반영
- pull == fetch + merge
- fetch는 원격 저장소의 변경사항 및 업데이트 내역을 다운로드
- merge는 다운로드 받은 변경사항을 현재 branch에 병합
- pull은 fetch와 merge를 한 번에 수행하는 명령어임!
- pull의 기본 merged 전략이 not merge인 경우에는 git config pull.rebase false 설정을 해주면 됨
- git push --set-upstream origin branch명: 로컬 저장소의 branch를 원격 저장소에 업로드하기 위함
- pull request
- 작업이 완료된 sub branch를 main branch에 병합하기 위해 관리자에게 요청하기
- 관리자는 코드를 리뷰하고, request를 승인할 수 있음
- request가 승인되면 sub branch가 main branch에 합쳐짐
- 로컬 저장소에서는 main으로 checkout하고 pull로 원격 저장소 가져와서 병합하여 상태를 동기화
- 기능 개발을 요청한 issue에서 # 태그를 사용하여 pr 작업본을 연결할 수도 있음!
TIP of Git
- 작업은 가능한 pull을 받고 빠르게 작업 후에 바로 push 하기 ! ! !
- Conflict를 최소화하는 노하우를 만들자!
- 동료와 작업 파트 및 파일 나누기
복습 튜토리얼 순서
- 원격 저장소 만들기
- 저장소 복제 (로컬 저장소)
- README.md 파일 생성 및 커밋
- push
- README 파일에 ‘시간여행 작성
- HEAD를 옮겨서 ‘시간여행’ 작성 이전 시점으로 이동
- 다시 원래대로 돌아옴
- reset을 사용하여 커밋 취소
- git reflog를 사용하여 취소한 커밋 되돌리기
- 변경 내용을 commit 후 원격 저장소에 push
- 새로운 로컬 저장소 생성 (원격 저장소 복제)
- 두 개의 로컬 저장소에서 같은 파일 수정
- 한 개의 로컬 저장소에서 먼저 commit 및 push
- 다른 로컬 저장소에서 pull — conflict 발생! conflict 해결 후 push
- 먼저 commit한 로컬 저장소에서 pull로 다시 원격 저장소의 업데이트 내용 받아와 병합하기
728x90
반응형
'Dev > TOOLS 도구' 카테고리의 다른 글
[Git&GitHub] Git & GitHub 관련 개념 총정리 (1) | 2023.03.26 |
---|---|
[Git&GitHub] Git 마크다운 꿀팁 모음 | 마크다운 에디터 StackEdit | MarkDown 문법 | REAME 템플릿 (0) | 2022.03.17 |
[Git&GitHub] 원격저장소 생성 | 원격저장소에 커밋 올리기 | 원격저장소에서 로컬저장소에 커밋 내려받기 (0) | 2022.03.07 |
[Git&GitHub] Git 설치 | 로컬저장소 생성 | git 기본 명령어 (0) | 2022.03.07 |
[Git&GitHub] 버전 관리를 위한 시스템, Git & GitHub (0) | 2022.03.07 |