2011-12-05 24 views

Trả lời

17

Thông thường, bạn không tạo ra các chi nhánh trực tiếp trong kho trần, nhưng bạn đẩy chi nhánh từ một kho lưu trữ công việc đến trần

git push origin myBranch 

Cập nhật: Worth kể

Giống như Paul Pladijs được đề cập trong nhận xét với

git push origin localBranchName:remoteBranchName 

bạn đẩy (và tạo, nếu không tồn tại) nhánh địa phương của bạn với điều khiển từ xa với tên chi nhánh khác, địa phương của bạn. Và để hoàn thành với

git push origin :remoteBranchName 

bạn xóa một nhánh từ xa.

+1

Nếu bạn muốn cung cấp cho các chi nhánh tên khác sau đó sử dụng: 'git push gốc localBranchName: remoteBranchName' –

4

Để tạo một chi nhánh mới (địa phương) gọi BRANCHNAME

git branch brachname 

Sau đó, để đồng bộ hóa nó với các kho lưu trữ từ xa như github (nếu có)

git push origin branchname 

Và để sử dụng nó để phát triển/làm chi nhánh hoạt động chi nhánh

git checkout branchname 
+1

Trong một kho trần kết quả này trong một lỗi: * tử vong: không phải là tên đối tượng hợp lệ: 'chủ'. * –

5
git update-ref refs/heads/new_branch refs/heads/master 

Trong kho trống đó nếu bạn có quyền truy cập trực tiếp vào kho lưu trữ đó. Bạn có thể cung cấp bất kỳ tham chiếu nào (ví dụ thẻ) hoặc một cam kết trong đối số cuối cùng.

Dưới đây là một kịch bản thử nghiệm:

$ mkdir non-bare-orig 

$ cd non-bare-orig/ 

$ git init 
Initialized empty Git repository in D:/Temp/bare-branch/non-bare-orig/.git/ 

$ touch file1 

$ git add --all && git commit -m"Initial commit" 
[master (root-commit) 9c33a5a] Initial commit 
1 file changed, 0 insertions(+), 0 deletions(-) 
create mode 100644 file1 

$ touch file2 

$ git add --all && git commit -m"Second commit" 
[master 1f5673a] Second commit 
1 file changed, 0 insertions(+), 0 deletions(-) 
create mode 100644 file2 

$ git tag some_tag 

$ touch file3 

$ git add --all && git commit -m"Third commit" 
[master 5bed6e7] Third commit 
1 file changed, 0 insertions(+), 0 deletions(-) 
create mode 100644 file3 

$ cd ../ 

$ git clone --bare non-bare-orig bare-clone 
Cloning into bare repository 'bare-clone'... 
done. 

$ cd bare-clone/ 

$ git update-ref refs/heads/branch1 refs/heads/master 

$ git update-ref refs/heads/branch2 some_tag 

$ git update-ref refs/heads/branch3 9c33a5a 

$ git branch -vv 
    branch1 5bed6e7 Third commit 
    branch2 1f5673a Second commit 
    branch3 9c33a5a Initial commit 
* master 5bed6e7 Third commit 
Các vấn đề liên quan