it-swarm-ko.tech

베어 Git 리포지토리에서 마스터 브랜치를 만드는 방법은 무엇입니까?

(Windows 8의 poshgit에서 모두 수행됨) :

git init --bare test-repo.git
cd test-repo.git

(폴더는 git-ish 파일과 폴더 안에 만들어집니다)

git status

치명적 :이 작업은 작업 트리에서 실행해야합니다 (그래서 맨손으로 git status를 사용할 수는 없습니다.)

git branch

(아무것도, 베어 리포에 분기가 포함되어 있지 않은 것 같습니다. 복제 된 리포지토리에서 분기를 추가해야합니까?)

cd ..
mkdir test-clone
cd test-clone
git clone ../test-repo.git

(빈 저장소 복제에 대한 경고가 표시됨)

cd test-repo

(마스터 지점에 있음을 나타내도록 프롬프트가 변경됨)

git branch

(결과가 표시되지 않습니다-eh?)

git branch master

치명적인 : 유효한 개체 이름이 아닙니다 : 'master'

음 맨손으로 리포지토리에서 마스터 브랜치를 어떻게 만들 수 있습니까?

38
David

베어 리포지토리는 푸시 앤 페치에서만 가능합니다. 직접 "많이"할 수는 없습니다. 내용을 확인하거나 참조 (분기, 태그)를 만들거나 git status 등.

Bare Git 리포지토리에서 새 분기를 생성하려면 복제본에서 Bare Repo로 분기를 푸시 할 수 있습니다.

# initialize your bare repo
$ git init --bare test-repo.git

# clone it and cd to the clone's root directory
$ git clone test-repo.git/ test-clone
Cloning into 'test-clone'...
warning: You appear to have cloned an empty repository.
done.
$ cd test-clone

# make an initial commit in the clone
$ touch README.md
$ git add . 
$ git commit -m "add README"
[master (root-commit) 65aab0e] add README
 1 file changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 README.md

# Push to Origin (i.e. your bare repo)
$ git Push Origin master
Counting objects: 3, done.
Writing objects: 100% (3/3), 219 bytes | 0 bytes/s, done.
Total 3 (delta 0), reused 0 (delta 0)
To /Users/jubobs/test-repo.git/
 * [new branch]      master -> master
55
jub0bs

브랜치는 커밋에 대한 참조 일뿐입니다. 저장소에 무엇이든 커밋 할 때까지 분기가 없습니다. Bare 이외의 저장소에서도이를 볼 수 있습니다.

$ mkdir repo
$ cd repo
$ git init
Initialized empty Git repository in /home/me/repo/.git/
$ git branch
$ touch foo
$ git add foo
$ git commit -m "new file"
1 file changed, 0 insertions(+), 0 deletions(-)
create mode 100644 foo
$ git branch
* master
11
chepner

두 번째 저장소가 필요하지 않습니다. --work-tree 옵션과 checkoutcommit start와 같은 명령을 사용하여 더미 디렉토리를 제공 할 수 있습니다. 더미 디렉토리를 준비하십시오.

$ rm -rf /tmp/empty_directory
$ mkdir  /tmp/empty_directory

그리고 당신은 간다 :

$ cd test-repo.git             # your fresh bare repository

$ git --work-tree=/tmp/empty_directory checkout --Orphan master
Switched to a new branch 'master'                  <--- abort if "master" already exists

$ git --work-tree=/tmp/empty_directory   commit --allow-empty -m "empty repo" 

$ git branch
* master

$ rmdir  /tmp/empty_directory

바닐라 자식 1.9.1에서 테스트되었습니다. posh-git이 파일 변경없이 (메시지 전용 커밋) 커밋을 수행하기 위해 --allow-empty를 지원하는지 확인하지 않았습니다.

6
kubanczyk

기본적으로 분기가 나열되지 않으며 일부 파일을 배치 한 후에 만 ​​팝업됩니다. 당신은 그것에 대해 많이 걱정할 필요가 없습니다. 폴더 구조 만들기, 파일 추가/삭제, 파일 커밋, 서버로 푸시 또는 분기 만들기와 같은 모든 명령을 실행하십시오. 아무런 문제없이 원활하게 작동합니다.

https://git-scm.com/docs

0
Shivraaz