Git] Terminal : 협업) 내 코드를 처음 organization에 올리기
1. 최초의 업로더가 아니라면 일단 organization에서 프로젝트를 clone한다.
git clone (레파지토리 url).git
2. 클론한 폴더에서 다시 이동해 작업을 시작한다.
3. 리모트 업데이트
리모트 연결 상태를 확인하고
git remote -v
잘 연결되어 있다면 아래 명령어로 원격 저장소의 변경사항을 업데이트 받는다.
git remote update
4. 업데이트가 됬다면 리모트의 branch를 확인해본다.
git branch -r
5. checkout으로 branch를 이동하면 local의 저장소의 파일도 바뀌는 것을 볼 수 있다.
git checkout origin/(브랜치이름)
*브랜치를 사용하여 어떤 작업을 수행하려면, 이 브랜치를 사용 하겠다고 명시적으로 지정해 주어야 합니다. 이 때 사용하는 명령어가 바로 checkout
6. Commit.
클론 폴더에 내 파일을 옮겨두고 아래 명령어를 실행한다. 메세지는 커밋 상황에 따라 작성.
Add 부터 Commit까지는 기존 방법과 동일하다.
git add .
git commit -m "메세지"
7. push
만약 내 로컬 branch를 remote로 붙이려면 기존 push하는 방식 그대로 진행하면 되고
git push origin (로컬브랜치)
local branch와 remote branch를 연동하는 거라면 아래 방식으로 연동해주고 push하면 된다.
git branch --set-upstream-to (로컬브랜치) origin/(리모트브랜치)
그러면 아래처럼 github에 올려진 것을 확인 할 수 있다.
*트러블슈팅1
remote: Permission to 1016 website/1016 website.git denied to littlezero48.
확인) 위와 같은 메세지와 함께 Push가 되지 않는다
원인) 자격 증명 문제로 발생하는 권한 문제
해결)
제어판 > 사용자 계정 > 자격 증명 관리자 > 일반 자격 증명 편집
에 들어가 사용자 이름에 ID와 암호에 token 값을 넣어주면 된다.


Token값은 github 홈페이지에서 Setting > Developer settings > Personal access tokens
에서 토큰을 발급할때 주어지는 값을 넣어주면 된다.
토큰 발급시 만료 시간과 Scope(범위)를 잘 선택해야하며 일단 여기선 repo에 모든 권한을 주는걸로 발급해서 진행했다.

주의) Token값은 발행시 단 한번만 노출되기 때문에 잘 저장해둬야 한다.
*트러블슈팅2
fatal: a branch is expected, got remote branch 'origin/Login_001' hint: if you want to detach head at the commit, try again with the --detach option.
확인) 위와 같은 메세지와 함께 Push가 되지 않는다
원인) push할때 종종 나타나는 오류로 HEAD가 branch에서 떨어져 나와있을 경우에 해당한다. 즉, HEAD가 branch를 통해서 commit을 참조한 것이 아닌 직접 commit을 참조하고 있는 상태이다.
일반적으로 HEAD > branch > commit 으로 참조 순서를 가진다.
그러나 이경우 HEAD > commit으로 참조하여 checkout하고 있는 것.
해결) 이 경우 임시 브랜치를 만들어 Checkout하고 다시 원래 작업하던 branch로 Checkout하면 된다.
git checkout -b (임시브랜치이름)
참조:
https://devcamus.tistory.com/6
Detached Head
깃으로 버전관리 하다보면 작업내용을 commit하고 원격저장소에 push할 때, detached head 상태에 있다며, push가 reject될 때가 있다. 빨리 저장소에 push해야하는 상황에서 이런 오류를 마주치면 당황하
devcamus.tistory.com