2012-08-31 20 views
8

Vì vậy, tôi cất giấu một số tác phẩm untracked sử dụngLàm thế nào để lấy các tập tin untracked với git stash

git stash --include-untracked 

và sau đó chuyển sang một chi nhánh khác.

Nếu tôi nhìn vào những gì thay đổi được cất giấu:

backend/infinispan-rar/pom.xml      | 12 ++++++++++-- 
backend/pom.xml         | 13 +++++++++++-- 
backend/test/pom.xml        | 3 +-- 
.../main/resources/com/mojiva/testDbContext.xml | 6 +++--- 
data/mojiva.xml         | 2 +- 
dbmigration/pom.xml        | 16 ++++++++++------ 
.../main/resources/db/changelogs/issue-17544.xml | 4 ++-- 
pom.xml           | 11 +++++++++++ 

sau đó tôi đã cố gắng để lấy những tập tin sử dụng

git stash pop 

và có được điều này:

backend/activator/effective.pom already exists, no checkout 
backend/adverter/src/test/java/com/mojiva/presenter/RequestParamReplacerTest.java already exists, no checkout 
backend/dao/.cpath already exists, no checkout 
backend/dao/.e0 already exists, no checkout 
backend/dao/PutObjectStoreDirHere/defaultStore/Recovery/TransactionStatusManager/#22#/0_ffffc0a86465_cfd2_5016b5cb_1 already exists, no checkout 
backend/dao/dep.tree already exists, no checkout 
backend/feeds-test/.e0 already exists, no checkout 
backend/feeds-test/dep.tree already exists, no checkout 
data/wurfl-patch.xml already exists, no checkout 
run/linksDB.log already exists, no checkout 
run/linksDB.properties already exists, no checkout 
run/linksDB.script already exists, no checkout 
Could not restore untracked files from stash 

Chú ý rằng không ai trong số các tập tin là như nhau?

Điều gì đang xảy ra ở đây?

Cảm ơn!

+0

Bản sao có thể có của [Không thể áp dụng stash vào thư mục hoạt động] (http://stackoverflow.com/questions/10508903/cannot-apply-stash-to-working-directory) –

Trả lời

-2

Bạn nên bỏ qua nhật ký và các tệp khác không phải là mã nguồn. Dù bằng cách nào, bạn có thể thêm --force để ghi đè lên chúng.

Điều đang xảy ra trong trường hợp của bạn là các tệp bạn đã lưu trữ, khi xuất hiện, sẽ cố ghi đè các tệp bạn đã có trong thư mục đang hoạt động. Trong trường hợp bạn có công việc quan trọng ở đó, git sẽ chơi nó an toàn và không ghi đè chúng một cách mù quáng.

lời khuyên tốt nhất là để làm sạch thiết lập của bạn:

  1. Thêm tệp không mã nguồn (như file log) để tập .gitignore của bạn.
  2. Tệp cấu hình phải có chuỗi kết nối được trừu tượng hóa để chúng không thay đổi mỗi lần bạn chuyển đổi nhánh hoặc môi trường (sử dụng repo trên máy khác). Xem smudge/clean scripts trong chương git attributes trong progit.org/book.

Nếu bạn là người mới, giữ cho kênh IRC#git mở tại webchat.freenode.net :)

+0

Địa chỉ '--force' được liệt kê trong 'git stash' trang người đàn ông? –

+0

Tôi không thấy bất kỳ tùy chọn nào để '--force' là một bước nhảy' git stash pop' –

4

tôi đã làm điều tương tự hôm nay và thấy không có sự giúp đỡ hữu ích. Vì vậy, tôi đã làm thủ thuật này:

  • git checkout stash

này sẽ tạo ra một chi nhánh tạm thời. sau đó bạn có thể áp dụng stash trên đó.

  • git stash apply

  • Sao chép tất cả các tập tin đã thay đổi bằng tay ở đâu đó an toàn.

  • Bỏ qua chi nhánh tạm thời và thanh toán cho chi nhánh ban đầu.

  • Dán các tệp nơi bạn tìm thấy chúng ở địa điểm đầu tiên.

Xong.

Câu hỏi này đã cũ. Nhưng câu trả lời có thể giúp một người như tôi. như vậy ...

+0

'git stash apply' nâng cao chính xác cùng một lỗi như trong câu hỏi: 'Không thể khôi phục các tệp không được theo dõi từ stash' – Thierry

0

Từ blog dưới đây đề cập về cách áp dụng một stash tạo ra với -a thay vì -u:

Tìm của stash cam kết:

git log --graph --all --decorate --oneline 

Check it out

git checkout <sha> 

Đặt lại cấp độ gốc:

git reset HEAD~1 

Tạo một stash sạch:

git stash -u 

Bây giờ bạn có thể kiểm master và áp dụng các stash mới.

https://blog.tfnico.com/2012/09/git-stash-blooper-could-not-restore.html#!

Các vấn đề liên quan