Khi tạo một kho lưu trữ mới đến từ mã trong kho lưu trữ hiện có, sẽ rất hữu ích nếu có thể duy trì lịch sử git vì nó đóng vai trò là tài liệu và ngữ cảnh bổ sung. Nó cũng đảm bảo tác giả ban đầu của mã được ghi có
Đây là cách bạn có thể đạt được nó trong một vài lệnh. O
Tạo repo mới của bạn
mkdir new-repo
Sao chép repo nguồn
git clone //github.com/johno/a-repo
Lọc tất cả các cam kết ngoài thư mục bạn quan tâm trong repo nguồn
git filter-branch --subdirectory-filter my-dir -- -- all
**Thêm một "điều khiển từ xa cục bộ" vào kho lưu trữ nguồn"
git remote add source-repo ../a-repo
Sau đó tìm nạp "điều khiển từ xa cục bộ"
git fetch source-repo
Tạo một nhánh từ chủ của nguồn
git branch source-repo remotes/source-repo/master
Sau đó hợp nhất trong repo nguồn
git merge source-repo --allow-unrelated-histories
Cuối cùng, dọn dẹp repo nguồn
git remote rm source-repo
git branch -d source-repo
Và cam kết
________số 8Có liên quan
Nếu bạn có dự án LookML được kết nối với kho lưu trữ Git, bạn có thể muốn di chuyển LookML của dự án đó sang kho lưu trữ mới
Có hai cách tiếp cận khả thi cho vấn đề này, cả hai đều được mô tả trong các phần sau
- Đặt lại kết nối Git. Giải pháp đơn giản này bảo tồn tất cả các nhánh cá nhân và chia sẻ trong Looker và phù hợp với phần lớn các trường hợp sử dụng
- Sao chép kho lưu trữ Git. Giải pháp nâng cao này được ưu tiên khi điều quan trọng là có thể xem ngay toàn bộ lịch sử của tất cả các nhánh từng được sử dụng thông qua giao diện người dùng của nhà cung cấp Git của bạn
giải pháp đơn giản. Đặt lại kết nối Git
Nếu bạn đặt lại kết nối Git và nhập URL kho lưu trữ Git mới, thì LookML sẽ được chuyển sang kho lưu trữ đó. Tất cả các thay đổi đã lưu trong các nhánh cá nhân và chia sẻ sẽ được duy trì và có thể sử dụng được trong Looker. Lúc đầu, giao diện người dùng của nhà cung cấp Git của bạn sẽ chỉ hiển thị nhánh chính và lịch sử của nó. Các nhánh khác và lịch sử của chúng sẽ xuất hiện vào lần tiếp theo một cam kết được thực hiện cho nhánh đó. Để di chuyển sang kho lưu trữ mới bằng phương pháp này, hãy làm theo các bước sau
- Điều hướng đến trang Cài đặt dự án cho dự án đó
- Trên tab Cấu hình của trang Cài đặt dự án, chọn nút Đặt lại kết nối Git
- Trên trang Định cấu hình Git, nhập URL Git mới [URL Git cho kho lưu trữ mà bạn muốn di chuyển đến], sau đó chọn Tiếp tục
- Nếu bạn đang sử dụng SSH để kết nối, hãy nhớ chọn Reset Key. Nếu không, cùng một khóa SSH sẽ được sử dụng, điều này có thể gây ra xung đột nếu cả hai kho lưu trữ được lưu trữ bởi cùng một dịch vụ [trong trường hợp này là GitHub]
- Đối với các kết nối SSH, hãy thêm khóa triển khai mới vào repo Git của bạn và đảm bảo cấp quyền truy cập ghi trong cài đặt khóa triển khai repo Git. Nếu bạn đang sử dụng HTTPS, hãy nhập thông tin đăng nhập cho repo Git của bạn. Xem trang tài liệu Thiết lập và thử nghiệm kết nối Git để biết hướng dẫn đầy đủ về cách thiết lập Git
Khi bạn đã làm theo các bước này, dự án của bạn sẽ được kết nối với kho lưu trữ mới
Ghi chú. LookML dự án của bạn sẽ không xuất hiện trong nhánh chính của kho lưu trữ mới cho đến khi bạn triển khai dự án của mình vào sản xuất. Trừ khi bạn triển khai vào sản xuất, mã LookML của bạn sẽ chỉ xuất hiện trên nhánh phát triển của bạn trong kho lưu trữ mới sau khi bạn chuyển giao mã hoặc đẩy mã đó vào điều khiển từ xa [lệnh Git có sẵn trong bảng Tác vụ Git]
Giải pháp nâng cao. Nhân bản kho lưu trữ
Giải pháp đơn giản được mô tả trước đây sẽ lưu giữ lịch sử của tất cả các nhánh, nhưng ban đầu chỉ có nhánh chính và lịch sử của nó sẽ hiển thị trong Giao diện người dùng GitHub. Khi một cam kết được thực hiện trên một nhánh cá nhân hoặc chia sẻ trong Looker, nhánh đó và lịch sử của nhánh đó sẽ xuất hiện trong giao diện người dùng GitHub. Một giải pháp nâng cao hơn là cần thiết để xem ngay tất cả các nhánh và lịch sử của chúng thông qua giao diện người dùng GitHub
Trước tiên, bạn cần có quyền truy cập vào kho lưu trữ gốc trong GitHub [hoặc nhà cung cấp Git khác]. Bạn có thể tìm thấy URL kho lưu trữ ở cuối trang cài đặt dự án hoặc trang cấu hình dự án
Đối với ví dụ này, giả sử rằng
git clone //github.com/johno/a-repo
3 là repo ban đầu và git clone //github.com/johno/a-repo
4 là repo mớiSao chép kho lưu trữ ban đầu vào máy tính của bạn và kéo xuống các nhánh bạn muốn giữ lại
git clone git@github.com:looker/PROJECT_NAME.git cd PROJECT_NAME git checkout master git pull
Đặt lại URL từ xa của repo. Xem tài liệu GitHub để biết thêm thông tin
0git clone //github.com/johno/a-repo
Điều này cho bạn thấy [các] điều khiển từ xa mà repo của bạn hiện đang trỏ tới. Kết quả sẽ giống như thế này
1git clone //github.com/johno/a-repo
Tiếp theo, đặt điều khiển từ xa gốc thành repo mới
2git clone //github.com/johno/a-repo
Bây giờ, để đưa vào lịch sử và tệp cho các nhánh nhà phát triển, bạn cần thực hiện
5 vàgit clone //github.com/johno/a-repo
6 cho mỗi nhánh nhà phát triển. Điều này có thể được thực hiện thủ công hoặc trong một vòng lặp trong tập lệnh, chẳng hạn như trong ví dụ saugit clone //github.com/johno/a-repo