티스토리 뷰

1. github remote repository 이름 변경 후

github remote repository에 repository naming convention을 보고, 그에 맞게끔 변경을 완료했다.

하지만 push 하려고 보니 push가 안되길래, remote -v 통해서 경로를 확인해보니 repository 이름 변경하면 repository url 주소까지 변경되는 것. 그래서 오류가 발생했다.

일단 내 성격상 어떻게 대처해야 하는지 찾아보지도 않고 경로를 다시 git remote add origin <주소>로 설정하고 다시 올리니, push가 안되었다.

거기에 다름과 같은 에러가났던 걸로 기억한다.

 

출처 : https://wotres.tistory.com/entry/git-%EC%97%90%EB%9F%AC-%ED%95%B4%EA%B2%B0%EB%B2%95-git-push-setupstream-origin-master

위와 같은 에러가 나는 이유는 정확히 원격 저장소 이름을 언급해 주지 않았다는 것이다.

위와 같이 remote -v 를 하면 origin이 remote repository의 이름이었다!

git push origin master

보통 원격 저장소에 파일 처음에 push 할 때

git push -u origin master

위와 같이 하게 나는 배웠다. 

--set-upstream의 의미가 그럼 나는 뭔지 궁금해서 찾아보았다. (사실 나는 git 에러 메세지에서 추천해준 저 명령어로 해결했다)

upstream은 local과 연결된 remote repository를 의미한다고 한다. 

git push --set-upstream A B라고 설정하면, local A 저장소의 remote repository를 B로 지정하여 B에 push 하라는 의미이다.

이 명령을 한번 하게 되면 원격 저장소는 B가 되기 때문에 push 할 때 --set-upstream을 사용하지 않아도 된다.

git push -u <remote> <branch>

위의 -u가 --set-upstream을 간략한 버전이라고 한다. 이것은 향후 git fetch, pull, push때 우리가 무엇을 하고 싶은지 git이 알고 있다는 의미이다. 

정리) --set-upstream == - u (같다)

하지만 다음부터 바꾸면 아래 블로그와 같은 방법으로 해보자.

git remote set-url origin <url>

위와 같이 설정해보자.

https://minny27.tistory.com/54

2. .gitignore파일 설정

github에 올라가 있는 파일을 보니, 깔끔하지 않고 올라가지 않았으면 하는 폴더가 있었다.

프로젝트 작업 시 로컬 환경의 정보나 빌드 정보 등 원격 저장소(git)에서 관리 및 저장하면 안 되는 파일들을 지정하여 원격 저장소에 저장되지 않도록 관리하는 파일로서. gitignore 파일을 생성할 수 있다.

 

그것을 다음과 같이 해결할 수 있었다. 

(1) .git 폴더와 같은 level에. gitignore 파일을 생성한다

(2) ignore 할 파일이나 폴더를 다음과 같이 세팅한다.

## 파일무시
file.txt

## 확장자 무시
*.txt
*.exe

## 폴더 무시
folder/

(3) 여기서 주의할 것이 이렇게 설정만 한다고 깃 헙에 올라간 불필요한 파일이 사라지는 것은 아니다.

## 파일 이라면
git rm --cached test.txt

## 전체파일 이라면
git rm --cached *.txt

## 폴더 라면
git rm --cached test/ -r

위 명령어를 통해서 기존에 가지고 있던 cache를 지워야 한다.

이 git rm --cached 명령어는 staging area에서 파일을 제거하고, working directory에서는 파일을 유지하는 명령어이기 때문에, 위 명령어를 실행한 후 꼭 commit을 해줘야 한다.

 

<추가> 

만약 .gitignore에 추가하는 파일이 여러개일 경우, 다음과 같은 명령어를 통해 git index(staging area)를 초기화시킴으로써 원격 저장소에 .gitignore의 변경내용이 추가 commit을 통해 적용된다.

git rm -r --cached .

위의 명령어는 다음과 같다.

git rm의 옵션

  • -r : 폴더 안에 다른 파일이 있으면 해당 폴더를 못 지우도록 한다. 폴더를 지우기 전에 안에 있는 내용을 반복적으로 비워주고 지우겠다는 옵션.
  • --cached : git에 있는 인덱스 파일만 삭제하고 실제 파일은 삭제되지 않는다.
  • . : 현재 디렉토리를 뜻한다. root 디렉토리에서 . 을 사용하면 최상위 폴더 아래에 있는 모든 파일이 작업 대상이 된다.

 

 

Reference :

https://dev-jwblog.tistory.com/51

https://kcmschool.com/194

https://www.delftstack.com/ko/howto/git/set-upstream-in-git/

https://stackoverflow.com/questions/18031946/what-does-set-upstream-do

https://www.codeit.kr/community/threads/27703

 

 

최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday