Tôi có thể làm như sau một cách đơn giản hơn không?
git checkout origin/master
git branch -D master
git branch master
git checkout master
Tôi có thể làm như sau một cách đơn giản hơn không?
git checkout origin/master
git branch -D master
git branch master
git checkout master
Câu trả lời:
Như câu trả lời của KindDragon , bạn có thể tạo lại trực tiếp tại :master
origin/master
git checkout -B master origin/master
Các git checkout
trang người đàn ông đề cập đến:
Nếu -B
được đưa ra, <new_branch>
được tạo ra nếu nó không tồn tại; mặt khác, nó được thiết lập lại . Đây là giao dịch tương đương với
$ git branch -f <branch> [<start point>]
$ git checkout <branch>
Ban đầu đề nghị:
Cái gì đó như:
$ git checkout master
# remember where the master was referencing to
$ git branch previous_master
# Reset master back to origin/master
$ git reset --hard origin/master
với bước 2 là tùy chọn.
Git hỗ trợ lệnh này:
git checkout -B master origin/master
Kiểm tra origin/master
chi nhánh và sau đó thiết lập lại master
chi nhánh ở đó.
git fetch origin master
trước khi chắc chắn origin/master
được cập nhật?
git fetch
trước tiên
Tôi nghĩ ngay cả câu trả lời của VonC cũng có độ phức tạp so với tùy chọn này:
git update-ref refs/heads/master origin/master
git reset --hard master
git tự động ghi lại mọi giá trị của một ref (thông qua reflog). Vì vậy, sau khi bạn chạy lệnh đó, sau đó master@{1}
đề cập đến giá trị trước đó của master.
Câu trả lời của VonC là chính xác, nhưng nó lãng phí thời gian kiểm tra giá trị cũ của chủ vào hệ thống tập tin.
Nếu bạn quan tâm đến các đối tượng mồ côi trong repo, thì bạn có thể chạy git gc
Already on 'master'
Nếu bạn đã sẵn sàng, master
bạn có thể làm như sau:
git reset --hard origin/master
Nó sẽ trỏ master
nhánh cục bộ vào điều khiển từ xa origin/master
và loại bỏ mọi sửa đổi trong thư mục làm việc.
git checkout -B master origin/master
?