1. 필수 리눅스 명령어
- pwd : print working directory : 현재 나의 위치를 알려줌
- ~ : home directory
- / : 루트 디렉토리(폴더)
- home
- Desktop(바탕화면)
- ls : list : 현재 폴더안에 있는 목록을 보여주는 명령어
- ls -a : 숨긴 파일 까지 목록을 보여주는 명령어
- ls - l : 리스트의 세부 정보 포함 표시
- cd : change directory : 경로 이동 시
- . : 지금 폴더
- .. : 한 단계(상위) 폴더
- ~ : 홈 디렉토리로 이동(또는 cd + 엔터)
- mkdir : make directory : 폴더 만들기
- mkdir name : name이름의 디렉토리 생성
- touch : 파일 만들기
- touch name.확장자명 (ex : touch index.html)
- 파일의 날짜, 시간 변경 시 사용하기도 함
2. Git * Github 명령어
Git이란?
- 코드 변경점 기록하는 도구
- 버전 관리 도구 (형상configuration 관리 도구)
- 하나의 폴더 내에서 코드의 변경점을 기록하기 위해 git을 사용
- 에러 발생 시 과거의 코드 기록으로 쉽게 되돌아가기 가능
Github란?
코드를 온라인으로 백업해 두는 것
백업과 공유가 가능한 온라인 코드 저장소
[github repository 생성하기]
1. github 가입 및 로그인 하기
2. Create a new repository : public, 상업적으로 사용할 때 private설정
Git, Github 차이
💡 Git = 분산 버전 관리 시스템(DVCS, Distributed Version Control System)
Git은 로컬(내 PC)에서 실행되고, GitHub는 원격(클라우드)에서 코드 공유 및 협업을 위한 플랫폼
💡 GitHub = Git을 사용하여 코드를 저장, 공유, 협업할 수 있는 원격 저장소 서비스
Git 필수 명령어
- git init : initialize 초기화하다.
- 프로젝트 시작 전 딱 한 번만 입력하면 됨
- 여러 번 입력해도 문제되진 않음
- 정확한 프로젝트 폴더(경로)에서 입력해야 함
- git init 입력 시 해당 숨겨진 폴더가 생성 됨(.git 파일에서 형상관리를 함 > 코드 변경을 git에서 추적하기 시작하겠다.)
- git status : 저장 되기 전 상황을 확인하는 명령어
- git add & commit : 코드를 저장하는 명령어
- add > commit 순서 : add (저장할 파일 지정)
- git add . : 모든 파일 선택
- commit -m "설명": git commit -m "파일 생성 및 삭제 코드 추가"
- add > commit 순서 : add (저장할 파일 지정)
- remote add 안하고 진행하면 로컬에만 저장됨.
- git remote add origin <github address> : 깃허브 주소를 origin(출처)으로 저장하는 것
- local : 개인 컴퓨터 저장소
- remote : github 저장소
- git remote -v : 현재 등록되어있는 깃 주소 리스트 출력
- git branch -M main : Master 브랜치를 mian으로 이름 바꿈
- git push -u origin main : git push만 쓰고 싶을 때, 개인 프로젝트가 아닐 시 권장하지 않음(추후에 헷갈리거나 잘못 올림)
- Error 1 : Please tell me who you are
- git log : 커밋 내역 확인
- log확인 후 Q버튼으로 나가기 가능
- git reflog : 모든 깃 로그가 출력 됨
- git reset commitID : commitID위치로 복구
- git push : 현재까지 커밋된 것을 github에 업로드 하겠다.
- git push origin 브랜치명 :
- git remote add origin <github address> : 깃허브 주소를 origin(출처)으로 저장하는 것
- local : 개인 컴퓨터 저장소
- remote : github 저장소
- git remote -v : 현재 등록되어있는 깃 주소 리스트 출력
- git branch -M main : Master 브랜치를 mian으로 이름 바꿈
- git push -u origin main : git push만 쓰고 싶을 때, 개인 프로젝트가 아닐 시 권장하지 않음(추후에 헷갈리거나 잘못 올림)
- github > settings > access > coraboraters > add people
- git clone : 코드 복사해오기
- 복사할 HTTPS 복사 > 작업할 폴더 위치로 이동 후 > git clone 복사한HTTPS주소. : 마침표 추가해야지 폴더 생성안하고 해당 위치에 파일을 복사해서 가져옴
- git pull : 다른 사람이 변경한 코드 내 코드에도 가져오기
- vim 에디터가 뜬다면 ? : esc > : > wq > 엔터
- 충돌(Conflict) 해결하기 : pull 했을 때 코드 충돌 시
- 둘 중에 하나의 코드로 바꾸기
- git reset --hard : 이전 코드로 복구 :머지 중 사라짐.
- git stash : 현재 작업 중인 변경 사항을 임시 저장하고 이전 깨끗한 상태로 돌아갈 수 있도록 함
- 다른 브랜치로 이동해야 하는데, 현재 작업 중인 변경 사항을 아직 커밋하고 싶지 않을 때
- Git Pull을 해야 하는데 충돌을 방지하고 싶을 때
- 잠시 변경 사항을 숨겨두고 다른 작업을 해야 할 때
- git stash list : stash 목록 확인
예시 출력 :
stash@{0}: WIP on main: e108411 팀소개 페이지 뼈대 html업로드
stash@{1}: WIP on main: 2b1d38b Fix button alignment
- git stash pop : stash에 저장한 변경 사항을 다시 불러오면서, stash 목록에서 제거하는 명령어
- git stash pop 실행하면?
- 가장 최근(stash@{0}) stash의 변경 사항이 다시 적용됨.
- 적용된 후, stash 목록에서 해당 stash가 삭제됨.
- git stash apply : pop과 비슷하지만, stash를 제거하지 않고 유지
- git stash drop stash@{0} : 특정 stash만 삭제
- git stash clear : 모든 stash 삭제
- git stash save "버튼 디자인 수정 전 상태 저장" : 이름을 붙여서 stash 저장
- git branch : 브랜치 리스트 확인(로컬 검색)
- git branch -r : 브랜치 리스트 확인(원격 브랜치 리스트 확인)
- git branch -vv : 브랜치 연결 상태 확인
- git branch 브랜치이름 : 브랜치 생성
- 합쳐질 브랜치 이동 후 git merge 합칠 브랜치이름 :브랜치를 합치는 명령어
git switch vs git checkout 차이점
- git switch 브랜치이름 : 브랜치 이동, 새 브랜치 생성, 브랜치 관련 작업 전용
- git switch 브랜치이름 : 브랜치 이동
- git switch -c 브랜치이름 : 만들면서 이동
- git checkout : 브랜치 이동, 특정 커밋 이동, 파일 되돌리기, 브랜치 전환 + 특정 파일/커밋 체크아웃
- git checkout 브랜치이름 : 브랜치 이동
- git checkout -b 브랜치이름 : 브랜치 생성 및 이동
- git checkout 커밋ID : 특정 커밋으로 이동
- git checkout -- index.html : 특정 파일을 이전 상태로 복원
✅ “브랜치 변경”만 필요하면 → git switch 사용!
✅ 특정 파일을 되돌리거나 커밋을 체크아웃해야 하면 → git checkout 사용!
🎯 git pull --rebase origin main vs git reset --hard 차이점
✅ 1️⃣ git pull --rebase origin main
원격(origin/main)의 최신 변경 사항을 가져오면서, 내 로컬 변경 사항을 위에 쌓는 명령어
💡 어떻게 동작하나?
1. 원격(origin/main)에 있는 최신 커밋을 가져옴 (하지만 바로 병합하지 않음)
2. 내 로컬 커밋을 최신 커밋 위로 재배치(rebase)
• 즉, 내 변경 사항을 원격 커밋 뒤에 이어서 적용함 → “깔끔한 Git 히스토리” 유지
3. 충돌(conflict)이 발생하면 해결 후 진행해야 함
4. 완료 후 푸시 가능
📌 언제 사용하면 좋을까?
✅ 원격 브랜치(origin/main)가 업데이트되어 있지만, 내 로컬 변경 사항을 유지하면서 최신 상태로 만들고 싶을 때
✅ 병합(merge) 커밋을 만들지 않고 깔끔한 커밋 히스토리를 유지하고 싶을 때
✅ 2️⃣ git reset --hard
현재 로컬 브랜치를 특정 커밋 상태로 강제로 되돌리는 명령어 (모든 변경 사항 삭제)
💡 어떻게 동작하나?
• HEAD를 특정 커밋으로 이동하면서, 변경 사항을 전부 삭제
• --hard 옵션을 사용하면, 작업 중인 파일도 강제 삭제됨
• 실행하면 되돌릴 수 없으므로 주의 필요! 🚨
📌 언제 사용하면 좋을까?
✅ 작업 중인 변경 사항을 완전히 버리고 이전 상태로 되돌리고 싶을 때
✅ 깔끔한 상태에서 다시 시작하고 싶을 때
✅ 실수로 변경한 파일을 원래 커밋 상태로 복구하고 싶을 때