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 :masterorigin/master
git checkout -B master origin/master
Các git checkouttrang 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/masterchi nhánh và sau đó thiết lập lại masterchi nhánh ở đó.
git fetch origin mastertrước khi chắc chắn origin/masterđược cập nhật?
git fetchtrướ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, masterbạn có thể làm như sau:
git reset --hard origin/master
Nó sẽ trỏ masternhánh cục bộ vào điều khiển từ xa origin/mastervà loại bỏ mọi sửa đổi trong thư mục làm việc.
git checkout -B master origin/master?