2011-12-19 42 views
11

Tôi luôn sử dụng git rebase để đồng bộ mã, tôi thấy rằng git stash lưu công việc hiện tại và sau khi tìm mã mới nhất từ ​​bản chính, chúng tôi có thể hợp nhất mã bằng cách sử dụng git stash pop.git stash pop vs git rebase

Giả sử trình tự là:

  • git stash, tức là công việc hiện tại của tôi được lưu
  • git checkout master, sau đó git pull master, tức là tôi đã lấy mã mới nhất từ ​​chủ
  • git checkout mybranch
  • git stash pop

Tôi đoán điều này sẽ hợp nhất công việc của tôi với mã được cập nhật, nếu thay vì git stash pop tôi sẽ làm
git rebase master thì kết quả sẽ giống nhau hay không?

Đề xuất và trợ giúp của bạn sẽ được đánh giá cao, Cảm ơn bạn đã dành thời gian.

Trả lời

12

Stash có nghĩa là lưu trữ các thay đổi chưa được cam kết. Ví dụ nếu bạn đang làm việc trên một cái gì đó chưa được thực hiện, và bạn muốn làm việc trên một cái gì đó khác trong một thời gian mà không cam kết công việc chưa hoàn thành, sau đó bạn sử dụng một stash để lưu trữ nó để sử dụng sau này.

Nếu bạn có cam kết thực tế, có chứa công việc đã hoàn thành, sau đó sử dụng git merge hoặc git rebase để hợp nhất/rebase những cam kết đó vào lịch sử.

+0

Chỉ cần nhận ra sự tồn tại của tính năng này! Tôi luôn luôn làm lại .. thật đáng tiếc! Cảm ơn bạn :) – nonintanon

+0

Thông tin thêm về thời điểm sử dụng 'git merge' và' git rebase' tại đây: http://stackoverflow.com/a/804156/2104168 – cjsimon