repository를 만들었다면, 이게 준비가 끝났다. cmd와 vscode를 통해서 Git으로 협업할 수 있다.
이후, 이 내 repo에 있는 저 초록박스 코드를 누르면, .git으로 끝나는 주소를 얻을 수 있다.
이 주소가 필요하다.
처음에 내 컴퓨터(로컬)에서 cmd키고 이 git으로 협업할 컴퓨터 주소로 간다. cd ~~ 사용
그리고나서
git clone [저 URL] < 이 명령어를 입력해준다.
그리고나서 code .을 통하든 아니면 vs코드로 해당 폴더를 열면
repo 처음 만들때 기본적으로 있던 README나 .gitignore이나 이런 것들이 보인다.
git status
입력시 뭐 변화가 있나 이런거 확인할 수 있다.
내가 파일 내에서 뭘 수정하고 나서 이걸 저장하려면 다음과 같은 과정이 필요하다.
git add .
git commit -m "커밋 메시지"
여기서 커밋메시지는 방금 수정한 내용이 뭔지 그런걸 일반적으로 써줌.
git push
이 마지막 push를 통해 로컬 환경에서의 수정된 코드가 웹상의 깃헙으로 수정되고 반영된다.
다른사람이랑 협업할 때는 Branch라는 기능을 사용한다.
지금은 아까 그 repository가 아니라 내 동료의 repository에 들어갔다고 가정하자.
(지금 case는 repo의 주인이 내가 아니다.)
일단 git clone으로다가 바뀐 주소를 입력해주고 작업을 시작한다.
4명이 하나씩 기능을 맡아서 개발을 진행한다고 치면, 이 4명의 수정된 코드가 하나의 파일이나 장소에서 작업하는 것보다 각각 개별적으로 떨어져서 작업하다가, 반영해야될 코드만 모아서 나중에 합치는 것이 좋다.
그래서 브랜치를 생성한다. 그리고 그 장소에서 내가 할 작업을 한다.
git branch 이름
내가 명명할 브랜치의 이름을 갖다가 써주면 된다. (얘는 main branch는 아니겠지)
그다음에 그 브랜치에 가서 작업을 할 것이라면
git checkout [내가 갈 브랜치 이름]
git switch [내가 갈 브랜치 이름] 이렇게 하면 branch를 이동할 수 있다.
내가 잘 이동했는지 확인하려면
git branch 를 입력해보자. 현재 내가 어디에 있는지 확인할 수 있다.
그 branch로 옮겨가서 작업을 끝냈다고 치자,
저장하고
git commit -am "커밋메시지" (이렇게하면 add .과 commit -m "커밋메시지" 한번에 하는 효과 있음)
그다음 내가 만든 브랜치를 협업하는 그 github에 올릴 때, 그냥 git push하면 될 거 같지만 안된다.
처음 내 브랜치를 원격 repository에 올리려면
git push --set-upstream origin [내가올릴 브랜치이름] 을 해줘야한다. 왜??
첨에 올릴때 내 로컬 환경의 git과 웹상의 github이 연결되어야 하기 때문에 그렇다.
저렇게 해서 잘 올라갔다 치자.
이번엔 내가 repo의 주인이고, 다른 사람들이 작업한 결과물들을 각자의 branch에 저장해놓았고, 이것이 웹상의 github에 반영되었다고 치자.
나는 반영된 코드들 중 내가 반영하고 싶은 코드들을 모두 반영하고 싶은 상황.
그럴땐 내가 코드를 모을 branch로 이동한다. (보통 main 이겠지)
그 후에 그 브랜치 위치에서 다음과 같이 입력한다.
git merge [merge 대상 브랜치 이름]
근데 보통 이 코드가 나의 main 브랜치와 차이나는 부분이 명확하다면 그 부분만 반영되어서 merge가 삭 되겠지만
차이나는 부분이 매우 많은경우 conflict가 발생한다.
이런 경우는 서로 다른 변경을 동일한 코드에 적용하려고 할 때 발생한다.
conflict 발생한 경우 VS코드에서 어떤 부분이 다르고 충돌되었는지 다 보여준다. 아주 친절하다.
그럼 내가 반영하고 싶은건 반영하고 빼고싶은 건 뺀다음에,
그 상태에서
git commit -am "커밋 코멘트"
git push 해주면 된다.
*추가 pull & push & commit
git의 웹상 repository에서 코드들을 받아와야 할 일이 있다. 업뎃차원에서
그럴때는 git pull 해주면 된다.
우리가 작업을 끝낸 후, ctrl +s를 눌러 저장하듯이, 로컬환경에 수정된 것들을 저장하는 도구는 commit이다.
commit하기 전에, 저장하기 원하는 파일들을 묶어주는 작업이 먼저 필요하다. 이것이 add 작업.
그리고 수정사항이 반영된 로컬에 있는 코드들을 웹상 remote repository 환경에 올려놓는 걸 push라고 부른다.
add > commit > push > 마지막엔 웹상에 잘 반영되었는지 확인 !