20210113_GitHub 복습 및 명령어 정리
1. 리눅스 명령어
pwd
: 현재 위치 경로ls
: 현재 파일,디렉 확인ls -a
: 숨김 파일, 디렉 표시 (all)ls -l
: 상세정보 함께 표시 (list)ls -r
: 정렬 순서 거꾸로 표시 (reverse)ls -t
: 작성 시간순 정렬 (time)cd 파일이름
: 해당 디렉으로 이동
2. git 구조와 상태
- 작업트리(working directory) : 작업 공간
- 스테이지 (stage) : 버전으로 만들어질 파일 대기 공간
-
저장소(repotory) : 스테이지 , 저장소 영역이 .git 디렉임
- untracked files : 아직 한번도 버전관리 안한 파일
- unmodified : 한번 스테이징 되었던 파일
- nodified : 스테이징 경험이 있고 수정된 파일
- staged : 커밋 준비 단계엥 있는 파일 커밋하면 다시 unmodified 상태로 감
3. git 명령어
1) git 환경설정 명령어
git config user.name "이름"
: 환경설정git config user.email "이메일"
: 환경설정git init
: 현재 위치에 지역 저장소 생성
2) git 기본 명령어
git status
: git 상태 확인git add 파일 이름
: 스테이지에 올림git add .
: 작업한거 모두 스테이지에 올림
git commit -m"내용"
: 스테이지에 올라간 파일 버전 만들기git commit -am"내용"
: 스테이지 + 커밋 모두 한번에(근데 파일에 커밋 경험이 있어야 가능)git commit --amend
: 방금 들어간 커밋 수정(편집기 실행시|
눌러서 수정)
git log
: 지금까지 커밋, 버전 확인git log --start
: 커밋 관련 파일 까지 함께 보기git log --oneline
: 한줄 커밋으로 보기 편함git log --branches
: 각 브랜치 커밋도 함께 보기git log --graph
: 관계 그림으로 보기git log master..브렌치 이름
: 브렌치 비교 가능(다른 커밋만 볼수 있음)
git diff
: 변경 사항 확인하기git checkout -- 파일 이름
: 작업트리 변경 상태(stage엔 아직이고) 취소git checkout 특정 브랜치 이름
: 해당 브랜치로 이동git checkout -b 브렌치 이름
: 해당브렌치 생성후 이동
git reset HEAD 파일이름
: 스테이징 까지 한경우 스테이징 취소git reset HEAD^
: 커밋 까지 된경우 마지막 한줄 커밋 취소, 스테이지 까지 취소됨git reset --soft HEAD^
: 최근 커밋을 하기전 상태로 작업 트리 되돌리기git reset --mixed HEAD^
: 최근 커밋, 스테이징을 하기전 상태로 작업 트리 되돌리기git reset --hard HEAD^
: 최근 커밋, 스테이징 파일 수정 하기전 상태로 작업 트리 되돌리기(되돌리면 복구 불가)git reset --hard 커밋해시
: 특정 커밋 해시 상태로 감 (A 브렌치에서 B 브렌치 커밋해시를 사용하여 reset의 경우 A 브렌치 과거 커밋은 모두 삭제 되고 B브랜치 커밋 상태로 감 )
git revert 커밋 해시
git branch 브랜치 이름
: 해당 이름브랜치 생성git branch
: 현재 브렌치 확인git branch -d 브렌치 이름
: 해당 브랜치 삭제
git merge 특정 브랜치 이름
: 현재 브렌치에 특정 브랜치 병합git merge origin/master
: 페치한 뒤 원격 master 브랜치 커밋인 경우git merge origin/브렌치 이름
: 페치한 뒤 원격 다른 브랜치 커밋인 경우git merge FETCH_HEAD
: 지역저장소에 반영하지 않은 최신 커밋 병합
git stash
: 수정중이 파일 감추기, 되돌리기 (커밋 시키고 싶지 않을 때)git stash list
: 감춘 파일들 목록 확인(최근:0 ~ 나중일수록 숫자가 높음)-> 선입 후출 stack 형git stash pop
: stash 목록에서 가장 최근 항목 되돌리기-> 예전 수정된 상태로 되돌아감git stash apply
: 또 사용될수 있을지 모르는 경우, 목록에서 최근 항목을 되돌리지만 목록 내용은 안제거 됨git stash drop
: stash 목록 가장 최근 항목 제거
4. HEAD의 이해
HEAD : 현재 작업 트리가 어떤 버전을 기반으로 작업중인지 가리키는 포인터
HEAD
->master
->commit_1
(commit_1 작성 상황에서 sub 브랜치 생성시)sub branch
->commit_1
(master - commit_2 작성)HEAD
->master
->commit_2
(sub branch로 이동)HEAD
->sub branch
->commit_1
5. 깃허브 사이트 둘러보기
오픈 소스의 성지 깃허브 - explorer 메뉴 - explorer github
6. git 원격 저장소 관련 명령어
-
http://github.com/아이디/저장소명
: 인터넷 주소창으로 접근가능 git remote add origin 주소
: 원격 저장소 연결git remote -v
: 원격 저장소 연결 확인git push -u origin master
: -u 옵션 = 원격 저장소 첫 연결시 파일 올리기git push
: 한번 연결되고 파일이 올라갔던 저장소에 파일 올릴때git pull origin master
: 원격과 지역 저장소를 같이 만들 경우git pull
git cloen 주소 폴더이름
: 원격 저장소 복제 ,(폴더 없어도 상관X) , 원격과 지역 저장소 자동 연결- 1개의 원격저장소에서 2개의 기기로 작업하면 push와 pull 작업을 무조건 해주자
git fetch
: 저장소 커밋 정보만 가져와서 훑어보는 식 그리고 합치고 싶으면 pull이나 merge로 같게 만들면 됨(단, FETCH_HEAD라는 브랜치로 가져옴)
7. SSH(Secure Shell) 원격 접속
- 보안이 강화된 안전한 방법으로 정보 교환 방식
- 계정으로 인증하는게 아니라, 현재 사용하고 있는 기기를 인증
-
기기를 등록해 두면 언제든지 터미널에서 아이디 비밀번호를 쳐줄 필요가 없음 (다른 컴퓨터에 접속할 수 있는 비밀번호 생성)
ssh-keygen
: ssh키가 저장되는 경로가 확인(/.ssh)하고 엔터엔터 두번
: 비밀번호 생성 , id_rsa 파일 : 프라이빗 키, id_rsa.pub 파일 : 퍼블릭 키- 해당 경로의 파일 확인(없으면 cat명령 사용해서 파일 열기)하면 키 파일 만들어진거 확인 가능
- 깃허브 서버에 퍼블릭 키 전송
- 파일 열어서 ssh-rsa 부터 문자열 전체 복사
- 깃허브 사이트에 로그인하고 setting 메뉴 들어감
- SSH and gpg keys 누르고 New SSH key 누르기
- 알아볼수 있는 이름으로 넣고, key값 붙여넣기(빈칸 빈줄 없애서)
- add SSH key 버튼 눌러서 추가
- SSH 주소로 원격 저장소 연결하기
- 레포 만들고 SSH 버튼 눌러서 주소 복사
git init connect-ssh
cd connect-ssh
git remote add origin 복사한 주소
git remote -v
: 연결 확인
8. Question?
- CRLF 문자
- 병합 자동화 프로그램 : P4Merge