[GIT] area, add, commit, push, stage

고준영·2021년 8월 14일
2

Git🐙

목록 보기
1/3
post-thumbnail

Git에 대해서 꼭 공부해야겠다고 생각했다. 그 이유는 다음과 같다.
1. 현업에 나가서 사용하게 될 것이다.
2. 위코드에서의 프로젝트중 git을 이용해 협업 할 것이다.
-분명 프로젝트중 git관련 실수가 발생 할 것이고, 이때에 구글링을 해서 고치거나 마땅한 방안을 찾을 것이다. 허나 미리 어느정도 공부한 후 이러한 상황을 맞는것과, 아무것도 모르고 그냥 구글링을 통해 해결하는것은 공부라는 관점에 있어 하늘과 땅 차이 일것이다. 어느정도의 공부를 해놓으면 해결방안의 틀 정도는 알 수 있을 것이고, 더 나아가 공부한 git에 대해 실습도 할 수 있을 것이다.


1. Area

  • Git에 대해서 공부하기 전에 일단 area에 대한 이해가 있어야 한다고 생각했다.

1) working area

  • 내가 수정하고 있는 공간
  • git add 되지 않은 것

2) Staging area

  • git add 된 파일들이 git commit 되기를 기다리는 곳
  • 내가 사용하는 GitHub에서는 자동으로 모든 파일이 staging area로 들어감

3) Repository (or commit) area

  • git commit된 파일 또는 git commitgit push 되어 원격 저장소에 저장 된 파일들이 있는 area

2. Add

git add 명령어를 통해 이루어지며, .git파일이 내가 변경한 파일들의 변경사항을 추적 할 수 있다.
git add 는 여러번 이루어져도 git log에 영향을 미치지 않는다.


3. Commit

git commit 명령어를 통해 이루어지며, 나의 변경사항들에 대해 스탬프를 찍는 것이라고 생각하면 쉽게 이해가 된다.
commit은 git log에 남기 때문에 남발하면 안된다. 나중에 History를 확인하면 지저분 하기에 프로젝트마다 commit에 대한 기준을 세우고 프로젝트를 진행하는 것이 나중에 코드를 관리하고, history를 확인함에 있어 수월하다.


4. Push

git push 명령어를 통해 원격저장소에 내가 commit 한 것들을 저장하는 것.
git push 하기 위해서는 아래와 같이 원격 저장소와 연결이 필요하다.

$ git remote add {원격 저장소 별명} {원격 저장소 주소}
#원격 저장소 별명은 입력해주지 않으면 origin으로 됨
$ git push origin master
#origin 저장소에 master 이라는 브랜치에 push

Push 조금 쉽게 하기

  • push를 할때마다 저장소 이름 브랜치 이름 이렇게 다 적어주기가 귀찮다..!
$ git push -u origin master
# -u 옵션을 사용하여 다음부터는
$ git push
# 위의 명령어 만으로 origin의 master로 push 되도록 만든다.
  • 위의 방법은 master 브랜치에 올리기는 편하지만 여러개 brnach를 넘나들게 되면 소용이 없어진다.
$ git push origin {브랜치 이름}
# branch에서는 계속 이렇게 명령해줘야 함
  • 따라서 다음과 같은 방법을 사용!
$ git config --global push.default current
#.git 폴더에는 config파일이 있고 해당 파일에 
# push.default = current 라는 내용을 추가하게 해주는 명령어가 위의 명령어이고
# 이러한 명령어를 통해 어느 brnach에서도
$ git push
# 해당 명령어를 사용하여 push 가능

5. Stage

stage를 설명하기 위해 git status 명령어를 사용

$ git status
On branch search3
Changes to be committed:
  (use "git reset HEAD <file>..." to unstage)

        modified:   src/components/Control/Control.jsx
        modified:   src/components/Input/Input.jsx
        modified:   src/components/List/ListItem.jsx

Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git checkout -- <file>..." to discard changes in working directory)

        modified:   src/components/Search/Search.jsx
        modified:   src/components/Search/Search.stories.jsx

Untracked files:
  (use "git add <file>..." to include in what will be committed)

        src/components/Search/useSearch.js

1)Changes to be committed:

git add 되어 commit 되기를 기다리는 파일
git remote 라는 뒤에서 다룰 명령어를 통해 add된 파일들을 해당 stage에서 unstage 할 수 있다고 나와있다.

2)Changes not staged for commit:

git add 되지 않은 내용이 담겨있으며, 아직 Working area에 있는 것

3)Untracked files:

가장 최근에 git add 이후에 새로 만들어진 파일이다.
git 파일이 변경사항을 추적 할 수 없는 파일이다.
왜냐? 이 파일의 존재를 git add로 알려주기 전까지는 git파일은 해당 파일의 존재를 모른다.


6. Conclusion

여기서 꼭 알고 가야할 것

  • Working area = 내가 작업중인 파일, git add 안된 것
  • Staging area = git add 된 것

    git을 그냥 정말 명령어만 알고 사용할 때와 의미를 알고나니 많은 것이 이해가 된다.
    역시 원리를 이해해야 활용도 할 수 있는것 같다.
    git 실습간에 했던 실수가 왜 원하는 방식으로 적용되지 않았는지 알게 되었다.
    git에 대해서 꼭 완벽하게 학습하고 복습해서 잘 적용하기!!
    느리더라도 정확하게 알고가자🔥
    21.08.14 위코드2주차 토요일


Tip

p10k를 사용하면서 git에대한 아이콘이 나온다
? = Untracking File
+ = 수정 된 파일중 add 된 것
! = 수정 된 파일중 add 되지 않은 것
⬆️ = commit 된 횟수 (원격 저장소에 연결 된 경우 나옴)

profile
코드짜는귤🍊 풀스택을 지향하는 주니어 개발자 입니다🧡

0개의 댓글