Git 기초 사용법 (add, commit, push, pull, clone)

Jiwon·2021년 5월 5일
0

Git

목록 보기
2/8

Git 작업환경

  1. Working Directory
    : 현재 작업하고 있는 폴더 ( 그냥 폴더에 있는 파일들 )
  2. Staging Area
    : 버전을 기록할 것들을 옮겨 놓는 장소 (감시하고 있는 대상들)
  3. Local Repository
    : 내 PC에 파일이 저장되는 개인 전용 저장소 (찍어서 저장하는 곳)
  4. Remote Repository
    : 파일이 원격 저장소 전용 서버에서 관리되며 여러 사람이 함께 공유하기 위한 저장소 (온라인에 그 기록을 올린 곳)

git add

touch a.txt

a.txt라는 파일을 만들겠다라는 명령어

git add

파일을 기록으로 관리하고 싶을 때 (몇 줄을 추가했고 몇 줄이 삭제 됬는지 등)
내가 이제 이 녀석을 관리할 대상으로 추가 하겠어 ! 라는 뜻.
git add를 써서 Staging Area로 이동시킨다.

*status는 상태확인 명령어

git commit

git commit -m "변경 기록"

관리 대상으로 추가한 다음 저장해야 되는데
해당 명령어를 입력하면서
Local Repository에 추가해 준다.

git 명령어 아래 있는 문장을 보면
8dee689라는 문자열을 볼 수 있는데
이 7글자는 각 커밋마다 영문, 숫자로 이루어진 고유의 이름이 랜덤으로 생성되어서 붙여진다.
이 숫자를 담은 문자열을 git revision 혹은 commit hash라고 부른다.

Author identity unknown Please tell me who you are

이라는 에러 메시지가 뜬다면
당신이 누군지 모르겠다. 유저 등록을 해달라 라는 에러 메시지이다.
유저 설정은

git config --global user.email "해당email"
git config --global user.name "해당name"

으로 해주면 된다.

git config user.email
git config user.name

으로 잘 등록됬는지 확인 가능

git log

를 사용하면 변경 사항을 확인할 수 있다.
commit 옆에 20글자 정도 되는 글자가 뜨는데
아까 봤던 7글자가 이 20자리 숫자를 줄여서 부르는 축약어라고 생각하면 된다.
나갈때는 q로 나가면 된다.

터미널에서도 코드를 편집할 수 있는 기능을 제공해주는데
vi 또는 vim이라고 부른다.

명령 모드와 입력 모드가 있는데

명령 : 파일을 저장하고 나갈 수 있음
입력 : 파일 편집

이라고 생각하면 된다.

vim a.txt

로 들어가서 보면 맨 밑에 0L 0C라는 것을 볼 수 있는데
0번째 라인에 0번째 캐릭터라는 뜻
-> 0번째 줄에서 0번째 칸에 지금 커서가 위치해 있다.

i를 누르면 insert(입력모드)가 되고
esc를 누르면 다시 명령모드가 된다.
i를 누르고 내용을 작성한 다음 저장하고 나갈때는 :wq

status로 다시 상태를 봐보자

내 화면은 한글이여서 수정함이라고 뜨는데 영문일 경우에는 modified라고 뜰거다.
다시 한 번 변경 되었으니 이것을 추적 하겠냐 라고 깃 자체에서 보여준다.

다시 add를 해주고 status를 확인하면 수정이 되었고
commit을 해준 후 다시 기록을 봐보자


추가됬다는 기록(log)를 볼 수 있다.

git push

변경 이력을 온라인 저장소에 모든 사람이 볼 수 있도록 올리고 싶을 때 사용
온라인 상에 내가 변경할 이력이 저장되고 local에 있는 기록은 유지된다.

github사이트에서 repository를 만들어 준다.

  • Add a README file
    : 어떻게 시작되었고, 어떻게 실행을 할 수 있고, 어떤 식으로 기여할 수 있다. 라는 설명서 같은 느낌
  • Add .gitignore
    : 관리대상으로 삼지 않겠다.
  • Choose a license
    : 이 프로젝트(저작권)에 대해서 어떻게 사용할 것인가

해당 하지 않을 경우 체크하지 않고 바로 만들면 된다.


...or create a new repository on the command line 이라는 부분은
로컬에 아무것도 작업이 안 되어 있을 경우에 입력해서 생성해라. 라는 것

...or push an existing repository from the command line 이라는 부분은
로컬에 작업된 것이 있으면 그거 올려라. 라는 것


지금 로컬에서 일어난 작업 파일들을 원격에 저장했다.

첫 번째 줄은
remote는 remote라는 대상을 등록해놔야 하는데
remote add의 origin이라는 github repository를 등록하겠다. 라는 의미로 코드가 사용됬다.

두 번째 줄은
branch의 이름을 main으로 바꾸겠다는 의미
그래서 master라는 branch이름이 main으로 바뀐다.

세 번째 줄은
push로 로컬에서 변경할 작업을 원격으로 올리겠다. 라는 의미
origin의 main이란 곳에 올리겠다라는 뜻으로
origin은 github의 사이트 링크이다.

따라서,
github.com의 main이라는 branch에다가
지금 있는 branch인 master가 아니라 main branch를 올리겠다
라는 의미로 사용된다.

새로고침을 하면 잘 올라왔다 :)

git pull

다른 사람이 원격에 올려 놓은 변경 이력을 내 로컬저장소로 가져오는 것

웹 상에서 코드를 변경하고 commit한 후 pull 명령어를 써보자

파란색 박스 부분이 터미널에서 작성했던 commit 부분이라고 보면 된다.

수정한 후

git pull

로 불러온 후 기록을 봐보자

바뀐 내용을 볼 수 있다.

git clone

깃 허브에 있는 코드들을 직접 가져올 수 있다.
남의 레포(레포지토리)를 그대로 받아 오는 것

git clone 'repository주소'

*알아두면 좋은 것

rm -rm '폴더명'

제거 명령어

profile
과연 나는 ?

0개의 댓글