인자한 개발로그__[Git: git work flow2]

Jaewon Lee·2020년 10월 20일
1

Git

목록 보기
2/2
post-thumbnail

# Intro

오늘은 git과 github를 사용하는 사람이라면 꼭 사용할줄 알아야하는 기본적인 skill에 대해 총 정리 시간이다! 크게 git과 github 두 갈래로 나눠서 설명을 해야 될 것 같다. git과 github 각각의 저장소에서 사용되는 명령을 구분해야 work flow를 이해하기 쉬운 것 같다. 나만 그럴수도ㅋ

아무튼 머리속에 정리도 되어가는 것 같으니 빨리 정리하고 실습 ㄱㄱ

오늘은 운동도 해야되니 빠르게 조지러 ㄱㄱ

ㄱㄱ! 🏃🏃


1. Git


1. Git 저장소 만들기

  • 터미널에서 git의 관리를 받게 할 Directory로 이동! (내가 생각하기에 git 저장소 = local repository , 틀리면 알려주숑 ㅠㅠ)
  • git init 입력

2. Commit (현재 시점을 저장하기)

  • 나중에 commit을 한 시점으로 돌아올 수 있기 때문에 commit을 하는 것이다.
  • git add [file_name] -> git commit -m [message]

참고
git log : commit 내역을 조회한다. (내역을 조회하면 나오는 일련번호 앞 6자리는 과거 commit 시점으로 돌아갈 때 사용된다.)


3. 과거에 commit 시점으로 돌아가기

Reset

  • 돌아갈 시점 이후에 commit은 완전히 지운다.
  • git reset [돌아갈 시점의 commit 일련번호 앞 6자리] --hard

Revert

  • 돌아갈 시점 이후에 commit을 남겨두고 돌아간다.
  • git revert [취소할 시점의 commit 일련번호 앞 6자리] -> :wq 입력하여 commit message 작성하고 vi editor 나옴

두 개의 차이점

  • Reset은 입력한 commit으로 돌아가는 것이고, Revert는 입력한 commit을 취소하고 바로 전 commit으로 돌아가는 것에 차이가 있다는 것을 알아두자.

4. Branch 만들기

  • 최초로 생성된 타임라인이 master라는 이름을 가진다. 그 이후는 개발자 맘대로 정함ㅋ
  • git branch [branch_name] : branch 생성
  • git checkout [branch_name] : 해당 branch로 이동
  • branch를 만들 때는 이전의 commit된 내용을 그대로 가져와서 만든다.

5. 다른 Branch를 병합하기

Merge

  • merge를 진행할 branch로 이동 : git checkout [branch_name]
  • git merge [병합할 branch_name]

Rebase

  • rebase를 진행할 branch로 이동 : git checkout [branch_name]
  • git rebase [병합할 branch_name]

두 개의 차이점

참고
git log --graph --all --decorate : 현재 branch 상황 조회하기


6. Branch 삭제

  • git branch -D [삭제할 branch_name]

2. Github


1. Github 저장소 만들기

  • https://github.com/ 접속!
  • 홈페이지 왼쪽에 create new repository, 혹은 나의 repository에서 new 클릭!
  • git 저장소와 같은 이름으로 github 저장소 생성 (내 생각에 github 저장소 = remote repository = 원격 저장소)
    • 사용 목적에 따라 public(전체공개), private(쉿! 비밀~ㅋ)중 택 1
    • Description 작성 (선택사항)

2. Github에 commit 올리기

  • git remote add origin [github 저장소 URL] : 1번에서 만든 github 저장소를 'origin'이란 이름의 원격 저장소로 설정

  • git push origin master : origin이라는 원격 저장소에 master branch를 반영한다.


3. github에 업로드하지 않을 파일 설정

  • .gitignore 파일 생성
  • .gitignore 파일안에 다른 파일명 적으면, commit을 하여 push해도 github 저장소에 반영되지 않는다.

4. github 저장소 내려받기

  • git clone [저장소 URL]
  • private 사용자 초대 : github repository의 setting -> collaborators -> 초대

5. 페어와 협업할 때 작업 주고 받기

  • (중요)사전에 자신의 페어가 원격 저장소에 업데이트 시킨 내역이 있는지 확인하는 것이 중요하다.
  • git fetch -> git status -> 페어가 원격저장소의 업데이트 시킨 내역에 비해 나의 local이 몇개의 commit이 뒤쳐졌는지 확인한다.
  • git pull origin master : 원격 저장소 origin의 커밋을 master 브랜로 가져와 반영한다.

6. 페어와 협업할 때 Branch 주고 받기

  • (중요)github 저장소에서 내려받아야할 branch가 있는지 확인하는 것이 중요하다.
  • git fetch -> git branch -a -> github 저장소에 업데이트 된 branch 확인
  • git checkout -b [branch_name] origin/branch_name : 원격 저장소 origin의 업데이트 된 branch를 지정한 branch_name으로 생성한 후, 이동한다.
  • branch는 pull로 가져오지 않아!!!!

참고
git checkout -b [branch_name] : branch 생성 후, 해당 branch로 이동
git push origin [branch_name] : github에 commit을 올리듯이, origin 뒤에 branch_name만 적어주면 된다.
git branch : local에서 branch 확인
git branch -a : local과 원격 저장소의 branch를 전부 확인


7. (중요)충돌 해결하기

  • 페어 사이드에서 파일을 수정하여 github에 push했는데, 내가 이를 pull 받지 않은 상태에서 같은 파일을 commit한 상태
  • 충돌이 발생하면 current change와 incoming change와 both 중 택 1
  • 선택했으면 저장하고, git add, git commit, :wq 차례로 조지기 ㄱㄱ

8. Github 저장소의 branch 제거하기

  • git push -d origin [지울 branch_name]


3. 정리


  1. Git과 Github, 각각의 저장소를 구분해서 command를 생각해보자

  2. Origin : github 저장소 (다른 사람의 github 저장소는 다르게 설정해주면 된다.)

  3. Master : 최초로 생성된 branch

  4. Head : 현재 작업공간, master의 가장 최근 commit

  5. 페어와 협업할 땐 충돌을 피하기 위해서 github 저장소에 업데이트가 된 branch, commit을 항상 local로 먼저 내려받는 것이 좋다.


# Work Off


퇴근!!!!!!!!! 운동하러 가즈아~!!!!!!!😆😆😆😆🏃🏃🏃🏃🏃

기본기가 탄탄한 풀스택 개발자가 되는 그날까지 🔥🔥🔥

profile
Communication : any

0개의 댓글