2009-08-11 43 views
11

Tôi có một dự án sử dụng Git, nơi tôi đã phân nhánh khỏi tổng thể để đổi tên một thư mục.Git: Đổi tên một thư mục trong một chi nhánh

Việc đổi tên trong nhánh hoạt động như mong đợi. Khi tôi chuyển về nhánh master, thư mục có tên gốc của nó, nhưng cũng có một cây thư mục rỗng với tên mà tôi đã thay đổi nó trong nhánh.

Đây có phải là hành vi mong đợi không? Tôi có thiếu một bước không?
Tôi chỉ cần xóa các cây thư mục trống này khi chúng xuất hiện?

Tôi biết Git không theo dõi thư mục trống và có thể là một yếu tố ở đây.

Công việc hiện tại của tôi là:

# create and checkout a branch from master 
/projects/demo (master) 
$ git checkout -b rename_dir 

# update paths in any affected files 

# perform the rename 
/projects/demo (rename_dir) 
$ git mv old_dir new_dir 

# add the modified files 
/projects/demo (rename_dir) 
$ git add -u 

# commit the changes 
/projects/demo (rename_dir) 
$ git commit -m 'Rename old_dir to new_dir' 

tôi nhận được đến thời điểm này và tất cả mọi thứ được như mong đợi:

# old_dir has been renamed new_dir 
/projects/demo (rename_dir) 
$ ls 
new_dir 

vấn đề này được đưa ra khi tôi chuyển về tổng thể:

/projects/demo (rename_dir) 
$ git checkout master 

# master contains old_dir as expected but it also 
# includes the empty directory tree for new_dir 
/projects/demo (master) 
$ ls 
old_dir new_dir 

new_dir là một cây thư mục trống, vì vậy git sẽ không theo dõi nó - nhưng nó xấu xí để có ở đó.

+0

FWIW, tôi không nhận được hành vi đó với 1.6.3.1: new_dir đã biến mất sau lần thanh toán cuối cùng của chương trình chính. Phiên bản bạn đang sử dụng? –

+0

Tôi đang sử dụng msysgit 1.6.4 – jmohr

+0

Có bất kỳ tệp .x ẩn không được che giấu nào trong new_dir không? –

Trả lời

10

Có, bạn có thể xóa nó. Bạn cũng có thể sử dụng git clean -d để xóa thư mục.

+0

Cảm ơn - đó là một lệnh hữu ích mà tôi không biết. – jmohr

1

Có khả năng bạn đã ẩn tệp trong thư mục mới. "ls -a newdir"

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