Git command line | Github | github.com
Aug 18, 2021
Aug 22, 2022
Aug 22, 2022
Git
User 등록
git config --global user.name “joy-hhh”
git config --global user.email “joyhhh@outlook.kr”
default Branch 이름 main으로 바꾸기
git config --global init.defaultBranch main
branch 이름 바꾸기 (before를 after로)
git branch -m before after
Version Control
untracked -> unmodified -> modified -> staged (commit 하면 unmodified 상태로)
git init # 깃을 사용할 수 있도록 디렉터리를 초기화
git status # 깃 상태 확인
git add hello.txt # 특정 파일 스테이징
git add -A # 폴더 내의 모든 파일 스테이징
git commit -m “message1”
git log
git commit -am “message2” # 한 번 커밋한 파일이라면 -am을 붙여서 스테이징과 커밋 한번에
git diff # 수정한 파일을 저장소에 있는 파일과 비교
git log --stat # 커밋에 관련된 파일까지 함께 살펴보기
git commit --amend # 가장 최근의 커밋 메시지 수정 (vim에서 문구 수정하고 저장)
git checkout # 수정 내용을 취소 - stage 전 modified 상태에서
git checkout -- filename.txt # checkout으로 되돌린 내용은 다시 복구할 수 없음
git reset HEAD hello2.txt # 스테이지에서 hello2.txt 내리기 (파일명 지정 안하면 모두 내림)
git reset HEAD^ # 최신 커밋 되돌리기. HEAD^는 현재 HEAD가 가리키는 브랜치의 최신 커밋 , 스테이징도 함께 취소됨
git reset --soft HEAD^ # 최근 커밋을 하기 전 상태로 작업 트리를 되돌리기
git reset --mixed HEAD^ # 최근 커밋과 스테이징을 하기 전 상태로 작업 트리를 되돌리기(옵션 없이 reset 하면 기본값 defalut)
git reset --hard HEAD^ # 최근 커밋과 스테이징, 파일 수정을 하기 전 상태로 작업 트리를 되돌리기. 이 옵션으로 되돌린 내용은 복구 불가
git reset --hard [복사한 되돌리고자 하는 커밋 해시] # 해시 입력으로 되돌리기
git revert [복사한 취소하려고 하는 커밋 해시] # 커밋 삭제하지 않고 되돌리기
backup
git remote # 연결된 원격 저장소 확인
git remote add origin [저장소 복사한 주소 붙여넣기] # 원격 저장소 연결
git remote -v # 연결 되었는지 확인하기
git push -u origin main # -u 옵션은 지역 저장소의 브랜치를 원격 저장소의 main 브랜치에 연결하기 위한 것으로 처음에 한번만 사용
git push # 이미 origin 의 main branch를 연결하였기 때문에 다시 푸쉬 할 때는 git push만 입력하면 된다.
git push origin --delete master # delete master repository
git pull origin main
git pull origin main --allow-unrelated-histories # git에서는 서로 관련 기록이 없는 이질적인 두 프로젝트를 병합할 때 기본적으로 거부하는데, 이것을 허용
fetch : 원격 저장소의 최신 이력 확인 (pull = fetch + merge)
branch
git branch # 브랜치를 만들거나 확인
git branch apple # apple 브랜치를 만들기
git log --oneline # 한 줄에 한 커밋씩 나타내어 커밋을 간략하게 확인
git checkout apple # 다른 브랜치로 이동 - apple 브랜치로 체크아웃
git add . # 마침표(.)을 추가하면 현재 저장소에서 수정된 파일을 한꺼번에 스테이지
git log --oneline --branches # 브랜치와 커밋 관계
git log --oneline --branches --graph # 브랜치와 커밋의 관계를 그래프 형태로 표시
git log --graph --all --decorate # 브랜치 사이의 차이점 확인
git log master..apple # 브랜치 이름 사이에 마침표 두 개를 넣어 차이점 확인 비교
git log apple..master # apple 브랜치에는 없고 master 브랜치에만 있는 커밋
git merge [브랜치명] # 병합
git branch -d [병합 끝난 브랜치명] # 병합 끝난 브랜치 삭제하기
git branch -D [병합 안한 브랜치명] # 병합 안한 브랜치 삭제하기
rebase # branch 한 줄로 정리
stash
git stash # 수정중인 파일 감추기
git stash # 수정중인 파일 되돌리기
git stash list # 감춘 목록 확인 - stash stack
git stash apply # stash 목록에 저장된 수정 내용을 나중에 또 사용할 지 모를 경우 저장
git stash drop # 가장 최근 stash 삭제
SSH(Secure Shell) 원격 접속하기
ssh 키 생성
ssh-keygen
엔터
두번 더 Enter를 누르면 화면에 SSH를 통해서 다른 컴퓨터에 접속할 수 있는 비밀번호 생성.
- id_rsa : 프라이빗 키 경로
- id_rsa.pub : 퍼블릭 키 경로
깃허브에 퍼블릭 키 전송하기
cd ~/.ssh
ls -la
.ssh 디렉터리 안에 프라이빗 키 id_rsa 파일과 id_rsa.pub 파일이 만들어진 것 확인.
cat id_rsa.pub
퍼블릭 키에 담긴 내용을 복사.
웹브라우저 깃허브에서 오른쪽 위 사용자 아이콘을 누른 후 Settings를 선택.
SSH and GPG keys 를 누른 후 퍼블릭 키를 추가하기 위해 화면 오른쪽에 나타난 New SSH key를 누른다.
- SSH 중 퍼블릭 키는 여러 개를 등록할 수 있기 때문에 Title 항목에 현재 등록하는 SSH 퍼블릭 키를 알아볼수 있도록 제목을 붙인다.
- Key 항목에 복사한 퍼블릭 키 값을 붙여 넣는다.
- Add SSH Key 버튼을 눌러서 SSH 키 값을 추가한다.
SSH 주소로 원격 저장소 연결하기
깃허브 사이트에서 New repository를 Create 하고 나서 HTTPS 주소에 [SSH]를 눌러서 SSH 주소를 표시한다. 그리고 복사 버튼을 눌러서 복사한다.
init 한 저장소를 remote 할 때 git remote origin 복사한 주소 붙여넣기 에서 SSH 복사한 주소를 붙여 넣는다.
- 원격 저장소를 사용하는 동안 로그인 정보를 요구하지 않아서 편하다.
협업
git clone [복사한 주소 붙여넣기] [folder_name] # 원격 저장소 복제하기
git remote -v # 원격 저장소와의 연결 확인
git fetch # 원격 브랜치 정보 가져오기
git checkout FETCH_HEAD # 페치해서 가져온 최신 커밋을 살펴보고 싶은 경우
커밋되지 않았거나 저장되지 않은 모든 변경 사항 취소
git reset
git checkout .
git clean -fdx