Eu mudei do windows para o linux (ubuntu) agora e os meus projetos que estão no github não estão mais sincronizados com o git local, creio que devido a ser uma nova instalação. Todos os meus projetos estão como not staged qual seria o procedimento correto para refazer a sincronização?
2 curtidas
Como que você fez o clone dos repositórios?
Eu recomendo você criar/cadastrar uma chave SSH, e depois clonar os repositórios usando o comando git clone [email protected]/...
(use o protocolo SSH que vai facilitar muito a sua vida).
2 curtidas
Olá @rafaelcmd,
Presumindo que foram feitas modificações na pasta do seu projeto que causaram este comportamento a solução mais abrangente e eficaz, seria a seguinte:
rm -R .git
git init
Depois disto você deverá poder trabalhar no seu projeto com git novamente.
Se são muitos projetos você pode automatizar esta ação com um simples script em bash:
git_fix.sh
#!/usr/bin/env bash
# Any copyright is dedicated to the Public Domain.
# https://creativecommons.org/publicdomain/zero/1.0/
# Put here all repository names that you want avoid.
AVOID=(
"avoid-this-repo"
)
# Put here all commands that you want to run after the cleanup
CMDS=(
"/usr/bin/env git init"
"/usr/bin/env git status"
)
# Start loop with all directories listed by the 'ls' command
for DIR in $(ls -DU1); do
n=0 # Flag used to avoid a repository
# Check repositories avoid list
for a in "${AVOID[@]}"; do
case "$DIR" in
*"$a"* )
n=1 # Mark repository with avoid flag 1
;;
esac
done
t=".git" # Git target folder
b=".git_old" # Git backup folder
# Check if target folder exist and if avoid flag is equal to 0
if [[ -d "${DIR}/${t}" && $n -eq 0 ]]; then
echo -e "\n - Found project folder: $DIR\n"
cd $DIR # Change to the project directory
mv -v -f $t $b # Remove git target and create a copy of it
# Run all after cleanup commands
for CMD in "${CMDS[@]}"; do
echo -e "\n"
$CMD
echo -e "\n"
read -n 1 -s -r -p " - Press any key to continue"
done
cd .. # Change to the projects root folder
fi
done
echo -e "\nEnd.\n"
exit 0
Informações sobre o script:
- Para utiliza-lo basta colocar o script na pasta raiz aonde você tem todos os seus repositórios.
- O script irá buscar por pastas que possuem a sub-pasta
.git
e mover ela para.git_old
, após isso, você pode adicionar comandos para ser executado a cada alteração eu coloqueigit init
egit status
apenas para exemplo. - O script está com bastante comentário para facilitar o entendimento.
Espero ter lhe ajudado de alguma forma, até mais!.
1 curtida