[GIT] 배운거 정리

신현동·2020년 9월 10일
0

버전 만들기


GIT에게 버전관리 시작해! 라고 명령하기

git init[파일]

  • 버전관리 하고 싶은 폴더에서 초기화를 함으로써 버전관리 준비

중요!!

GIT 상태 보기

git status

  • GIT한테 "야! 지금 니 상태 어때" 이라고 물어보는거
  • 즉, Working Tree 의 상태를 보여준다

파일 추가

git add [파일]

  • 파일 (Working Tree의 수정사항) 이젠 버전으로 만들거니깐, Staging Area 에 올려라, 라고 명령하는 명령어

add 하기 전

add 한 후

버전 만들기

git commit -m "내용"

  • GIT에게 " 버전 만들어! " 라고 명령
  • add를 한 후의 파일(Staging Area 에 있는) 을 Repository(만들어진 버전) 에 보냄
  • git commit 해서 직접 내용을 적는것도 좋지만 -m "내용" 을 해서 직접 하는게 대부분 편함
  • 커맨드 라인에서 직접 commit 메세지를 적을때 쓰는것

버전 보기

git log

  • 기록을 보여줌

git log -p

  • **이게 뭐냐면 .. 밑에 있는 git diff 가 그 버전의 차이점을 보여주는거라면 이 명령어
    는각각의 버전의 차이점을 보여준다

버전과의 차이점 비교하는법

git diff

  • 수정 전 버전과 수정 후 의 차이점을 한 눈에 볼 수 있게 해주는 멋진 명령어!

차이점이 한 눈에 보임!

작업한 내용 되돌리기

git reset --hard

  • 버전관리를 하지않는 상태에서 맘에 들지않는걸 과거로 돌리는건 매우 어려움 , 하지만 저 명령어를 사용하면 한번에 그 전에 작업한 내용으로 돌아감

버전 만들기 정리


1. mkdir [디렉토리 이름]

2. git init[파일]

3. nano [파일]

4. git add [파일]

5. git commit -m "내용"

여러개의 파일을 버전으로 만들기


지금 시점에서 파일 하나 만들기

nano [파일] - Working Tree

git add [파일] - Staging Area

git commit - Repository

하지만 파일 2개를 한번에 버전으로 만든다면?

1. nano [파일1],nano [파일2]

2.git add [파일1] ,[파일2]

3.git commit

그다지 별거 없음 근데, 여기서 알아가야할 명령어가 하나 있음

어떤 버전이 여러 파일로 커밋 된거지?
= git status --stat

  • 이 명령어로 쉽게 각각의 버전에 어떤 파일이 연류 됬는지 볼 수 있다

Working Tree에 있는 파일 모두를 Staging Area로 이동시키기

git add .

  • 지금까지 파일 하나하나를 Staging Area로 이동시킬때 하나하나 add 시켰다면
    add 다음 . 을 넣으면 Working Tree 에 있는 모든 파일을 한번에 Staging Area로 이동시킬 수 있다

add 와 commit 동시에 하기

git commit -am " "

  • untracked 상태에서 git commit -am 를 하면

버전 삭제하기

git reset --hard

  • 여기서 중요한건 "내가 [버전 3] 를 지우고 [버전 2] 가 되겠다 하고싶다." 라 하면 나는 버전 2로 reset 해야 함 근데 이 말의 의미는 [버전 2]를 삭제하는게 아닌 [버전 2] 가 되겠다 라는 소리임

  • 간단하게 말하자면 "이 버전을 reset 할래!"하겠다는 소리는 "이 버전으로 reset할래!" 라는소리와 똑같다 여기서 " ~으로 라는 표현이 매우 중요함 "

버전 삭제하기 2

git reset --soft

  • 위에 git reset --hard가 수정한것 까지 모두 지우는 가장 강력한 명령어 라고 하면,
    git reset --soft는 수정한건 남겨두는 부드러운 명령어

절대 경로

cd /[디렉토리명]

  • 가고싶은 디렉토리로 정확하게 갈수있음 ex) 내가 만약 /home/hyundong/file 이라는 곳에 있다고 하면 cd /home/hyundong 이라고 치면 친곳으로 그냥 이동시켜줌

알아야 할 것들

버전관리의 핵심

비교를 통해서 차이점을 볼 수 있고 과거를 되돌아볼 수 있는거

diff tool

차이점을 매우 정교하게 볼 수 있음

branch

내 저장소를 다양한 상태로 공존할 수 있게 해줌
예시를 들어보자면 내가 한 문서를 만들었는데 그 문서로 시각장애인용,남성용,여성용,노인용 이런식 으로 각각 써야 한다고 하자 그럴때 쓰는게 브랜치 라는 도구임, 한 문서로 다양하게 써나갈 수 있음

profile
코딩 초보

0개의 댓글