Git tutorial 1

양진영·2023년 1월 25일
0

Git

목록 보기
1/5

오늘 부터는 신년개획에서 말했던 대로 배워야 한다고 생각한 기본중의 기본 js와 git에 관해서 시작하려 한다. 둘중 git이 당장 급하게 쓰여져야 하기 때문에 일단은 git을 먼저 공부 해보려고한다. 일단 글을 쓰기 전에 내가 말하고도 개발자라면서 js와 git을 공부한다고...? 이건 무슨 소리지? 라고 생각할수있어 먼저 얘기를 꺼내자면 나는 협업 경험이 거의 전무하다. 그래서 진짜 tutorial로만 배워 이번에야 말로 제대로 배워야 겠다고 생각한것이다. 배움에는 빠르고 늦고가 없다...
그럼 시작해보도록 하겠다.

git CLI 기본 명령어

git init: 해당 폴더(디렉토리)에서 git을 시작하겠다. git init으로 현재 폴더에서 깃을 사용할것이며 현재폴더 안에서 생기는 파일이나 폴더는 전부 커밋 대상이다 라는 뜻이된다.

git add <파일명>: 해당 파일명으로 지정한 파일이 커밋 대상이된다. 하지만 파일이름이 아닌 파일이름 자리에 . 을 입력하면 파일 전체가 커밋대상이 된다.
ex) git add .

git commit -m "어떤 커밋인지에 대한 설명": 커밋은 하나의 버전을 생성하는것 (커밋을 기능마다 작게작게 쪼개서 하면 좋은 이유는 버전별로 가볍게 돌아갈수있기 때문이다. 큰 덩어리로 컷밋을 날리면 잘못됫을떄 다 다시 해야한다는 뜻이기 때문)

-> github을 백업 용도로만 사용한다면 덩어리 째로 올려도 상관은 없으나 깃헙의 의의는 백업이 아닌 버전관리에 있으므로 올바른 버전관리를 위해서는 작게작게 커밋하고 어떤 커밋이었는지 알아보기 쉽게 메세지를 첨부한다.

  • 내가 구지 이걸 언급하는 이유는 내가 이렇게 깃헙을 썻기 때문이다. 버전관리로서 또는 협업툴로서 사용한게 아니라 그냥 내가 클라우드에 내 소스 백업해놓고 나중에 다른 노트북으로 작업환경을 바꿧을때 내려받아서 써야겠다. 라는 생각으로 깃헙을 사용했기 때문에 만약 이걸 읽는 다른 초보 분들은 나처럼 안했으면 하는 마음이다.

git log: 지금까지 커밋된 내용들이 보인다.

git remote add origin <연결하고자 하는 경로> : 깃헙 원격저장소에 연결할때 사용되는 명령어이다.

git remote set-url <바꾸고자 하는 경로>: 기존에 원격저장소 경로를 연결했는데 잘못연결 했거나 바꿔야 하는 경우에 사용할수 있는 명령어 이다.

git push origin <경로>: 커밋한 내용을 원격저장소에 있는 브랜치로 올리는것인데 디폴트로 master로 잡혀있지만 master가 아닌 다른 브랜치로도 올릴수있다.

git clone <경로>: 경로에 있는 원격저장소에 코드를 복사해온다

git clone <경로> . : 현재 폴더에 경로에 있는 원격 저장소를 복사해오는데 새 폴더를 만들지 않는다. => 클론해오면 git log까지 다 가져와서 볼수있음

settings -> collaborators에서 유저를 추가해줘야 추가된 유저가 내 리포지토리에 푸쉬할수있는 권한이 생김

git pull origin <경로> : 레포지토리가 연결된 이후 해당 경로의 소스코드를 가져오고 싶을때는 pull을 하여 가져올수있다.

깃/깃헙 흐름 이해:
1. 로컬저장소(git)을 git init이라는 명령어로 생성하고 생성된 폴더에 작업을 진행한다.

  1. 커밋을 하고 싶다면 커밋 대상이 될 파일들을 add 라는 명령어로 커밋 준비를 시킨다.

  2. 커밋을 하면서 어떤 작업을 했었는지 message로 남긴다. 커밋이 되었고 이 커밋 내용을 원격저장소에 올리고 싶다면 git remote add origin <경로>를 통해 원격저장소가 있는 경로에 연결하고 git push origin <경로>에 올린다.

  3. 다른 사용자가 내가 저장소에 올린 소스코드를 사용하고 싶다면 git clone <경로> . 을 통해 자신이 만들어둔 폴더에 내 소스코드를 클론(복사) 한다. 만약 다른 사람이 내 레포지토리에 푸쉬하여 같이 개발하고자 한다면 settings에 collaborator로 내가(레포지토리 주인)등록 시켜놓는다.

  4. 그 후로는 자신도 push 할수있고 남이 올린 작업물은 git pull origin <경로>로 받아올수있다.

마지막으로 add, stage, commit, push에 대해 조금만 더 이야기 해보자면 add는 작업했던 파일을 스테이지에 올리는 것이다. 이후 스테이지에 올라와 있는 내용을 커밋하게 된다. 하지만 이때 조금 주의 해야하는 내용은 그럼 변경되지 않은 내용은 커밋대상이 아니겠내? 라고 할수있겠지만 그렇지는 않다. 변경되지 않은 내용은 스테이지에 올라가긴 하지만 (한번 스테이지에 올라가면 내려오지 않는다 지금은 이렇게 이해하는게 쉬울거같음) 내용 그대로 다시 스테이지에 올라가는게 아니라 변경없음 으로만 저장되어 사실상 변경없음 + 변경된 내용이 올라가는 즉 변경본만 커밋하는게 아니라 변경없음 도 함께 커밋되어 최종본이 올라가게 된다. 그리고 git이 추적하는 파일들의 상태값은 4가지 인데, 한번도 add를 하지않은 파일은 추적없음(untracked), 다음 처음 add를 하게 되면 staged 그리고 커밋하게 되면 수정없음 으로 바뀌고 마지막으로 같은 파일에서 작업이 더이루어진 상태에서 add를 하게되면 수정됨이 된다.

이정도가 첫 튜토리얼로서의 git 공부이고 다음 포스팅 부터는 git CLI가 아닌 git을 GUI환경에서 사용할수 있게 도와주는 툴인 소스트리를 알아보려 한다. 다들 화이팅하고 즐거운 개발 했으면 좋겠다.

profile
왜? 라는 질문을 중요시하는 서버 개발자입니다

0개의 댓글