Chuyển sang thẻ Git khác


180

Làm cách nào để kiểm tra phiên bản / thẻ 1.1.4 của gói rspec ?

cd ~/Library/Application\ Support/TextMate/Bundles/
git clone git://github.com/rspec/rspec-tmbundle.git RSpec.tmbundle
osascript -e 'tell app "TextMate" to reload bundles'

Câu trả lời:


336

Nhân bản kho lưu trữ như bình thường:

git clone git://github.com/rspec/rspec-tmbundle.git RSpec.tmbundle

Sau đó kiểm tra thẻ bạn muốn như vậy:

git checkout tags/1.1.4

Điều này sẽ kiểm tra thẻ ở trạng thái 'tách rời'. Ở trạng thái này, "bạn có thể nhìn xung quanh, thực hiện các thay đổi thử nghiệm và cam kết chúng, và [loại bỏ các cam kết đó] mà không ảnh hưởng đến bất kỳ chi nhánh nào bằng cách thực hiện thanh toán khác".

Để giữ lại mọi thay đổi đã thực hiện, hãy chuyển chúng sang một nhánh mới:

git checkout -b 1.1.4-jspooner

Bạn có thể quay lại nhánh chính bằng cách sử dụng:

git checkout master

Lưu ý, như đã được đề cập trong lần sửa đổi đầu tiên của câu trả lời này, có một cách khác để kiểm tra thẻ:

git checkout 1.1.4

Nhưng như đã được đề cập trong một bình luận, nếu bạn có một nhánh có cùng tên, điều này sẽ dẫn đến git cảnh báo bạn rằng tên đó không rõ ràng và kiểm tra chi nhánh theo mặc định:

warning: refname 'test' is ambiguous.
Switched to branch '1.1.4'

Tốc ký có thể được sử dụng một cách an toàn nếu kho lưu trữ không chia sẻ tên giữa các nhánh và thẻ.


78
Đối với người xem lái xe, câu trả lời này là mơ hồ. Nếu có một chi nhánh và một thẻ được gọi 1.1.4. Git sẽ kiểm tra chi nhánh, không phải thẻ. Để kiểm tra rõ ràng thẻ, hãy làm:git checkout tags/1.1.4
ocodo

2
Làm thế nào để chúng ta quay trở lại 'thân cây'?
Vinay W

3
@VinayWadhwa git master checkout
ABCD.ca

1
Và để xem các thẻ, chỉ cần phát hành git tag.
ACK_stoverflow

8

Kể từ Git v2.23.0 (tháng 8 năm 2019), git switchđược ưu tiên hơn git checkoutkhi bạn chỉ cần chuyển nhánh / thẻ. Tôi đoán họ đã làm điều này vì git checkoutcó hai chức năng: để chuyển nhánh và khôi phục tệp. Vì vậy, trong v2.23.0, họ đã thêm hai lệnh mới git switchgit restoređể phân tách những mối quan tâm đó. Tôi sẽ dự đoán tại một thời điểm nào đó trong tương lai, git checkoutsẽ bị từ chối.

Để chuyển sang một nhánh bình thường, sử dụng git switch <branch-name>. Để chuyển sang một đối tượng giống như cam kết, bao gồm các cam kết và thẻ đơn, hãy sử dụng git switch --detach <commitish>, <commitish>tên thẻ hoặc số cam kết ở đâu.

Các --detachlực lượng tùy chọn mà bạn nhận ra rằng bạn đang ở trong một phương thức “kiểm tra và thí nghiệm discardable” . Để tạo một nhánh mới từ cam kết bạn đang chuyển sang, hãy sử dụng git switch -c <new-branch> <start-point>.

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.