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