[Git] Github 으로 협업하기

Yuhallo·2023년 1월 9일
0

JavaScript

목록 보기
6/9
post-thumbnail

🧡 Git Repository

💚 Local Git Repository

Git init

  • touch index.html style.css index.js 로 파일을 생성할 수 있습니다.

Git add

  • 파일을 git 관리하에 두는 것입니다. git add 경로명 으로 staging area로 옮길 수 있습니다. staging area는 commit하기 전에 저장하고 싶은 코드를 모아두는 곳입니다.
  • 만약 터미널 현재 위치가 Git repository를 생성한 directory(폴더)라면 git add index.html과 같이 파일을 옮길 수 있습니다.
  • 변경된 모든 파일을 한 번에 추가하려면 git add .을 입력합니다. (.)은 현재의 경로입니다.
  • staging을 취소하려면 m --cached (파일명)을 입력합니다.(unstaging)

Git status ⭐️

  • repository의 상태를 확인합니다. 잘 옮겨 졌다면 파일명이 초록색으로 표시됩니다.
  • git repository가 없는 폴더에서 명령어를 입력하면 아래 메시지를 출력합니다.
fatal : not a git repository (or any of the parent directories) : .git

Git commit

  • staging area의 코드들을 저장하고 용도를 적어둘 수 있습니다.
  • 커밋 전에는 항상 git status를 사용해 상태를 확인합니다. addcommit하고자 하는 파일이 들어 있다면 git commit -m "(변경사항에 대한 설명)"을 입력합니다.
  • 커밋은 작은 단위로 자주해야 기록이 상세해 이전 기록을 더 쉽게 복원할 수 있고, 누가 코드를 수정했는 지 파악하기 쉽습니다.
  • 커밋메시지는 구현한 기능이 확인 가능하고, 정확한 기술용어를 사용해 짧고 간결하게 작성합니다. 동료 개발자가 참고할 수 있기 때문입니다.
  • git commit만 입력하면 자동 생성된 commit 메시지를 적용합니다.
  • 커밋한 파일에서 오타를 발견해 수정해야 하는데 불필요한 커밋을 하고 싶지 않을 때, 커밋한 기록을 되돌리기 위해서는 git reset HEAD~1 (혹은 git reset HEAD^1 ,git reset HEAD^) 명령어를 입력해서 되돌립니다.
  • 커밋 로그를 확인하기 위해서는 git log 명령어를 입력해 확인할 수 있습니다.

💚 Remote Git Repository

생성하기

  • github 에서 New버튼을 눌르고 원하는 이름을 입력하여 생성합니다.
    • 이름은 로컬 리포지토리 폴더와 같게 설정하면 좋습니다.
    • public/ private 여부를 체크합니다.

Git remote

  • 원격 Repository를 다루기 위한 명령어입니다.

  • 새로 만든 Github repository를 기준으로 local 과 remote repository를 연결합니다.

    • origin : name자리로, 앞으로 로컬 리포지토리에서 원격 리포지토리 주소를 대신할 이름입니다.
    • git@github.com:yuhallo/생성한레파지토리명.git : url 주소자리로, 원격 리포지토리의 주소를 넣습니다.(yuhallo는 필자의 깃허브 아이디이고, 이 자리에 본인의 깃허브 아이디를 넣으면 됩니다.)
  • git remote -v로 잘 연결되었는지 확인할 수 있습니다. ⭐️

  • 동료와 협업하며 지금까지 main 브랜치에 커밋한 기록을 remote repository에 올려 공유하고 싶다면 git push origin main으로 기록을 올립니다.

  • 동료가 내 리파지토리를 fork했을 때, 동료의 리파지토리를 내 local에 등록하려면 git remote add coworker(이름) https//github.com/coworker/test(동료의 리파지토리 링크)를 입력해 등록합니다.

  • 잘 연결되었는지는 git remote --verbose (혹은 git remote -v)로 확인합니다.

Git push

  • git push <remote> <branch> : local repository의 기록을 remote repository의 origin의 main 브랜치로 push 합니다.
  • git push -u origin main명령어를 입력하여 내용을 업데이트 합니다.

💚 Fork

  • 기존에 잘 만들어진 프로젝트에 새로운 변화를 시도하기 위해 repository를 복사하는 것을 말합니다. 기존 프로젝트에 영향을 미치지 않고 작업할 수 있습니다.
  • 라이센스도 같이 복사되므로 공개되어 있고 라이센스 명시가 제대로 된 프로젝트는 라이센스만 잘 지켜 포크하면 문제 없이 사용할 수 있습니다.

clone, push, pull request

  • pull request는 commit, push 후에 public 프로젝트에 내가 한 수정을 확인하고 괜찮으면 추가해달라고 요청하는 것입니다.
  • clone: fork한 리파지토리를 본인의 local 에서 작업하기 위해서 git clone (복사한 깃헙 리파지토리 주소) 명령어를 입력합니다.
  • pull : 내 커밋을 push하기 전에 동료가 작업한 내용을 합치기 위해 동료의 코드를 내 local로 받아올 수 있습니다. git pull coworker main(동료 본인의 remote repository에 올려 놓은 내용을 가지고 옵니다.)
  • 특정 커밋 시점으로부터 각기 다른 커밋을 만들면 기본적으로 자동으로 merge됩니다. 내 remote repository에도 local 내용을 반영하기 위해 git push origin main을 입력합니다.
  • 프로젝트의 주인이 요청을 보고 수락(merge)하면 프로젝트에 contributor(기여자)가 될 수 있습니다.

💚 브랜치

브랜치 생성

  • git branch (브랜치명) 으로 생성하고 git switch (브랜치명)으로 이동할 수 있습니다.
  • branch를 생성 후 바로 이동하기 위해서는 git checkout -b (브랜치명)으로 할 수 있습니다.
  • git branch명령어를 입력해 생성한 브랜치 목록과, 현재 어떤 브랜치에 있는 지 확인할 수 있습니다.

기본 브랜치 명 변경
git config --global init.defaultGranch main
이전에 깃헙을 만들었다면 기본 브랜치명이 master입니다. 현재는 모두 main으로 생성되고 있습니다. 변경하고 싶다면 위의 명령어를 적어서 바꿀 수 있습니다. main 위치에 다른 이름을 넣을 수도 있습니다.

브랜치 병합

  • git merge (병합할 브랜치명) 을 입력하여 병합할 수 있습니다. 병합 전에 병합될 브랜치(상위)로 이동한 후에 명령어를 입력하여 병합합니다.

push(remote repository에 업로드)

  • git push origin (브랜치명) 을 입력해 완료된 브랜치를 업로드 합니다.

임시저장소

  • 작업하던 코드를 잠시 다른 공간에 저장해두기 위해서는 git stash 명렁어를 입력합니다.
  • stash는 '넣어두다, 저장해두다'라는 의미로 작업 중 브랜치를 옮겨야 하는데 커밋하기 싫은 경우나, 개발브랜치에서 작업해야 하는데 마스터 브랜치에서 작업을 했을 경우에 사용합니다.
  • git stash list로 저장이 잘 되었는지 확인할 수 있습니다. 이후 다시 불러와서 작업을 하고싶을 때 명령어를 입력해 확인후 git stash pop으로 불러 올 수 있습니다.

    🎀 git stash pop vs git stash apply
    둘 다 작업 내역을 불러오는 명령어 입니다. 다만 pop은 불러온후 다시 리스트를 출력하면 리스트가 삭제되어 있는 반면에, apply는 삭제하지 않고 내용만 불러오는 차이점이 있습니다.




profile
개발자가 되고 싶어 둥당둥당

0개의 댓글