Come rinominare la cartella di un repository Git sul mio computer senza cambiare il nome del progetto

Se intendi dire che vuoi rinominare la cartella che contiene il repository git, allora rinominala e basta. Git non si preoccupa della cartella o della directory che la contiene.

In dettaglio, se intendi:

"Come faccio a fare 'git clone' di un progetto, che crea una directory sulla mia macchina locale contenente il contenuto di quel progetto, e poi rinominare quella directory sulla mia macchina locale senza creare alcun rischio di propagare qualche cambiamento nel nome del progetto al repository upstream?"

Allora la risposta è che rinomini semplicemente la directory locale creata dal comando 'git clone'. Git si preoccupa solo di quello che c'è all'interno del .git e dei file di lavoro all'interno della directory di progetto di primo livello che lo racchiude. Non guarda mai il nome della directory di progetto di primo livello che la racchiude, ma solo il suo contenuto.

Quindi, per esempio, cloniamo il codice sorgente git. We’ll do this in the /tmp directory, so first let’s create a “gittest” directory in there:

  1. puff@redbitter:~$ cd /tmp 
  2. puff@redbitter:/tmp$ mkdir gittest 
  3. puff@redbitter:/tmp$ cd gittest/ 
  4. puff@redbitter:/tmp/gittest$ ls -al 
  5. total 68 
  6. drwxrwxr-x 2 puff puff 4096 Jun 19 13:22 . 
  7. drwxrwxrwt 29 root root 61440 Jun 19 13:22 .. 

Okay, now let’s clone the git source code:

  1. puff@redbitter:/tmp/gittest$ git clone https://github.com/git/git.git 
  2. Cloning into 'git'... 
  3. remote: Enumerating objects: 270102, done.  
  4. remote: Total 270102 (delta 0), reused 0 (delta 0), pack-reused 270102  
  5. Receiving objects: 100% (270102/270102), 118.54 MiB | 10.48 MiB/s, done. 
  6. Resolving deltas: 100% (200411/200411), done. 
  7. Checking connectivity... done. 
  8. puff@redbitter:/tmp/gittest$ 

Okay, let’s take a look at what that created:

  1. puff@redbitter:/tmp/gittest$ ls -al 
  2. total 88 
  3. drwxrwxr-x 3 puff puff 4096 Jun 19 13:23 . 
  4. drwxrwxrwt 42 root root 61440 Jun 23 13:30 .. 
  5. drwxrwxr-x 28 puff puff 20480 Jun 19 13:27 git 
  6. puff@redbitter:/tmp/gittest$  

And now let’s go into that new “git” subdirectory and do a “git status”:

  1. puff@redbitter:/tmp/gittest$ cd git 
  2. puff@redbitter:/tmp/gittest/git$ git status 
  3. On branch master 
  4. Your branch is up-to-date with 'origin/master'. 
  5. nothing to commit, working directory clean 
  6. puff@redbitter:/tmp/gittest/git$  

Good enough, now let’s go up one level and rename the “git” directory that the “git clone” command created. I’ll rename it to “git_repo” so I know it contains a git project. That’s my preferred suffix, some people use “foo.git”, I just like “foo_repo” better.

  1. puff@redbitter:/tmp/gittest/git$ cd .. 
  2. puff@redbitter:/tmp/gittest$ mv git git_repo 
  3. puff@redbitter:/tmp/gittest$  

Okay, now let’s cd back into the directory that’s now named “git_repo” and do another “git status”

  1. puff@redbitter:/tmp/gittest$ cd git_repo/ 
  2. puff@redbitter:/tmp/gittest/git_repo$ git status 
  3. On branch master 
  4. Your branch is up-to-date with 'origin/master'. 
  5. nothing to commit, working directory clean 
  6. puff@redbitter:/tmp/gittest/git_repo$  

Everything works fine. Git has no clue that the enclosing directory is named “git_repo” instead of “git”. Git doesn’t care.