2012-02-20 54 views
5

Tôi có một dự án HG được lưu trữ trên Bitbucket và tôi muốn chuyển nó sang Github.Cách nhập dự án Bitbucket vào Github trên Windows

Tôi đã theo dõi guideline tại đây để cài đặt tiện ích mở rộng hg-git, trên TortoiseHG của tôi.

Tôi đã tạo một kho lưu trữ trên Github, nhưng chưa khởi tạo nó (nó sẽ hiển thị trang hướng dẫn đó), vì vậy tôi không thể sao chép kho lưu trữ git đó.

Tôi nên làm gì tiếp theo?

EDIT: Xin lỗi, quên thêm rằng sau đó tôi sẽ sử dụng git từ đó trở đi.

CẬP NHẬT: Tôi đã mượn một chiếc mac và chuyển đổi nó bằng cách sử dụng fast-git-import không đau đớn. Nếu bất cứ ai đã thử các giải pháp dưới đây và làm việc trong Windows, hãy bỏ phiếu cho nó đủ, và tôi sẽ làm cho nó là câu trả lời.

+0

Đừng làm điều đó - bạn sẽ gặp phải ... –

Trả lời

3

Chỉ cần phát hiện ra câu hỏi của tôi là bản sao của Converting a Mercurial (hg) repository to Git on Windows (7).

Nó hoạt động tốt. Vì nó là tất cả dưới Cygwin không cần phải sử dụng cuộc thi.

Ngoài câu trả lời cho câu hỏi đó. Tôi chỉ cần tạo một khóa dưới Cygwin sử dụng ssh-keygen -t rsa. Sau đó tôi sao chép nội dung của khóa công khai trong .ssh/id_rsa.pub thành cài đặt kho Github.

Tôi đặt nguồn gốc git thành địa chỉ Gihub theo git remote add origin (repo address). Sau đó, cuối cùng tôi có thể git push origin master --force vào Github.

2

Bạn nên hoàn thành hg-git process (như số hg gexport) cục bộ trên máy trạm của mình.

Sau đó, khi bạn có một repo git mirroring Hg repo ban đầu của bạn, sau đó bạn có thể thêm một nguồn gốc GitHub, và đẩy nó:

git remote add origin https://github.com/user/yourProject.git 
git push origin master 
git push --all 

Tuy nhiên, Lazy Badger ý kiến, và đúng như vậy, rằng OP có thể muốn chỉ sử dụng Mercurial cho quá trình này, và không cài đặt Git cả.

Trong trường hợp này, trang "hg-git on GitHub" chứa:

Nếu bạn đang bắt đầu từ một kho lưu trữ Hg hiện tại, bạn phải thiết lập một kho Git đâu đó rằng bạn có quyền truy cập push to, thêm nó như là mặc định đường dẫn hoặc đường dẫn đẩy mặc định trong số .hg/hgrc của bạn và sau đó chạy hg push từ bên trong dự án của bạn.
Ví dụ:

$ cd hg-git # (an Hg repository) 
$ # edit .hg/hgrc and add the target git url in the paths section 
$ hg push 

này sẽ chuyển đổi tất cả dữ liệu của bạn thành các đối tượng Hg Git và đẩy họ lên server Git.

+0

OP có ** Mercurial, not git ** –

+0

Tôi đã thử 'hg gexport' nhưng thư mục' .git' không được tạo. Liên kết bạn đã đề cập không nói về 'hg export'. Bạn có thể xây dựng thêm một chút không? – lulalala

+0

@LazyBadger: OP có cả hai nếu anh ta/cô ấy muốn chuyển đổi một repo Mercurial thành một git. – VonC

1

Trong giả thuyết, rằng VCS cơ sở vẫn là Mercurial và công cụ - TortoiseHG

  1. Bạn phải có sẵn sàng Git-repo (trống, pushable từ địa phương)
  2. Nếu bạn đã thêm và làm việc (i.e được định cấu hình đúng - có thể kéo | đẩy bằng Github) hg-git, bạn phải thêm Git-URL vào (repo hgrc) (phần [đường dẫn])
  3. thêm các khóa OpenSSH vào Github, xác minh ủy quyền dựa trên khóa trong THG (cuộc thi)
    • AFAIK, chỉ git+ssh://[email protected]/user/repo.git URL làm việc cho github từ hg-git
  4. Sau đó bạn sẽ có hai từ xa liên kết repo, cho cả hai bạn sẽ có thể để đẩy/kéo từ tab Synchronize

Addons

phần có liên quan từ mercurial.ini, git và github liên quan

[ui] 
... 
ssh = "...\TortoisePlink.exe" 
... 
[auth] 
github.com.prefix = github.com 
github.com.username = lazybadger 

có thể nói gì về phần cuối cùng, chỉ cần nhớ lại gì cho "khi" và "tại sao"

+0

Tôi đã tạo khóa OpenSSH bằng git-bash nhưng không thể tải nó vào cuộc thi. Tôi nghĩ rằng cuộc thi chỉ tải trọng các khóa riêng tư? – lulalala

+0

@ lulalala - vâng, bạn phải tạo ra putty-keypair với Puttygen hoặc nhập OpenSSH key (?!) Vào Puttygen và lưu như putty –

+0

Làm mát ngay bây giờ tôi đã thiết lập khóa, cố gắng đẩy nó vào Synchronize: Nó đã cho tôi thông báo lỗi 'tạo và gửi dữ liệu ... [mã trả về 255 Mon Feb 20 22:04:23 2012]' – lulalala

Các vấn đề liên quan