본문 바로가기
💻 개발블로그/GIT

😎GIT사용 가이드!!

by August.J 2022. 2. 9.

😎 GIT명령어로 프로젝트 PUSH/PULL하기

첫 번째 팀 프로젝트에서 소스트리와 깃브랜치 하나로 협업을 했었기 때문에 모든게 눈에 보이는 소스트리에 익숙해져있었다. Conflict이 나도 별로 두려울게 없었고, 뭐가 달라졌는지 보여주는 소스트리가 너무나 편하고 익숙했다.
하지만 현업에서는 소스트리를 사용하지 않고, git을 사용한다고해서 터미널에 익숙해져야한다고 들었다. 에러날때만 만졌던 터미널인데... 하지만 차근차근 팀원들이 도와줘서 처음으로 git명령어를 입력해서 협업을 마쳤다!
프로젝트를 마치고 추가로 나의 레포지토리를 만들어서 이것 저것 만져보다 구글링한 명령어도 추가해본다.


👭 깃허브 협업하기

📍 git clone '레포지토리 주소'
📍 git checkout -b '브랜치명'


📣 깃허브 레포지토리 연결

📍 git remote add origin '레포지토리 주소'

다음과 같은 에러가 발생한다면 현재폴더에 .git의 정보를 담을 파일이 없기 때문이다.
fatal: not a git repository (or any of the parent directories): .git
📍 git init 을 입력하고 다시 명령어를 입력하면 레포지토리 연결이된다.


➕ git 브랜치 추가하기!

📍 git checkout -b '브랜치명'

깃 브랜치 생성 + 체크아웃을 동시에 한다.


🧐 나의 브랜치 확인하기!

📍 git checkout '브랜치명'


✍️git 브랜치명 변경하기!

📍 git branch -m '기존 브랜치명' '새로운 브랜치명'


🔽 PULL 받기

📍 git pull origin '브랜치명'
pull을 받을 브랜치명을 입력하여 해당 브랜치의 내용을 받는다.


➕ 내 파일 추가하기 (스테이징)

📍 git add .
모든 파일을 추가할 때 .을 붙여 디렉토리 자체를 올린다.

📍 git add '파일명.확장자명'
특정 파일만 추가할 때 . 대신 파일명과 확장자를 입력해 올린다. (예시: git add test.py)


💬 Commit 하기

📍 git commit -m "커밋내용"


🔼 PUSH 하기 / 강제 PUSH 하기

📍 git push origin '브랜치명'
해당 브랜치에 파일을 올린다. 에러 발생 시 에러가 발생한 파일의 내용을 확인한다.

📍 git push origin +'브랜치명'
브랜치명(fetch first)라는 에러문구가 발생한다. 기존 데이터 손실 우려로 푸시를 막는다고 한다.
해당 브랜치에 강제로 파일을 푸시한다.


🚫 PR이 되지 않을 때

📍 git checkout master //master브랜치로 checkout!
git branch main master -f //main에 master를 강제푸시
git checkout main //main브랜치로 checkout!
git push origin main -f //main에 강제 푸시

브랜치의 작업 내역이 합쳐지지 않아 PR을 할 수 없을 때가 발생한다. 작업시점이 다를 때 PR이 불가능하고 are entirely different commit histories. 라는 에러메세지를 github에서 알려준다.

인종차별적이라는 이유로 github에서 디폴트 브랜치명을 master에서 main으로 변경했다. 그래서 git에서 자동으로 master 브랜치를 디폴트로 가져가는 상황이라 브랜치가 꼬인다고 해야하나.



'💻 개발블로그 > GIT' 카테고리의 다른 글

Git으로 협업하기  (0) 2022.05.05