사이드 프로젝트에 참여하게 되었다.
Git 형상관리를 하기로 했는데, Organizations에 member로 합류하게 되었는데, 어떻게 내 branch를 만들지?
1. Organizations에 있는 repository에 가서 주소를 복사, 개발을 시작하기 원하는 폴더 경로에 git clone을 한다.
terminal > git clone [URL]
1.1) git clone 은 아래의 명령들을 포함한 작업이다.
> git init
> git remote add origin [URL]
> git fetch origin master
경로에 있는 폴더를 빈 Git 저장소로 초기화(git init) 하며, 현재 Git 저장소에 프로젝트 원격 저장소(origin)를 추가한다
이 때 origin은 git clone으로 생성 시 default로 origin으로 생성되지만, 아래 순서대로 한다면 origin이 아닌 다른 이름으로 선언할 수 있다. 이후 원격 저장소의 master 브랜치 데이터를 로컬에 가져와 저장한다.
🤔) origin이 뭐에요?
: 뒤에 있는 긴 주소 [URL] 를 대신에서 짓는 대명사 라고 생각하면 된다.
🤔) 데이터를 가져오는건 pull 아닌가요?
fetch는 데이터를 로컬에 가져오기만 하고,
pull은 원격 저장소의 내용을 가져와 자동으로 병합(merge)작업을 한다.
고로, fetch 는 맨 처음 코드를 가져올 때, pull은 이후에 사용하는게 일반적이다.
로컬 데이터와 병합하고 싶지 않을 경우에도 fetch를 사용한다.
2. git branch 만들기.
초기에는 git branch 명령어로 확인하면 *master만 있을 것,
git branch -a 명령어로 원격, 로컬 저장소의 branch를 모두 확인할 수 있다.
> git checkout -b [Branch]
2.1) 위 git checkout -b [Branch] 명령어는
- git branch [이름] ( '이름' 이라는 이름의 branch 생성 )
- git checkout [이름] ( '이름' branch를 사용 )
명령어를 합친 것이다.
3. 생성한 branch를 origin에 push 하기
생성한 branch로 옮겼다면, 어떤 것이라도 변경한 후 커밋을 해보자.
> git commit -a -m "변경되었음"
> git push origin [Branch]
3.1 ) 위 git commit -a -m "변경되었음" 명령어는
- git add .
- git commit -m "변경되었음"
명령어를 합친 것이다.
🤔) add . 은 뭐에요?
add는 변경한 파일중 어떤 것을 commit 에 추가할 지 설정해주는 명령어이다.
ex) index.js 파일을 수정했으면 git add index.js
그렇다면 뒤에 .은 변경이 생긴 모든 파일을 추가한다는 뜻 이다.
3.2) origin에 푸쉬하기..? 이거 큰일나는거 아닌가요?
아니다. master에 병합하는거 아니니 겁먹지말고 Do it
❗❗ ) 내가 겪은 Issue
아무리 시도해도 Repositoty not found 가 나오길래, 내가 user로 추가된게 아닌지 git config --global --list 로 확인해보니 등록은 되어 있는데 왜 안되는지, 싶었는데 Organizations 내에 권한(member로 설정) 문제였다.
owner로 설정하니 이상없이 push되었다.
4. 다른 branch와 merge하기.
merge하고자 하는 branch와 동일한 이름의 branch를 생성한 후 원격 저장소의 데이터를 pull 한다.
- git checkout -b [Other]
- git pull origin [Other]
여기서 Git 전략에 따라 갈리는데, git flow 전략에서는 dev라는 공통 branch를 생성해 이곳에 merge를 하여 이상여부를 체크한다.
- git checkout -b dev
- git merge [Branch]
- git merge [Other]
잘 돌아가면 master branch에 merge 후 배포하면 된다.