Git 명령어 활용하기

박상훈·2022년 7월 18일
0
post-thumbnail

git 브랜치 챕터 2 (옵셔널 3) 오늘 오전
이후 실시간 세션
과제1 나만의 아고라스테이츠 만들기 까지 오늘 오후
이후 실시간 세션
(my-agora-states)제출
글작성 까지 가능
배포페이지까지 제작
힌트 : 배열안에 있는 객체하나가 배열의 요소
모두사용할려면 반복문 for of ();

Git 명령어 : 참고한 블로그

Chapter 1 혼자 작업

git status

git 변경상태 를 확인할수있습니다.

local 의 index.js 파일을 staging area로 옮기려고 합니다.

git add index.js

내 깃헙 리파지토리에 'index.js 수정' 이라고 커밋 기록을 남기려고 합니다.

git commit -m 'index.js 수정'

커밋한 기록을 되돌려서 이전으로 돌아가는 방법은 없을까요?

git reset HEAD~1
1을쓰면 하나만 수정이 되는걸까?

수정을 완료했어요! 다시 index.js 파일을 staging area로 옮겨볼까요?

git add index.js

아까와 같이 'index.js 수정' 이라는 메시지로 커밋 기록을 남겨봅시다.

git commit -m 'index.js 수정'

Chapter 2 함께작업

김코딩은 local working directory를 Git의 관리 하에 들어가게 해 주려고 합니다.

git init

origin이라는 이름으로 내 Remote Repository를 등록하세요. 내 Repository 링크는 https://github.com/kimcoding/test 입니다.

git remote add origin https://github.com/kimcoding/test

페어와 함께 작업을 진행하려고 합니다. 지금까지 main 브랜치에 커밋한 기록을 방금 등록한 origin remote repository에 올려서, 페어에게 코드를 공유해야겠어요.

git push origin main

페어가 내 Remote Repository를 Fork 했다고 합니다. 페어의 Remote Repository를 내 Local에 pair라는 이름으로 등록해야겠어요. 페어의 리파지토리 링크는 https://github.com/pair/test 입니다.

git remote add pair https://github.com/pair/test

리모트 리파지토리가 잘 연결된 것이 맞는지 모르겠어요. 연결된 리모트 리파지토리의 목록과 주소들을 확인해 볼까요?

git remote -v

리모트 연결이 완료되었으니 페어와 나누어서 작업을 진행했습니다. 내 commit을 Push하기 전에 페어가 작업해서 본인의 Remote Repository에 올려 놓은 내용을 합치려고 합니다. 페어의 코드를 내 Local로 받아올 수 있을까요?

git pull pair main

특정 commit 시점으로부터 각기 다른 commit을 만들면, 기본적으로 다음과 같이 자동으로 merge가 됩니다. 이제 내 Remote Repository에도 Local의 내용을 반영합시다.

git push origin main

내가 footer.html 파일을 수정했습니다. 작업한 사항을 commit 하기 위해 먼저 staging area에 작업한 파일을 추가해주세요.

git add footer.html

git commit -m 'footer 수정'

페어도 footer.html에 변경한 사항이 있다고 합니다. 내 커밋을 Remote에 푸시하기 전에 페어의 코드를 내 컴퓨터로 받아올 수 있을까요?

git pull pair main

충돌이 생긴 부분의 수정을 완료했어요! 다시 Remote Repository에 Push 하기 위해서 수정한 파일을 staging area에 추가해주세요.

git add footer.html

충돌이 해결된 후 staging area에 올라간 파일은 자동으로 commit 메시지가 생성됩니다. 자동 생성된 commit 메시지를 적용하는 명령어를 입력하세요.

git commit

다음과 같이 merge commit 메시지가 자동으로 생성됩니다. 이제 내 Remote Repository에도 Local Repository의 내용을 반영합시다.

git push origin main

Capter 3. 브랜치

Github 에서 공동 프로젝트 Repository를 생성했어요. 각자의 Repository로 Fork 하고 clone 을 받았습니다. 내가 맡은 회원가입 기능을 구현하기 위해서 feat/signup 이라는 브랜치를 생성하고 해당 브랜치로 이동해 볼까요?

git checkout -b feat/signup

2) [브랜치명]으로 체크아웃(이동)

$ git checkout [브랜치명]
$ git checkout -b [브랜치명]  # 브랜치만들고 바로 이동

feat/signup 브랜치를 만들었습니다. 생성한 브랜치 목록과 내가 현재 어떤 브랜치에 있는지 확인해 봅시다.

git branch

기본 회원가입 기능 구현을 완료했습니다! 여기에 추가로 페이스북으로 가입하기 기능을 만들고 싶어요. 구현해놓은 기본 회원가입 기능이 망가질 수도 있으니 feat/signup-oauth 브랜치를 하나 더 만들어서 작업해 볼까요?

git checkout -b feat/signup-oauth

소셜 회원가입 기능까지 구현을 완료했습니다! 구현한 기능을 feat/signup 브랜치에 병합하려고 합니다. 먼저 feat/signup 브랜치로 이동하세요.

git checkout feat/signup

feat/signup-oauth 브랜치의 내용을 feat/signup 브랜치로 병합하는 명령어를 입력하세요.

git merge feat/signup-oauth

$ git merge [브랜치명]
$ git merge [브랜치명] --edit // 병합 후 바로 vi 편집기가 나오면서 커밋 메시지 수정 가능
$ git merge [브랜치명] --no-edit // 커밋 메시지 수정없이 바로 병합

회원가입 기능 구현이 완료된 feat/signup 브랜치를 Remote Repository로 업로드하세요.

git push origin feat/signup

구글 로그인 기능도 추가를 해 보려고 시도하다가 어려워서 그만두었습니다. 작업하던 코드를 잠시 다른 공간에 저장해 둘 방법이 있을까요?

git stash

profile
다들 좋은 하루 되세요

0개의 댓글