Git and Github (2) - git branch, checkout, pull request, rm -rf

xsldihsl·2024년 4월 3일
0

Git and Github

목록 보기
2/3

오늘은 Github 이용 시 발생한 문제들에 대해 troubleshoot 을 하며 새로 알게된 것을 리뷰해보도록 하겠다.

Contents

  1. git branch
  2. git checkout
  3. git push origin and pull request
  4. git rm -rf

1. git branch

우리는 git 에 여러 branch 를 만들 수 있는데, default 는 "main" 이라는 이름의 branch 이다.

  • 그렇다면 왜 여러 branch 를 만들곤 하는가?
    이 질문에 대한 답은 여러 명이서 협업하는 상황을 생각하면 된다. 만약 A 가 올려놓은 코드를 B 가 수정하여 다시 올리고자 할 때를 가정해보자. B 가 main branch 에 바로 업로드한다면 이미 이전에 A 가 해당 repository 에서 clone 한 코드가 있기 때문에 inconsistency 가 발생하고, 이후 git 은 main branch 에 push 하는 것을 거절할 것이다.

따라서, git 을 이용할 때는 inconsistency 문제가 있을 수 있으므로 여러 개의 branch 를 만들어 main 이 아닌 다른 branch 에 먼저 push 후 main 과 merge 해주는 것이 좋다. 이 때, 실무에서는 branch 를 login, register 등 기능별로 나누는 것을 지향한다고 한다.


2. git checkout

예로 들어 "devs" 라는 branch 를 만들기 위해 우리는 다음의 command 를 터미널에 작성할 수 있다. 여기서 -b 는 branch 를 나타낸다.

git checkout -b dev

이후 어떠한 branches 가 만들어졌는지 확인하기 위해서는 git branch 를 사용하자.

git branch

그렇다면 우리는 main 과 더불어 devs 라는 branch 가 하나 더 생겼음을 알 수 있다. 이 때 초록색으로 highlight 된 것이 현재 branch 이다. 만약 devs 라는 branch 로 이동하고 싶다면 다음의 -b 를 제외한 command 를 작성하면 된다. 이후 다시 git branch 를 활용 시 현재 branch 가 devs 로 바뀐 것을 알 수 있다.

git checkout devs

3. git push origin and pull request

devs 라는 branch 를 만들었으므로 앞으로 우리는 변경한 코드를 git 에 push 하기 위해 devs 에 먼저 git pushpull request 를 통해 main 에 merge 할 것이다.

git push origin devs

이제 github 으로 이동해 devs 에 변경된 파일이 잘 올라갔는지 New pull request 를 통해 확인해보자.

이 때 main 과 devs 를 비교하기 위해 다음과 같이 설정해주면 된다. 변경된 코드를 accept 할 시에는 github 에서 main 과 merge 하면 된다. 이를 통해 우리는 github 이용 시 collaborators 간에 발생할 수 있는 업로드 문제를 handle 할 수 있다.


4. git rm -rf

로컬 컴퓨터에 있는 파일을 삭제하고 싶을 때 우리는 rm -rf 를 이용한다. 하지만 만약 github 에 올라간 파일과 로컬 파일을 동시에 삭제하고 싶다면? rm -rf 앞에 git 을 붙여주면 된다.

git rm -rf <filename>

해당 command 를 성공적으로 실행했다면 git status 를 통해 deleted 목록을 확인할 수 있다.

deleted: <filename>

만약 git status 상에서는 deleted 됐다고 나오지만 github repository 에서는 해당 파일이 여전히 남아있다면? 문제 될 것은 없다. 아직 아무런 new pull request 가 없어서 반영이 되지 않았을 뿐, 다음 pull request 시 해당 파일들은 삭제돼 있을 것이다. 참고로 github 에 업로드하면 안되는 파일 종류들이 있는데 db 도 그 중 하나이다. 실제로 파일을 직접 올리는 대신 db server 를 이용한다고 한다.


0개의 댓글