git clone
으로 레포지토리와 local 폴더 연결.
그런데 local를 뒤적여보니 레포지토리와 동명의 폴더들이 사방에 존재.
- desktop에도 abc 폴더가 있고, abc폴더 속에도 abc폴더가, 하다못해 qwe폴더 속에도 abc폴더가 있고..
요약 :
git remote -v
clone을 이곳저곳에 해둬서 헷갈리면, 원격 끊기부터
git remote remove origin
입력 후,
git remote -v
로 원격 끊김 확인
cd 원하는 폴더 장소
cf. 하위 폴더로 한 번에 이동하려면
/
를 기준으로 쭉 입력 (ex. cd desktop/hello/abc
)
mkdir 새 폴더 이름 (or 기존 폴더 사용 시 과정 생략)
git clone 레포지토리 주소 (or 기존 폴더 사용 시 {주소}로 입력)
git init
git remote add origin 레포지토리 주소
이후엔 두 방법 중 택일.
git add > commit > push
혹은
git pull origin master --allow-unrelated-histories
위 내용이 복잡하다면
아예 모든 폴더를 삭제한 후,
cd 원하는 위치
mkdir 로컬에서 쓸 디렉토리명
cd 로컬에서 쓸 디렉토리명
git clone 레포지토리 주소
위내용을 순서대로 입력.
이유는 크게 두 가지다.
cd 이동할 위치
를 설정하지 않고 냅다 클론유의사항
1.git clone 레포지토리 주소
는 한 번만 하면 유지되므로, 다른 레포지토리와 원격 연결할 때가 아닌 이상 생략하기.
2. 긴가민가할 땐 현재 위치 확인(pwd
) 후 진행.
3. 로컬에서 디렉토리 바꾸면git clone 끊기 git remote add add > commit > push
순으로 진행
이 명령어로 .git
폴더가 생겨서 git을 관리할 수 있다.
하지만 레포지토리가 생긴 건 아니다.최초 1회 commit
을 통해 main
branch가 생기는데, 그게 있어야 레포지토리가 생성된다. 그래서 README.md
등 어떤 파일이든 해당 디렉토리에 add-commit 해야 한다.
이토록 긴 과정을 한 방에 줄여주는
: git init
+ git remote add
+ git fetch
+ git checkout
새 레포지토리 생성 + 레포지토리에 URL 추가 + 그 URL에 있는 모든 branch를 local로 가져옴 + local에 main branch의 모든 파일 생성
terminal에서 git에 관한 명령
을 내리지, local의 폴더나 파일 자체를 변경하지 않는다는 걸 몰랐다. git과 local이 서로 주고받긴 해도 로컬 디렉토리에 접근해서 클론하고 커밋하고 이러다 보니까 원격 저장소든 로컬이든 다 터미널로 해결한다고 잘못 생각했다.
terminal 사용에 익숙해져야 한다는 생각으로 모든 과정을 여기서 처리하려다 보니 되려 시야가 좁아졌던 것 같다.
git init은 레포지토리를 새로 생성할 때 쓴다고 수업에서 들었는데, 같은 표현이라 그런지 clone과 구분 지어 이해하기 어려웠다. 명칭이 달라서 기능이 다르겠거니 예상하는 거 외엔.. 그런데 첫번째 커밋을 해야 main 브랜치가 생기고, 메인이 있어야 레포지토리가 생성된다는 게 신기하다.
git파일이 생기는 것은 또 뭘까?
숨김 상태라서 안 보인다는 사실은 어딘가에서 읽었는데 그게 생김으로써 뭐가 달라지는 건지 모르겠다. git을 관리할 수 있다면 수정, 삭제 등을 할 수 있다는 건가? git은 파일을 관리하는데, 이건.. 파일을 관리하는 git을 관리한다..? 단어만 같고 쓰임은 다른 게 아닌가 싶고. 더 조사해봐야 한다.
Do I need to do 'git init' before doing 'git clone' on a project?
Git 개념 - init, clone
[Git] 비어있지 않은 로컬 저장소로 Clone하기