2010-07-22 31 views
524
  1. Tôi có thư mục không trống (ví dụ/etc/something) với các tệp không thể đổi tên, di chuyển hoặc đã xóa.Cách chuyển đổi thư mục không rỗng hiện có thành thư mục làm việc Git và đẩy tệp vào kho lưu trữ từ xa

  2. Tôi muốn kiểm tra thư mục này vào git tại chỗ.

  3. Tôi muốn có thể đẩy trạng thái của kho lưu trữ này đến kho lưu trữ từ xa (trên máy khác) bằng cách sử dụng "git push" hoặc tương tự.

Đây là tầm thường sử dụng Subversion (hiện tại chúng tôi nó sử dụng Subversion) sử dụng:

svn mkdir <url> -m <msg> 
cd <localdir> 
svn co <url> . 
svn add <files etc> 
svn commit -m <msg> 

git tương đương là gì?

Tôi có thể "git clone" vào một thư mục trống và chỉ cần di chuyển thư mục .git và có mọi thứ hoạt động không?

+4

Có lẽ tôi không hiểu, nhưng bạn không thể chạy 'git init' bên trong thư mục cục bộ? – Philipp

+0

Bạn có nghĩa là bạn có một repo ở một nơi khác, và bạn muốn thêm vào đó repo tất cả các nội dung của thư mục khác này mà không phải là một repo? Hay bạn chỉ đang cố gắng tạo một repo mới trong thư mục đó? – Cascabel

+2

Tôi đã cố tổng hợp vấn đề này trong một bài viết đơn giản. Rất muốn chia sẻ nó ở đây, hy vọng nó sẽ giúp. http://zeshan.info/add-existing-project-to-git-repository/ –

Trả lời

854

Với bạn đã thiết lập một daemon git trên <url> và một kho trống:

cd <localdir> 
git init 
git add . 
git commit -m 'message' 
git remote add origin <url> 
git push -u origin master 
+12

** hướng dẫn ** abyx's dường như hoạt động. Bây giờ tôi có chạy: 'git config branch.master.remote origin' và ' git config branch.master.merge refs/heads/master' và những gì tôi sẽ kết thúc sẽ chính xác là giống như thể Tôi nhân bản kho lưu trữ từ xa? tức là 'git pull' và' git push' sẽ * chỉ hoạt động *? – HMW

+0

@HMW Thật vậy, đó chỉ là nó! – abyx

+0

cảm ơn. điều này hoạt động – honcheng

11

Trong trường hợp các kho lưu trữ từ xa là không có sản phẩm nào (đây là trường hợp nếu bạn đang sử dụng IBM DevOps trên hub.jazz .net) thì bạn cần phải sử dụng trình tự sau đây:

cd <localDir> 
git init 
git add -A . 
git pull <url> master 
git commit -m "message" 
git remote add origin <url> 
git push 

EDIT 30 tháng 1 17: Hãy xem ý kiến ​​dưới đây, chắc chắn rằng bạn đang ở trên repo đúng!

+0

Các lệnh trên đã xóa sạch tất cả các bản dựng hiện có của tôi :(Vui lòng thận trọng trước khi thực hiện các bước trên –

+0

lần đẩy này tới repo đang hoạt động, chú ý. – user1532587

17

Đây là giải pháp của tôi:

git init 
git remote add origin PATH/TO/REPO 
git fetch 
git checkout -t origin/master 
8

Đây là cách tôi làm. Tôi đã thêm giải thích để hiểu những gì đang xảy ra.

Initialize Local Repository

  • đầu tiên khởi Git với

    git init

  • Thêm tất cả tập tin để kiểm soát phiên bản với

    git add.

  • Tạo một cam kết với thông điệp của sự lựa chọn của bạn

    git commit -m 'AddingBaseCode'

    Khởi tạo từ xa Repository

  • Tạo một dự án về Github và sao chép URL của dự án của bạn và sao chép URL của dự án.

    enter image description here

    Liên kết repo từ xa với repo địa phương

  • Bây giờ sử dụng sao chép URL để liên kết repo địa phương của bạn với điều khiển từ xa GitHub repo. Khi bạn sao chép một kho lưu trữ với bản sao git, nó sẽ tự động tạo một kết nối từ xa được gọi là nguồn gốc trỏ trở lại kho lưu trữ nhân bản. Điều khiển từ xa được sử dụng để quản lý tập hợp các kho được theo dõi.

    git remote thêm nguồn gốc https://github.com/hiteshsahu/Hassium-Word.git

    Synchronize

  • Bây giờ chúng ta cần phải hợp nhất mã địa phương với mã từ xa. Bước này rất quan trọng nếu không chúng tôi sẽ có thể Push Code trên Github. Bạn phải gọi 'git pull' trước khi đẩy mã của bạn.

    git pull nguồn gốc chủ --allow-không liên quan-lịch sử

    Commit mã của bạn

  • Cuối cùng đẩy tất cả những thay đổi trên Github

    git push -u origin master

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