S'il vous plaît pardonnez mon ignorance ici ... Voici l'arrière-plan: J'ai créé un répertoire TestScritps pour organiser les scripts de test. J'ai déplacé trois scripts de <root dir>
à <root dir>/TestScripts
. J'ai déménagé un à la fois et a effectué un commit local après chacun d'eux. J'ai alors poussé tous les changements.Pourquoi 'git mv' ne déplace-t-il pas un fichier? Comment le faire agir "normalement"?
Je suis allé à une autre machine et effectué une traction:
$ cd cryptopp/
$ git pull
remote: Counting objects: 25, done.
remote: Compressing objects: 100% (24/24), done.
remote: Total 25 (delta 11), reused 0 (delta 0), pack-reused 0
Unpacking objects: 100% (25/25), done.
From https://github.com/weidai11/cryptopp
2ac9ea1..2a22a84 master -> origin/master
Updating 2ac9ea1..2a22a84
Fast-forward
TestScripts/cryptest-android.sh | 44 +
TestScripts/cryptest-ios.sh | 40 +
TestScripts/cryptest.sh | 5729 +++++++++++++++++++++++++++++++++++++++
rijndael.cpp | 2 +-
setenv-android.sh | 85 +-
5 files changed, 5870 insertions(+), 30 deletions(-)
create mode 100755 TestScripts/cryptest-android.sh
create mode 100755 TestScripts/cryptest-ios.sh
create mode 100755 TestScripts/cryptest.sh
$ ls *.sh
cryptest-android.sh cryptest.sh setenv-android.sh setenv-ios.sh
cryptest-ios.sh rdrand-nasm.sh setenv-embedded.sh
Remarquez les fichiers ont été copiés uniquement; ils n'ont pas été déplacés.
J'ai vérifié le git-mv
man page, mais le comportement errant ne semble pas être discuté.
J'ai deux questions. Pourquoi git mv
ne copie que des fichiers et ne les déplace pas? Comment puis-je faire git mv
effectuer "normalement"? Ici, "normalement" signifie ce que presque chaque personne qui a utilisé la ligne de commande attend - il déplace le fichier de <target location>
à <destination location>
.
Voici l'historique des commandes pertinentes.
994 rm -rf cryptopp/
995 git clone https://github.com/weidai11/cryptopp
996 cd cryptopp/
997 mkdir TestScripts
998 git mv cryptest.sh TestScripts/
999 ls *.sh
1000 git commit TestScripts/cryptest.sh -m "Organize test scripts (Issue 303)"
1001 ls *.sh
1002 git mv cryptest-ios.sh TestScripts/
1003 git commit TestScripts/cryptest-ios.sh -m "Organize test scripts (Issue 303)"
1004 ls *.sh
1005 git commit
Qu'est-ce que vous obtenez de 'git status'? – Amit
Quelle était la séquence exacte des commandes exécutées sur la machine d'origine? –
@Amit - Sur la machine qui a effectué le déplacement: *** 'Votre branche est à jour avec 'origin/master'. *** Cependant, j'ai supprimé le clone et recloué. Je l'ai trouvé nécessaire à l'occasion pour empêcher Git de casser ses fichiers d'index. Quand cela arrive, je ne peux même pas changer de branche, donc c'est un état que j'essaye d'éviter à tout prix. Les copies et les mouvements semblent briser régulièrement Git, donc je le fais après l'opération. – jww