Với phiên bản git gần đây bạn có thể git add -N
file (hoặc --intent-to-add
), có thêm một blob zero-length để chỉ số tại địa điểm đó. Upshot là tập tin "untracked" của bạn bây giờ sẽ trở thành một sửa đổi để thêm tất cả các nội dung vào tập tin này có độ dài bằng không, và hiển thị trong đầu ra "git diff".
git diff
echo "this is a new file" > new.txt
git diff
git add -N new.txt
git diff
diff --git a/new.txt b/new.txt
index e69de29..3b2aed8 100644
--- a/new.txt
+++ b/new.txt
@@ -0,0 +1 @@
+this is a new file
Đáng buồn thay, như đã chỉ ra, bạn có thể không git stash
khi bạn có một tập tin --intent-to-add
cấp phát như thế này. Mặc dù nếu bạn cần phải stash, bạn chỉ cần thêm các tập tin mới và sau đó stash chúng. Hoặc bạn có thể sử dụng giải pháp mô phỏng:
git update-index --add --cacheinfo \
100644 e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 new.txt
(thiết lập bí danh là bạn của bạn ở đây).
Nó chỉ ra rằng bản sao của tôi của Git không đủ gần đây để có thêm -N, nhưng điều này trả lời câu hỏi của tôi. –
Bạn có thể mô phỏng "git add -N new.txt" với "git update-index --add --cacheinfo 100644 e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 mới.txt " (làm cách nào tôi quản lý để đưa câu trả lời sai?) – araqnid
Khi người đứng đầu,' git add -N' ngắt 'git stash'. http://bit.ly/hLDfHq –