$ git remote add <name> <url>
: <url>
에 repository url을 넣고 해당 repository의 이름을 <name>
으로 설정함
-v
옵션으로 단축이름(name)과 URL을 함께 볼 수 있다.
기존 파일에서 수정이 발생하면 branch를 새로 만들어서 작업하게되며 브랜치 이름은 feature_[NAME]과 같이 만드는 것을 권장한다.
git checkout
: 브랜치간 이동
변동사항을 add하면 stage 상태가 되는데 staging이란 commit이 되기 전의 상태를 의미한다(변경사항 확정전). commit을 하게되면 HEAD로서 최종 확정본이 된다.
merge를 할 때 서로의 branch에서 같은 부분을 변경했을때 발생한다. 충돌이 일어난 부분은 일일이 확인해서 파일을 직접 수정해야한다.
[참고]
https://rogerdudler.github.io/git-guide/index.ko.html
https://stackoverflow.com/c/wecode/questions/299
https://velog.io/@devzunky/series/Git
git init
하기git init
을 하게되면 .git
이라는 숨겨진 폴더가 생성되며 이것이 생김으로써 git을 사용하여 변경사항을 추적하고 관리할 수 있게 된다.
git clone
으로 respository에 있는 내용 다운받기wecode에서 초대한 respository의 url을 클론했더니 해당 repository가 다운로드 되었다.
git branch
로 branch 생성하기처음에 오류가 났던 이유는 내가 만든 폴더 안에서 branch를 생성하려고 했었기 때문이었다. 내가 다운로드 했었던 폴더로 들어가서 branch를 생성해야 했다.
git branch
로 branch 목록 보기*
은 현재 접속해있는 branch를 의미한다.
git checkout
으로 branch 이동하기checkout 뒤에 이동하고 싶은 branch이름을 적으면 이동 가능하다.
add
(staging)하기bhl.md
라는 파일을 생성하고 git status
를 해보니 add되지 않은 새로운 변경사항이 빨간색으로 나타났다.
git add .
(.은 변경이 발생한 모든 파일을 포함한다는 뜻)로 add를 하고 git status
를 다시 해보니 staging이 되어 초록색으로 변했다.]
git checkout
으로 로컬 변경내용 되돌리기add한 후에 다시 해당 파일을 수정하면 변경사항이 추가된다. 만약 제대로 변경했다면 git add
로 다시 staging해주면 되지만 잘못 수정한경우라면 git checkout -- [FILE_NAME]
으로 수정하면 된다. 이 명령을 수행하면 파일이 수정하기 전으로 돌아간다.
git commit
으로 커밋하기git commit -m "message"
로 커밋을 하면 push될 준비가 완료된다. 아직 remote repository에는 올라가지 않았다.
git remote -v
로 origin 확인하기우리는 기존 원격 저장소를 clone(복제)했었기 때문에 origin이 clone한 저장소로 설정되어 있지만 만약 그렇지 않은 경우라면 remote repository의 주소를 git에게 알려주어야 한다:
git remote add origin <원격 서버 주소>
git push
로 remote repository에 파일 올리기feature/bhl branch에서 커밋한 내용을 origin의 remote repository에 올린다는 의미이다.
팀원들이 각자 push한 파일들이 remote repository로 업데이트 되었다. 이 사항들을 받아오려면 다시 master로 checkout하여 pull을 해와야한다.
pull을 한뒤 ls
를 해보니 local repository가 remote repository의 최신 상태로 업데이트 된 것을 확인할 수 있다.
이제는 원래 있던 README.md
파일을 바꾸고 수정한 내용을 병합(merge)해야한다.
다른 내용을 수행하기 때문에 brach를 새로 생성해주었다.(업데이트가 완료되면 branch를 바꿔주는 것이 좋다고한다.)
방식은 아까와 동일하게 변경 내역을 origin에 push해주었다. pull request는 github로 가서 직접 해야한다.(pull request를 하는 이유는 master branch를 관리하는 쪽이 request를 승낙하고 merge를 진행할 수 있기 때문이다.)
pull request를 날렸을때 발생한 문제는(pull reqeust를 승낙한 상황) 다른 팀원들도 나와 동일한 파일을 수정해서 push했다는 것이다. 파일의 동일한 부분을 서로 변경한 경우에는 conflict(충돌)이 발생하여 merge(변경된 내용이 적용)가 진행되지 않는다.
conflic가 발생한 후 master를 pull해보면 충돌이 발생한 내용을 확인할 수 있다. README.md
에 병합 충돌이 발생했다고하니 해당 파일을 확인해보면 =========
로 구분되어 어떤 부분이 충돌했는지 확인할 수 있다.
충돌된 부분을 수정하고 다시 저장한뒤 add, commit, push를 진행하고 pull request를 하면 충돌되는 부분이 사라졌기 때문에 수정한 내용으로 merge가 된다.