로컬 Linux Git에서 직접 Github 저장소의 디렉토리 이름을 원격으로 변경 하시겠습니까?


10

이것은 내 Git 저장소입니다.

https://github.com/benqzq/ulcwe

그것은라는 이름의 디렉토리를 가지고 local내가 (에서 말하자면 다른 이름으로 이름을 변경하려는 local까지 xyz).

각 파일의 디렉토리 이름을 개별적으로 변경해야하기 때문에 GitHub GUI를 통해 수동으로 변경하는 것은 악몽입니다 (GitHub에는 아직 "디렉토리 이름 바꾸기"기능이 포함되어 있지 않습니다).

Git을 설치 한 후 다음 명령을 시도했습니다.

git remote https://github.com/benqzq/ulcwe && git mv local xyz && exit

내 GitHub 비밀번호를 묻는 메시지가 표시되지 않지만이 오류가 발생했습니다.

fatal: Not a git repository (or any parent up to mount point /mnt/c)
Stopping at filesystem boundary (GIT_DISCOVERY_ACROSS_FILESYSTEM not set).

Git의 요점은 프로젝트를 다운로드하고 변경하고 테스트 한 다음 호스팅 공급자 (이 경우 GitHub)로 푸시하는 것이지만 디렉토리를 변경하려면 직접 작업을 원합니다. 힘내도 가능합니까?

다른 프로그램을 사용해야합니까?


2
아니요, Git에서는 직접 원격 작업을 수행 할 수 없습니다. 프로젝트를 복제 (다운로드)하고 변경 한 다음 호스팅 제공 업체로 푸시해야합니다. 그러나 컴퓨터에서 프로젝트를하지 않고 Github을 어떻게 사용하고 있습니까? Github 웹 UI를 통해 모든 변경을 수행하고 있습니까? 매우 편리하거나 효율적이지 않습니다.
user253751

이 특별한 경우에 UI를 사용하는 것이 저에게있어 매우 편리하고 효율적입니다. 제가 놓친 것은 직접 디렉토리 이름 변경입니다.
user9303970

답변:


28

치명적인 오류 메시지는 git 저장소의 복제본이 아닌 곳에서 작업 중임을 나타냅니다. 먼저 git 저장소를 먼저 복제 해 봅시다 :

git clone https://github.com/benqzq/ulcwe.git

그런 다음 입력하십시오.

cd ulcwe

디렉토리 이름을 바꾸십시오.

git mv local xyz

변경 사항을 공유하려면 커밋해야합니다.

git commit -m "Rename local to xyz"

이제 원격 git 저장소로 푸시 할 수 있습니다.

git push

GitHub 인터페이스가 변경되었음을 확인할 수 있습니다.


14
즉, Git 리포지토리의 파일에 대한 다른 작업과 같습니다.
궤도

2
@LightnessRacesinOrbit은 (는) 지금까지 모든 변경 사항에 웹 UI를 사용하고있는 것으로 보입니다.
user253751

5

아니요, git의 구조 방식으로 인해 직접 작업으로 수행 할 수있는 방법이 없습니다.

git이 작동하는 방식은 모든 히스토리를 포함한 전체 저장소의 사본을 모든 단일 위치에 저장하는 것입니다.

Github, Bitbucket 또는 기타 호스팅 제공 업체는 기본적으로 git 저장소의 또 다른 사본 일 뿐이며, 대부분의 워크 플로우에서 중요한 웹 소스로 취급되는 웹 인터페이스가 있지만 git 유틸리티는이를 알지 못합니다.

변경 사항은 커밋으로 추적됩니다. 에 의해 direct operation커밋을 만들지 않고 폴더 이름을 변경하는 방법을 의미한다고 생각합니다 . 역사를 다시 써서 가능하지만, 특히 git repo 사본이있는 여러 사람 / 기계가있는 경우 권장하지 않습니다. 불일치가 발생할 수 있습니다.

git repo에서 폴더 이름을 바꾸는 가장 쉬운 방법은 로컬로 폴더를 복제하는 것입니다

git clone [url]
cd [git-folder]

리포지토리의 로컬 복사본이 이미있는 경우이를 당겨서 원격 리포지토리를 최신 상태로 유지하십시오.

git pull

로컬로 변경해야합니다

git mv local xyz

github에 의해 스테이징 영역에 자동으로 추가되어야합니다. 그런 다음 이러한 변경 사항을 커밋하고 푸시해야합니다.

git commit -m 'Renamed local to xyz'
git push

로컬 리포지토리에 변경 사항을 커밋 한 다음 리포지토리의 원격 복사본 (이 경우 Github)으로 변경 사항을 푸시합니다.


8
아니오, 커밋 간 변경 내용으로 기록이 저장 되지 않으며 각 커밋은 자체 지원됩니다. 커밋 간의 변경 사항은 필요할 때마다 요청에 따라 다시 계산됩니다.
Stephen Kitt

3
"모든 기록은 모든 단일 위치에 다운로드됩니다" – not withgit clone --depth
user11153

2
이를 위해 히스토리 재 작성이 필요하지 않습니다. GitHub는 커밋을 생성 할 수 있습니다. (웹 사이트에서 직접 파일을 편집 할 때와 마찬가지로)
user1686

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.