Pergunta

Eu estou tendo dificuldade em compreender alguns conceitos git / DCV são. Eis o que aconteceu:

  1. Eu criei um projeto git, e importou-lo de um SVN repo
  2. Fiz alguns commits
  3. Eu queria experimentar algo, então eu criei um ramo chamado constantes de atualização
  4. Mudei para constantes de atualização ramo, moveu alguns arquivos, excluídos os outros e acrescentou muitos mais
  5. I compromete-se a este ramo
  6. Agora eu estou tentando mudar para o meu branch master usando git checkout master
  7. Eu tenho esse erro: Erro: Você tem alterações locais para 'src / Groovy / Constants.groovy'; Não é possível alternar ramos.

O meu entendimento de DCV são é que eu posso mudar ramos à vontade, mesmo se algum ramo tem mais ou menos arquivos do que os outros, contanto que eu cometo meus arquivos. Eu tentei cometer com git commit -a e mudar para branch master, mas eu tenho o mesmo erro.

Como uma nota lateral, quando eu cometer git me avisa que LF será substituído por CRLF e me adverte sobre alguns espaços em branco à direita também; depois de eu cometer eu faço um git status e um monte de arquivos sempre aparecem como #modified ....

É este relacionado com git / janelas , ou eu não entendi o que é suposto acontecer? Eu só quero mudar para o meu branch master sem perder as minhas alterações no outro ramo.

Foi útil?

Solução 3

Eu resolvi o problema cortar minha pré-commit gancho (comentando estas linhas em .git/hooks/pre-commit com um #):

#       if (/\s$/) {
#       bad_line("trailing whitespace", $_);
#       }

Outras dicas

Lookup git-stash para mudar ramos enquanto houver alterações não salvas no ramo atual.

Você está correto em seu pensamento sobre como isso deve funcionar.

No entanto, parece que git está tendo problemas com os finais de linha, e ele pensa que todos os seus arquivos são modificados, mesmo quando eles não são. Eu não usar git no Windows, mas eu ia sugerir a opção "core.autocrlf" para fazer o trabalho de manipulação crlf. No entanto, a seguinte entrada de blog indica que isso pode não ser uma boa idéia: http://weierophinney.net/matthew/archives/191-git-svn-Tip-dont-use-core.autocrlf.html

Basta usar a seguinte opção no arquivo .gitconfig que reside no seu diretório de usuários.

[core] autocrlf = true

E ele vai resolver a questão.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top