Làm thế nào để bắt đầu trên thế giới trên vùng GitHub?


14

Tôi có kế hoạch viết lại hoàn toàn dự án của mình, sử dụng một khung công tác khác, v.v. Thật tốt khi giữ mã cũ bao gồm cả lịch sử để tham khảo. Cách tốt nhất để làm điều này là gì, để tránh rủi ro, nhầm lẫn và bất ngờ?

Ý tưởng của tôi là tạo ra một chi nhánh mới, thay thế mọi thứ ở đó và có được một phiên bản "mới" cơ bản đang chạy ở đó, gắn thẻ chủ "cũ" cuối cùng, sau đó hợp nhất chi nhánh với chủ. Điều này nghe có vẻ hợp lý?


18
Câu hỏi này dường như là về Git, không phải Github.
dùng253751

Nếu bạn không có kế hoạch chỉnh sửa mã cũ, chỉ muốn nó dễ dàng xem qua bạn có thể sử dụng thẻ. Nhưng các thẻ được coi là bất biến (nhưng bạn luôn có thể xóa, thêm lại).
Travis

2
Tạo một kho lưu trữ mới.
CodeGnome

Câu trả lời:


15

Tôi bỏ phiếu cho việc giữ mọi thứ trong một kho lưu trữ duy nhất.

Tôi sẽ:

  1. Tạo một nhánh mới để trỏ đến mã cũ của bạn
  2. Xóa tất cả mã và cam kết trên bản gốc
  3. Bắt đầu viết lại của bạn trên chủ.

Đây là cách:

# checkout the master branch
git checkout master

# create a new branch so you can find the old code easily
git branch oldStuff-KeepingForReference

# push the branch to github
git push origin oldStuff-KeepingForReference

# You currently have the master branch checked out
# so now cd to the project root and start your rewrite: 
cd <your project root>
rm -rf *

# Create a commit of the delete
git add --all *
git commit -m "Fresh start"

# Start your rewrite
echo "Some changes" > file.txt
git add file.txt
git commit -m "This is the first commit of the rewrite"

Ngoài ra: Bạn cũng có thể tạo một thẻ của mã kế thừa cũ, nếu bạn biết bạn sẽ không bao giờ muốn thêm bất kỳ cam kết nào vào nó.

Khi bạn nên tạo một kho lưu trữ mới thay vì làm điều này:

  • Khi repo hiện tại của bạn quá lớn và nhân bản thì repo chậm. Bạn có thể muốn xem xét sử dụng một repo mới.

8

Trừ khi có một lý do cấp bách để hợp nhất các nhánh viết lại và lịch sử, tôi sẽ tách chúng ra. Tạo một nhánh mới để giữ mã cũ, viết lại thành chủ và giữ chúng tách biệt theo cách đó. Bằng cách đó, bạn luôn có thể làm việc với khung / triển khai cũ nếu tình huống thay đổi.


3

Đó là những gì mà những nhánh mồ côi dành cho.

git branch -m master new_branch       #rename the branch
git push origin new_branch:new_branch #push the old code
git push origin :master               #delete the origin/master branch containing the old code
git checkout --orphan master          #create a new orphane branch - master. The first commit made on this new branch will have no parents and it will be the root of a new history totally disconnected from all the other branches and commits.

echo foo > file.txt
git add file.txt
git commit -m 'init commit'
git push origin master

Bạn có thể cần tạm thời đặt nhánh mặc định thành new_branchGithub vì nó hiển thị chính theo mặc định.


2

Bạn có thể tạo một nhánh mới trong dự án hiện tại, nhưng tốt hơn là đánh dấu kho lưu trữ là riêng tư sau đó tạo một nhánh mới cho mã mới của bạn, theo cách đó bạn vẫn có kho lưu trữ cũ nhưng không có sự phình to từ công việc lỗi thời.

Tôi khuyên bạn nên thực hiện phương pháp này thay vì cố gắng hợp nhất chi nhánh trở lại để làm chủ không chỉ bởi vì bạn vẫn sẽ có sự phình to đó từ mã lỗi thời, mà còn bởi vì có thể có một số xung đột hợp nhất gây khó chịu vào thời điểm bạn sẵn sàng làm kéo. Để tránh điều đó, tốt nhất là bắt đầu với một nhánh rõ ràng hơn là hợp nhất hai cái hoàn toàn khác nhau lại với nhau.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.