git, github

Haebin Ethan Jeong·2020년 6월 3일
0

Local repo vs. Remote repo

  • Local repository: Where we save in to personal PC
  • Remote repository: Where multiple people share. Like a Cloud

How we commit

git flow

Unstaged Files

Staged Files

Commit

  • Modified -> staged -> committed
  • git commit -m은 변경된 파일을 HEAD에 반영됩니다. 이 변경 내용을 원격 서버로 올리려면 git push origin master. 여기서 maseter는 branch의 이름입니다.

  • git checkout -b feature_x 으로 "feature_x"이라는 가지를 만드로 갈아탑니다.
  • git checkout master로 master branch로 돌아갈 수 있습니다.
    -git checkout -d feature_x로 branch를 삭제할 수 있습니다.
  • Push: 평소에는 자신의 PC의 Local repository에서 작업하다가 자신의 소스코드를 공개하고 싶을 때, Remote repository에 업로드 합니다.
  • Pull 그리고 Remote repository에서 다른 사람의 소스코드를 자신의 Local repository로 가져올 수 있습니다.

git merge

git pull: local repository를 remote repository에 맞춰 갱신하는 명령

  • 이렇게 원격 저장소의 변경 내용이 로컬 작업 디렉토리에 받아지고 병합됩니다.

git merge 가지 이름: 다른 가지에 있는 변경 내용을 현재 가지에 병합하는 명령

Git commands

git init

  • Command that creates the git repository.
  • ‘git repo’

git add

  • Modified 상태인 파일들을 staged 상태로 옮길때 사용함.
  • git add .는 모든 파일을 옮김

git commit

  • Staged된 파일들을 commit 함
  • 코드를 의미있는 단위로 쪼개서 포장하는 것.
  • commit만 하면 내 컴퓨터에만 저장되어 있고, github사이트엔 아직 올라가지 않은 상태입니다. Push를 해야만 올라감.

git diff

  • 어떤 부분들이 수정되어있는지 보여줌

git log

  • Commit 내역 보여줌
  • a.k.a commit history

git rm

  • 파일을 git repo에서 삭제

git mv

  • 파일을 git repo 상에서 이동시킬때 사용

git branch

  • Branch 생성할때 사용

git checkout

  • Branch 간 이동을 의미

feature/처럼 슬래시로 구분된 이름을 달아주면 이 구분별로 브랜치를 묶어볼 수 있는 장점이 있습니다.

Pull requests: 다른 브랜치로부터 코드를 요청할 수 있음.

  • Merge pull request로 두 브랜치를 합칠 수 있음.

git checkout -- 파일 이름

  • 로컬의 변경 내용을 변경 전 상태(HEAD)로 되돌려줌.

git status

  • 그 git 안에 있는 모든 파일들을 보여줌.

실습 중 어려웠던 점

협업 중 conflict 발생했을 때, 고치는 법.

  • 다른 사람과 git을 통해 협업할 때, 다른 파일을 merge할 일이 생길 수 있습니다. merge 할 때, 그 파일의 내용이 다르면 conflict가 날 수 있습니다.

해결하는법

  • 일단 git checkout master로 통해 master로 이동합니다.
  • 그리고, git pull origin master로 github에 있는 상대방의 코드를 가져옵니다.
  • 상대방의 코드를 가져온 상태에서 git checkout feature/jhb1을 통해 제 local에 있는 현재 그 파일로 이동합니다.
  • README.md에서 conflict를 고치고 git add .를 하고 난 다음 commit을 합니다.
  • 마지막으로 git push origin feature/jhb1을 하면 github에 conflict이 해결된 파일이 있습니다.

주의할 점

pull할 땐 master로 이동해서 pull을 해야하고, push는 현재 위치로부터 push해야한다.

merge 할땐 하위 디렉토리에서 주로 merge한다. 실습에서 한 것으로 예를 들면 /hello/git_8/feature/jhb1에서 merge master를 해야한다. 당연한 것이, 하위 디렉토리가 상위 디렉토리에 맞춰야지 vice versa로 할 필요는 전혀 없다.

아직 모르는 컨셉들

터미널에서 git command를 이용하는 건 이제 익숙하지만, 아직도 Github에서 일어나는 일들은 헷갈린다.

github의 pull request는 무엇인가?

  • Pull requests le you tell others about changes you've pushed to a repo on Github.
  • Once a pull request is sent, interested parties can review the changes and even push follow-up commits.

Fork -> Clone -> Branch -> Make Pull Request -> Code Review & Merge Pull Request -> Pull on local terminal

profile
I'm a Junior studying Economics and Computer Science at Vanderbilt University.

0개의 댓글