2010-06-26 12 views

Trả lời

2

Câu trả lời ngắn: không có, đó không phải là cách ngăn xếp công trinh. Bạn có thể làm như sau để có được kết quả mà bạn đang tìm kiếm.

Giả sử rằng bạn đã cất giấu một số thay đổi khác, sau đó thực hiện một số thay đổi nhiều đến chỉ số của bạn (thay đổi gốc) và bạn quyết định rằng bạn muốn giữ lại những thay đổi trong khi sửa đổi stash:

#verify the state you are in 
git stash list 
git status 

git stash #push work in progress on the stash 
git stash list #check which stash you need 
git stash show [email protected]{1} #check the changes in the stash 

git stash pop [email protected]{1} #you're now ready to change your 'other' changeset 
# hack hack 
git stash #modified 'other' change set pushed on the stash 
git stash pop [email protected]{1} #your 'original changes' 

Tôi muốn giới thiệu quy trình làm việc này bằng cách cố gắng sửa đổi trực tiếp stash. Nếu bạn bị mất số stash, bạn cũng có thể sử dụng số git stash save 'some other changes'

Tại một thời điểm nào đó (có thể gần hơn bạn nghĩ), việc theo dõi các chi nhánh thật dễ dàng hơn.

1

Bạn có thể thử, sau khi popping stack của bạn, để đánh dấu các tập tin bạn không muốn giấu là "không thay đổi":

git update-index --assume-unchanged -- /path/to/file 

, và sau đó cố gắng giấu, kiểm tra nếu tập tin nói trên được đưa vào hoặc không phải.

git update-index man page:

--assume-unchanged 
--no-assume-unchanged 

Khi những lá cờ được quy định, các tên đối tượng được ghi cho các đường dẫn không được cập nhật.
Thay vào đó, các tùy chọn này đặt và bỏ đặt bit "giả định không thay đổi" cho các đường dẫn.

Khi bit "giả định không thay đổi" được bật, git dừng kiểm tra tệp cây đang hoạt động để sửa đổi có thể, vì vậy bạn cần phải tự đặt bit để báo cho git khi bạn thay đổi tệp cây đang hoạt động.
Điều này đôi khi hữu ích khi làm việc với một dự án lớn trên một hệ thống tệp có một cuộc gọi hệ thống rất chậm lstat(2) (ví dụ: cifs).

Tùy chọn này cũng có thể được sử dụng như một cơ chế tập tin cấp thô để bỏ qua những thay đổi không bị giam trong các tập tin được theo dõi (tương tự như những gì .gitignore làm cho các tập tin untracked)