Month: May 2009

Compartilhando seu terminal com outros usuarios

Voce ja deve conhecer o comando screen, ele é muito útil para evitar o trabalho em execucao no servidor remoto onde voce logou via ssh. Mas ele pode ser usado para coisas mais interessantes que apenas manter seu terminal ativo caso sua conexao caia, voce pode usa-lo para trabalhos interativos com outros usuarios como em treinamentos.

Seu amigo “jose” está logado na maquina “metropole” e criou um sessão:

$ screen -S teste

Entao voce deverá logar na maquina “metropole” como root:
$ ssh root@metropole

Em seguida transforme-se no usuario “jose”:
# su – jose
$

Agora conecte na sessao que o usuario jose criou:
$ screen -x teste

Caso voce receba a mensagem de erro:
$ screen -x teste
Cannot open your terminal ‘/dev/pts/1’ – please check.

Dê permissão para /dev/pts/1:
# chmod 777 /dev/pts/1

Tente novamente, agora voce esta logado na mesma sessao que o usuario logado da maquina criou. O unico problema é que voce precisa logar como o mesmo usuario que abriu a sessao.

Fonte: http://tuxtraining.com/2009/01/16/collaboration-with-screen#more-1439

Como recuperar uma modificacao apos um “git reset –hard HEAD^”

Sem querer voce executou um “git reset –hard HEAD” para remover o ultimo patch que voce criou, só que voce esqueceu de salvar o patch e gostaria de ter novamente as modificacoes que voce fez.

Nao precisa comecar a chorar, basta seguir esta dica:

$ echo “added new file” > file2
$ git add file2
$ git commit -m ‘added file2’
Created commit f6e5064: added file2
1 files changed, 1 insertions(+), 0 deletions(-)
create mode 100644 file2

$ git reset –hard HEAD^
HEAD is now at 1a75c1d… added file1

Now to send it to server execute:
$ git push –force origin master

$ cat file2
cat: file2: No such file or directory

$ git reflog
1a75c1d… HEAD@{0}: reset –hard HEAD^: updating HEAD
f6e5064… HEAD@{1}: commit: added file2

$ git reset –hard f6e5064
HEAD is now at f6e5064… added file2

$ cat file2
added new file

Fonte: http://stackoverflow.com/questions/5473/undoing-a-git-reset-hard-head1

Update: This error could happen:
$ git push
To git@192.168.0.249:android-imxt-r9.3
! [rejected] master -> master (non-fast-forward)
error: failed to push some refs to ‘git@192.168.0.249:android-imxt-r9.3’
To prevent you from losing history, non-fast-forward updates were rejected
Merge the remote changes before pushing again. See the ‘Note about
fast-forwards’ section of ‘git push –help’ for details.

In this case use this command:
$ git push –force