팀프로젝트를 진행하면서 터미널을 사용해 git과 github를 사용할 일이 많아졌지만, 아직 사용하는데 익숙하지 않아 기본 내용을 정리해봤다.
1. pwd (print working directory)
현재 내가 작업하는 폴더를 볼 수 있다.
(참고 : ~는 Home이라는 경로이며, 우리가 보는 데스크탑보다 더 상위 폴더를 말한다)
2. ls (list)
현재 폴더 안에 있는 폴더와 파일 내역을 보여준다.
3. list -a (list all)
숨겨진 파일(보통 .으로 시작함)도 모두 확인할 수 있다.
4. cd 폴더명 (change directory)
ls명령어에서 확인된 폴더명/하위 폴더로 깊게 이동 가능하다.
5. cd ..
한 단계 위의 상위 폴더로 이동할 수 있다.
6. mkdir 폴더명 (make directory)
현재 경로에서 새로운 폴더를 생성할 수 있다.
7. touch 파일명
현재 경로에서 새로운 파일을 생성할 수 있다.
정확히는 파일의 생성과 날짜, 시간을 변경하는 명령어이다.
git은 하나의 코드 폴더 내에서 코드 변경점을 기록하기 위해 사용한다. 어렵게 이야기하자면 소프트웨어의 변경사항을 체계적으로 추적하고 통제하는 것이다.
github는 온라인 코드 저장소로, 온라인 백업, 공유, 협업을 위해 사용한다.
1. git init (initialize)
코드 관리를 시작하는 명령어.
프로젝트 시작 전 한 번만 입력하면 되며, 정확한 프로젝트(폴더)에서 입력해야 한다.
git init이라는 명령어를 입력하면 현재 프로젝트에 .git이라는 폴더가 생기며, 이때부터 코드 변경을 git에서 추적한다.
2. git add 파일명 / git add .
코드 저장명령어 / 저장하기 전 저장할 파일 지정
git add .로는 프로젝트의 변경사항을 한 번에 지정해 변경할 수 있다. 여기서 점(.)은 현재 나의 경로의 모든 변경된 사항을 말한다.
3. git commit -m “메세지 작성”
코드 저장 / 실제로 저장하는 명령어
4. git status
현재 git 상태 확인 / 변경 상태를 확인하는 명령어
어떤 파일이 변경됐는지, 어떤 파일이 add(지정)됐는지 등을 알 수 있다.
5. git log
저장 내역(커밋 내역) 확인
지역 저장소(local repository)는 작업하는 컴퓨터의 저장소를 말한다. 반면 원격 저장소(remote repository)란 로컬이 아닌 컴퓨터 혹은 서버의 저장소를 말한다.
git remote add origin <github 주소>
: 원격이 없는 경우 새로운 깃 리파지토리를 만들어서 내 로컬저장소에 원격을 지정하는데, 이 원격(목적 url)의 이름은 origin으로 한다. "깃 , 여기있는 url을 origin이라는 이름으로 원격저장소로 정할게" origin이란 이름은 master(or main) 처럼 관행적인 이름이고 바꿀 수 있다.
git branch -M main
: 기본 브랜치 Master를 Main으로 바꾼다.
git push -u origin main
: origin이라는 리모트 레포지토리에 main이라는 브랜치를 생성하고, 로컬 레포지토리의 main 브랜치의 내용을 리모트 레포지토리의 main 브랜치에 보내라는 뜻이다.
깃에서는 기본 브랜치를 master라 하고, 기본 원격 저장소를 origin이라고 한다.
7. git push origin <원격 저장소 브랜치명>
깃허브에 코드 업로드.
여기서 origin은 원격 저장소 이름이다.
7. git pull
다른 사람이 변경한 코드를 내 코드에도 가져오기
8. git clone <프로젝트 주소> .
깃헙 전체 프로젝트 복사
연결된 원격 저장소 확인하기
현재 저장소에 있는 원격(목적지 url)을 나열해서 보여준다.
git remote -v
원격 저장소 삭제하기
git remote remove <저장소 이름>
원격 저장소 이름 변경하기
git remote rename <기존 이름> <변경할 이름>
원격 저장소(브랜치) 전환하기
git checkout <전환할 원격 저장소>
브랜치 전환 시 주의할 점!
보통 Git을 사용할 때, 작업하고 있던 디렉토리에서 커밋되지 않은 변경 사항이 있는 경우 다른 브랜치로 이동할 수 없다. 이는 커밋되지 않은 파일들이 손실되기 때문이다. 이 경우 변경 사항을 처리하기 위해서는,
1. 삭제하거나,
2. 커밋하거나,
3. 스태시 (Stash: 아직 커밋하지 않은 변경 사항들을 임시로 저장하는 Git의 기능)
해야 합니다.
새 원격 저장소(브랜치) 생성 및 이동하기
새로운 브랜치 생성과 동시에 해당 브랜치로 이동하는 명령어
git checkout -b <새 원격 저장소(브랜치)>
새로운 브랜치로 체크아웃하거나 브랜치를 시작점으로 재설정하는 방법
다음 명령은 새 브랜치를 만드는 것과 유사하지만 -B (대문자 B에 주목) 플래그와 선택적인 START-POINT 매개변수를 사용한다.
git checkout -B BRANCH-NAME START-POINT
만약 BRANCH-NAME이라는 브랜치가 존재하지 않으면, Git은 START-POINT에서 브랜치를 만들고 시작한다. 만약 BRANCH-NAME이라는 브랜치가 이미 존재한다면, Git은 브랜치를 START-POINT로 재설정한다. 이것은 -f (force의 약자. 강제로 실행하는 명령어) 옵션을 사용하여 git branch를 실행하는 것과 동일하다.
체크아웃을 강제로 실행하기
작업 디렉토리의 인덱스가 HEAD와 다르면 (즉, 스테이징하지 않은 변경 사항이 있으면), git checkout 명령에 -f 또는 --force 옵션을 전달하여 Git이 브랜치를 전환하도록 강제할 수 있다. 기본적으로, 이는 로컬 변경 사항을 삭제하는 데 사용될 수 있다. 다음 명령을 실행하면 Git은 병합되지 않은 항목을 무시한다.
git checkout -f BRANCH-NAME #Alternative git checkout --force BRANCH-NAME
작업 디렉토리에서 변경 내용 되돌리기
git checkout 명령을 사용하여 작업 디렉토리에서 파일을 변경한 내용을 되돌릴 수 있습니다. 이는 파일을 HEAD의 버전으로 되돌립니다.
git checkout -- FILE-NAME
- https://git-scm.com/docs/git-remote
- https://choiiis.github.io/git/how-to-remote-project/
- https://sabarada.tistory.com/75
- https://velog.io/@717lumos/Git-GitHub-%EB%B0%B1%EC%97%85-%EA%B8%B0%EB%8A%A5-%EC%82%AC%EC%9A%A9
- https://www.freecodecamp.org/korean/news/git-cekeuause-daehan-seolmyeong-giteseo-beuraencireul-cekeuaus-byeongyeong-ddoneun-jeonhwan-haneun-bangbeob/