Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to tell Git that it's the same directory, just a different name

Tags:

git

After getting past a few hurdles learning Git, I came across a new challenge: Renaming a directory (locally, in the working directory).

When I type git status, it lists all the files in the old directory name (that exist with the same exact filenames in the new directory) as deleted and the new directory name as "untracked".

Is there a way to tell Git that "it's actually the same directory, just a different name"?

So that all the files will be listed by git status as modified only?

To exemplify the problem, here is the output I receive from git status when I rename an entire directory:

git status # On branch master # Changes not staged for commit: #   (use "git add/rm <file>..." to update what will be committed) #   (use "git checkout -- <file>..." to discard changes in working directory) # #   deleted:    old-dir-name/file1 #   deleted:    old-dir-name/file2 #   deleted:    old-dir-name/file3 # # Untracked files: #   (use "git add <file>..." to include in what will be committed) # #   new-dir-name/ no changes added to commit (use "git add" and/or "git commit -a") ~/sb/ws> 
like image 493
WinWin Avatar asked Jul 08 '11 18:07

WinWin


People also ask

How do I get git to recognize a rename?

Git will automatically detect the move/rename if your modification is not too severe. Just git add the new file, and git rm the old file. git status will then show whether it has detected the rename.

Can I change git folder name?

To rename any file or folder, use git mv command which takes two arguments. The first argument is the source and the second is the destination. We can easily rename any file using the git command and the new name will be assigned to that file. We can rename the file using GitHub or the command line.

How does git handle rename?

Git keeps track of changes to files in the working directory of a repository by their name. When you move or rename a file, Git doesn't see that a file was moved; it sees that there's a file with a new filename, and the file with the old filename was deleted (even if the contents remain the same).


1 Answers

Just git add the directory at its new name. Git doesn't explicitly track renames, it just detects them later. git mv might be marginally more efficient to perform (because it can update the index directly), but the effect is exactly the same.

like image 175
Phil Miller Avatar answered Oct 02 '22 12:10

Phil Miller