💻 개발 환경
- OS: macOS Monterey 12.7.6
- IDE: IntelliJ IDEA 2024.3.1.1 (Ultimate Edition)
❓ 궁금한 점
터미널에서 git remote repository(원격 저장소)를 생성할 수 있을까?
git 원격 저장소를 만들 때마다 매번 GitHub 사이트에 들어가서 설정하는 게 너무너무 귀찮다.
터미널에서 command line으로 적당히 해결하고 싶어!
❗️ 결론
안 된다...
무엇보다도, GitHub에서 발급하는 토큰에 repository 생성 권한이 없다.
🔍 과정
1. git local repository(로컬 저장소) 생성
git init
이러면 현재 디렉터리에 .git 디렉터리가 생성된다.
2. local에 파일 staging
동시에 프로젝트 탐색기에 있던 파일들이 붉은색으로 변한다.
이 파일들이 버전 관리가 되지 않고 있다는 뜻인데, 지금은 git repo를 만들어 놓고 파일들을 staging하지 않아서 이렇게 뜬다.
갈색으로 표시된 파일은 .gitignore 파일에 적혀있어서 git이 버전을 추적하지 않는 파일이다.
그래서 GitHub에 remote repository를 생성하고 push해도 이 파일들은 올라가지 않는다.
추적에서 제외하고 싶다면 지금이라도 얼른 .gitignore에 파일을 추가해 주어야 한다.
git add . 로 (지금 git이 버전을 추적하고 있는) 모든 파일을 stage에 올려주면 녹색으로 변한다.
git add .
3. local에 commit
로컬 저장소에 변경 내용을 커밋했다.
이게 첫 커밋이었다는 점이 중요하다... 이후에 이 점 때문에 헤매게 된다.
git commit -m "commit message"
아직 원격 저장소와 연결하지 않았기 때문에 로컬 저장소 상에서만 커밋된 상태다.
무난하게 잘 커밋이 된다.
4. remote add
아직 GitHub상에서는 존재하지 않는, 그러나 터미널에서 내가 곧 생성할 remote repository를 add 해줬다.
오잉? 정상적으로 실행이 된 듯 보인다.
git remote add origin "https://github.com/username/repository.git"
5. remote에 push를 실패하다
이대로 순조롭게 remote에 push까지 성공하나?
싶었지만 아니었다.
존재하지 않는 repository라고 거절당했다.
git push origin main
참고로 이때 그냥 GitHub 아이디와 비밀번호로 로그인하려 하면 이런 에러가 뜬다.
아래 게시물을 참고하면 바로 해결할 수 있다.
[git/에러해결] fatal: Authentication failed for ~
💻 개발 환경- OS: macOS Monterey 12.7.6- IDE: IntelliJ IDEA 2024.3.1.1 (Ultimate Edition) 🚨 문제 상황github 원격 저장소에 push할 때 아이디와 비밀번호를 입력했는데 다음과 같은 에러 메시지와 함께 push되지
125ryun.tistory.com
6. remote와의 연결을 끊다
사실 GitHub에서 remote 저장소를 생성한 다음 5에서 쓴 명령어를 다시 써도 잘 작동될 것 같아 보인다.
바로 7로 건너뛰어도 무방하다.
그런데 나는 repository 이름을 갑자기 바꾸고 싶어져서 다른 이름의 remote 저장소를 생성하고 다시 새로 연결해 주기로 했다.
지금 local에 연결'되어 있다고 알려져 있는' remote와의 연결을 끊어줬다.
git rm origin #remote 중 'origin'과의 연결 제거
git remote -v #remote 목록을 보여줘라
7. GitHub에서 remote repository 생성
🔗 https://github.com/
GitHub · Build and ship software on a single, collaborative platform
Join the world's most widely adopted, AI-powered developer platform where millions of developers, businesses, and the largest open source community build software that advances humanity.
github.com
GitHub에서 새 레포를 생성한 것도 좋았다.
Add a README file에 체크하면 repo 생성하자마자 initial commit으로 README.md 파일도 생성되고 편하고 좋네~
라고 생각한 게 문제였다.
아니 사실 이건 그리 큰 문제가 안 되는데... 여튼 이것도 나중에 헤매게 되는 원인 중 하나가 된다.
8. local에 remote 저장소 연결
아까 local에서 remote를 삭제했기 때문에 다시 git remote 저장소를 local에 추가했다.
remote를 삭제하지 않았고, 처음에 추가했던 remote와 새 remote repo의 이름이 동일하다면 이 과정은 필요없다.
git remote add origin "https://github.com/username/repository.git"
9. remote에 local commit push <- 여기서 또다른 문제 발생
앞서 차곡차곡 쌓아왔던 사소한 부분이 이 단계에서 충돌해서 다른 문제를 발생시켰다.
- local에 이미 commit이 존재함
- 근데 그게 첫 commit임
- remote에도 commit이 존재함
그래서 remote에 push를 하려니깐 git이 push 명령을 퉤 뱉어냈다.
이 문제를 해결한 기록은 차후에 투고하겠다.
좌우간에 성공적으로 remote repo를 local에 연결하면 왼쪽처럼 README.md를 제외한 파일들이 초록색으로 뜬다.
git이 보기에는 새로 생성된, created된 파일이라서 그렇다.
README.md는 이미 commit까지 마쳐서 unmodified 상태이기 때문에 흰색이다.
remote에 push를 마치면 모든 파일이 unmodified 상태가 돼서 흰색이 되는 모습을 볼 수 있다.
git push origin main
예쁘게 2번의 commit이 반영된 remote repo의 모습
+ 여담
사실 생각해 보면...
터미널에서 git에 접근하기 위해서는 토큰을 발급받아야 하는데, 애초에 토큰으로 다룰 수 있는 권한의 범위에 repo 생성이 없다.
지금 상황에서는 어떤 방법으로든 remote repo를 터미널에서 생성할 수 있는 방법이, 권한이 없어 보인다.
그치만 가능하다면 편할텐데... 아쉽!
'학습 아카이브' 카테고리의 다른 글
[git/문제해결] fatal: Authentication failed for ~ (0) | 2025.01.18 |
---|---|
Spring Initializr로 Spring 프로젝트 시작하기 (1) | 2025.01.17 |