man [명령어]
: 메뉴얼
q
: 메뉴얼 상태에서 나가기
control + a
: 줄의 맨앞으로 커서 이동
control + e
: 줄의 맨뒤로 커서 이동
control + c
: 작성 중인 커맨드 취소, 실행 중인 커맨드 취소
clear
: 이전 커맨드 내용 지우기(히스토리는 남아있음)
tab
: 자동 완성 기능(작성한 커맨드의 자동완성이 가능한 명령어들이 나오거나 명령어를 완성시켜줌, 디렉토리 이동 시에도 사용 가능하다.)
pwd
: 현재 위치해있는 디렉토리 경로를 표시
cd
: 디렉토리 이동(cd, cd ~ 둘 다 홈 디렉토리로 이동됨)
cd -
: 이전에 위치했던 디렉토리로 이동
ls [폴더]
: 현재 위치에 있는 디렉토리에 폴더들을 보여줌([폴더]까지 작성하면 그 폴더 안에 내용을 보여줌)
mkdir
: 디렉토리를 생성할 수 있다.
touch
: 파일을 생성할 수 있다.(여러개를 한번에 생성 가능)
cat
: 파일의 내용을 보여준다.
mv
: 파일, 폴더 이름 변경, 이동(원래는 변경할 파일명이 중복되면 덮어쓰기하지만 -i
커맨드를 사용하면 덮어쓸건지 동의여부를 구한다.)
mv [기존 파일명] [변경할 파일명]
mv [옮길 파일명] [옮기는 위치]
cp
: 디렉토리와 파일 복사 붙여넣기
rm
: 파일이나 디렉토리 삭제(비어있지 않은 디렉토리는 -r
옵션을 사용하면 삭제가 가능하다)
절대 경로: 루트 디렉토리(/
)를 기준으로 경로를 나타내는 것
상대 경로: 현재 자신이 위치해 있는 디렉토리 기준으로 경로를 나타내는 것
(현재 디렉토리는 .
으로 표시, 상위 디렉토리는 ..
으로 표시, 최상위(루트) 디렉토리는 /
으로 표시한다.)
주의사항🔥 디렉토리에 공백이 있는 경우에는 작은따옴표('')
나 큰 따옴표("")
혹은 역슬래시(\ )
를 사용해야 한다.
cd
커맨드뿐만 아니라 파일 경로를 인자(argument)로 받는 모든 커맨드에 해당한다.
// 공백이 있는 디렉토리 이동 예제
cd 'hello world'
cd "hello world"
cd 'hello\ world' // 한국어 키보드의 경우 ₩키를 사용
ls -a
: 숨김파일을 포함한 경로안의 모든 내용이 표시된다.
ls -al
: 숨긴파일을 포함한 모든 내용의 상세정보가 표시된다.
vim
: 텍스트 에디터 실행
일반모드(커서 이동, 텍스트 붙여넣기, 작업취소)
- 일반 모드 -> 입력 모드(텍스트 입력) : i
- 일반 모드 -> 비주얼 모드(텍스트 블록 지정, 텍스트 복사) : v
, V
- 일반 모드 -> 명령 모드(내용 저장, vim 종료) : :
일반 모드를 제외한 각 모드들은 esc 통해 일반 모드로 돌아갈 수 있다
유닉스 운영 체제에서 특정 작업을 하려면 관리자 권한이 필요할 때가 있다, 특히 설치 관련 작업을 할 때
필요로 하는 경우가 많은데 그럴때 관리자 권한을 잠시 흭득할 수 있는 커맨드가 sudo
이다.
지난 과정 확인 가능, 이전 버전으로 돌아갈 수 있음
레포지토리(repository): 프로젝트의 변경사항들이 저장되어 있는 .git 디렉토리이다(커밋이 저장되는 곳)
로컬 레포지토리: 내 컴퓨터에 있는 레포지토리
리모트(원격) 레포지토리: Github에 생성한 레포지토리
커밋(commit): 프로젝트 디렉토리의 특정 모습을 하나의 버전으로 남기는 행위(버전 관리 시점)
1. working directory:작업을 하고 있는 프로젝트 디렉토리를 의미한다.
2. staging area: git add를 한 파일들이 존재하는 영역이다. 커밋을 하게되면 staging area에 있는 파일들만 커밋에 반영된다.
3. repository: working directory의 변경 이력들이 저장되어 있는 영역이다.
git init
: 현재 디렉토리를 프로젝트 디렉토리로 설정하고 그안에 레포지토리(.git 디렉토리) 생성
주의사항🔥 첫 커밋시 git config를 통해 나의 정보를 입력해야 한다!!
git config user.name "woohyeok" // 유저 네임 설정 git config user.email "woogur29@gmail.com" // 이메일 설정
git add [파일명]
: 커밋할 파일을 미리 지정(수정된 파일의 모습이 커밋에 포함될 것이라 지정하는 것)
git add [디렉토리]
: 커밋할 디렉토리 설정
git add .
: 현재 프로젝트 디렉토리 내에서 변경사항이 생긴 모든 파일들을 staging area에 추가해준다.
git reset [파일명]
: staging area에서 삭제한다.
git status
: Git이 인식하고 있는 프로젝트 디렉토리의 현재 상태를 보여줌
- 커밋에 반영될 변경 사항
- 커밋에 반영되지 않는 변경사항(파일이 수정되었지만 git add를 하지않은 파일)
git commit -m "커밋 메세지"
: 현재 staging area에 있는 것들을 커밋을 남겨 로컬 레포지토리에 저장
git log --pretty=oneline
: 커밋 기록(history) 보기(한 줄씩 보기)
git commit --amend
가장 최신 커밋 수정해서 새로운 커밋으로 만듦
git show [커밋ID]
: 해당 커밋과 그 이전의 커밋의 차이점을 보여준다.
git diff [이전 커밋ID] [그 이후의 커밋ID]
: 두 커밋 간의 차이 보기
git reset [옵션][커밋ID]
: HEAD가 과거의 커밋을 가리키게 할 수 있다. working directory의 내용도 과거의 커밋 모습으로 돌아온다.(과거 커밋의 모습으로 작업을 다시 시작하고 싶을 때 사용)
--soft
: repository HEAD가 커밋ID를 가리킴--mixed
: working directory를 제외한 영역들이 바뀜--hard
: Git 3가지 영역 모두 바뀜
git revert [커밋ID]
: 해당 커밋에 했던 작업으로 되돌아간다.
git tag [태그 이름] [커밋 아이디]
: 커밋에 tag 달기
git tag
: 설정한 태그들 보기
git show [태그이름]
: 입력한 태그가 가리키는 커밋들을 보여준다.
git tag -d [태그이름]
: 태그 지우기
Git에서 리모트 레포지토리를 최초로 추가할 때 origin이라는 이름으로 가리키는 것이 관례화되어 있다.
git push -u origin main
: 로컬 레포지토리의 내용을 처음으로 리모트 레포지토리에 올릴 때 사용합니다.(tracking 정보 설정을 위함)
git push
: 로컬 레포지토리 내용 -> 리모트 레포지토리에 반영한다.
git pull
: 리모트 레포지토리 -> 로컬 레포지토리에 반영한다.
// 코드해석
git remote add origin https://github.com/kyuri-dev/Math_Box.git
1) remote는 리모트 레포지토리에 관한 작업을 할 때 쓰는 커맨드
2) add는 새로운 리모트 레포지토리에 등록하겠다는 뜻
3) https주소를 origin으로 등록하겠다는 뜻
// 코드해석
git push -u origin main
현재 로컬 레포지토리에 있는 main 브랜치의 내용(=main 브랜치와 관계된 모든 커밋들)
origin이라는 리모트 레포지토리로 보낸다는 뜻입니다.
git clone https://github.com/numpy/numpy.git
: 깃허브 프로젝트의 레포지토리를 복제
Git 에서 하나의 프로젝트를 여러가지 버전으로 관리(하나의 작업에서 여러개의 흐름으로 나눈다)
git branch
: 모든 브랜치 조회
git branch [생성 할 브랜치 명]
: 브랜치 생성
git checkout -b [생성 할 브랜치 명]
: 브랜치 생성과 동시에 생성한 브랜치로 이동
git checkout [이동 할 브랜치 명]
: 브랜치 이동
git branch -d [제거 할 브랜치 명]
: 브랜치 제거
git merge [브랜치 명]
: 현재 위치의 branch에 입력한 branch를 합친다.
git merge --abort
: merge를 하다가 conflict가 발생했을 때 일단은 merge 작업을 취소하고 이전 상태로 돌아감
1. conflict가 발생한 파일을 연다.
2. merge의 결과가 되었으면 하는 모습대로 코드를 수정
3. git add. -> git commit -m "커밋 메세지"
리모트 레포지토리에 있는 브랜치의 내용을 일단 가져와서 살펴본 후에 머지하고 싶을 때 사용
어떤 파일의 특정 코드를 누가 작성했는지 알 수 있는 커맨드
커밋 로그를 보고git show [커밋ID]
하면 누가 커밋을 했는지 알 수 있다.
git restore [파일명]
: 커밋된 상태로 현재 피알의 수정내역을 되돌린다.
git restore --source [커밋ID] [파일명]
: 파일의 특정 커밋ID 시점으로 복구
git reflog
: 헤드가 이때까지 가리켜왔던 커밋들을 기록한 정보
1. rebase는 새로운 커밋을 만들지 않는다.
2. rebase로 만들어진 커밋 히스토리는 merge로 만들어진 커밋 히스토리보다 좀 더 깔끔하다
현재 작업 내용을 스택 영역에 저장
git stash
: 아직 마무리 하지 않은 작업을 스택에 잠시 저장하는 명령어(나중에 다시 꺼내올 수도 있다.)
git stash list
: stash를 했다면 list 명령어를 통해 목록을 볼 수 있다.
git stash apply [stash 이름]
: 작업 다시 가져오기
git stash drop [stash 이름]
: stash 삭제
git stash pop [stash 이름]
: 스택 영역에 저장된 작업 내용을 working directory에 적용하면서 스택에서 삭제
git cherry-pick [커밋ID]
: 자신이 원하는 작업이 들어있는 커밋들을 가져와서 현재 브랜치에 추가
git clean : git 저장소에 포함되지 않은 파일 삭제
-n
파일들을 보여주고 삭제할 지 여부 묻기-f
파일 삭제
주의사항🔥 원칙적으로 자신의 리모트 레포지토리에는 자신만 git push
할 수 있지만 다른 사용자도
git push
할 수 있게 해주려면 다른 사용자를 해당 리모트 레포지토리에 collaborator로 지정하면 됩니다.
참고사항🙃 파일 이름이 README일 경우에 내용을 바로 보여준다.(주로 프로젝트에 관한 설명)
git config alias.[별명] [커맨드]
: 길이가 긴 커맨드에 별명을 붙여서 이후로 별명으로 해당 커맨드를 실행할 수 있도록 설정할 수 있다.
안녕하세요!
한국대학생IT경영학회(KUSITMS)에서 '코드잇 부트캠프 커뮤니티 서비스 기획'을 주제로 산학협력 프로젝트를 진행하고 있는 코코아 팀의 민혜린이라고 합니다.
(학회 홈페이지: https://www.kusitms.com/ )
서비스 구체화를 위해, 코드잇 부트캠프 수강자/수료자 분들의 경험을 듣고 싶어서 설문을 진행하게 되었는데요...!
약 5분 정도 시간을 내어 설문에 참여해주실 수 있을지 부탁드리고 싶어 댓글을 쓰게 되었습니다...!
설문에 응답해 주신 분들 중 추첨을 통해서도 ☕️메가커피 아메리카노를 증정할 예정이며,
추가 📞전화인터뷰에 응해주신다면 "확정적으로" ☕️메가커피 아메리카노를 보내드릴 예정입니다.
바쁘시겠지만 시간 내어 설문에 참여해주신다면 저희 팀에 정말로 큰 도움이 될 것 같습니다!🥹
감사합니다!
🔗링크🔗 https://forms.gle/WqMvd3XrAgbeCXy78