git ls-remote --tags origin | awk '{ print $2}' | awk -F "/" '{print $3}' | sort -r | xargs -n 1 git push --delete origin
TAG=$(git describe --abbrev=0 --tags)
git log --tags --simplify-by-decoration --pretty="format:%ai %d"
$ curl -L https://repo1.maven.org/maven2/com/madgag/bfg/1.14.0/bfg-1.14.0.jar > /opt/bfg.jar
$ java -jar /opt/bfg.jar --strip-blobs-bigger-than 100M ./
$ git reflog expire --expire=now --all && git gc --prune=now --aggressive
git update-index --skip-worktree
git update-index --no-skip-worktree
git checkout refs/
refs/tags
refs/remotes
refs/heads(branches)
git push origin :refs/tags/release01
git ls-tree --full-tree -r HEAD
git config --global credential.helper store
git tag | xargs git tag -d
tabsize
)set ?ts=2 or ?ts=4 on end of url file
Você alterou um ou mais arquivos e não quer que eles apareçam no status
para serem commitados
Salvar alterações para não serem subidas
$ git stash save "configuracoes locais para eclipse"
HEAD is now at d670af6 voltando ao properties original do andrey
Listando os stashs feitos
$ git stash list
stash@{0}: On FKF-31: configuracoes locais para eclipse
$ git status
On branch FKF-31
nothing to commit, working directory clean
Voltando a alteração para o versionamento
$ git stash pop stash@{0}
git branch onecommit
git checkout onecommit
git cherry-pick 7300a6130d9447e18a931e898b64eefedea19544 #### From the other branch
git push origin {branch}
git fetch --all
git reset --hard origin/master
git config --global mergetool.keepBackup false
git rebase --interactive -p um-commit-antes-do-desejado
#### depois só ir dando `git rebase --skip`
#### algumas coisas vai ter que fazer merge mas o -p minimiza isso
Apenas para tirar da lista para ser comitado
git reset HEAD nomeArquivo
Desfazendo as alteracoes de uma arquivo
git checkout -- filename #### ou
git checkout HEAD^ filename
git checkout --orphan <branchname>
Setar tempo da cache da senha
git config --global credential.helper 'cache --timeout=3600' #### uma hora
Onde ficam os passwords salvos do HTTPS
~/.git-credentials
Rode o script (tem que ser feito em cada branch)
sh git-author-rewrite.sh
Se precisar rodar denovo (para outra branch por exemplo) apague a pasta de backup
rm -rf .git/refs/original/
Faça push de cada branch
git push -f
Faça push das tags (só precisa ser feito uma vez, diferente das branchs que devem ser feitas uma cada)
git push --tags -f
Outro script que parece que funcionou melhor
$ git filter-branch -f --env-filter '
if [ "$GIT_AUTHOR_EMAIL" = "elvisefs@br.ibm.com" ]; then \
export GIT_AUTHOR_NAME="Elvis de Freitas" GIT_AUTHOR_EMAIL="edigitalb@gmail.com"; \
fi
'
git push novoRemote refs/remotes/antigoRemote/*:refs/heads/*
git remote -v
git submodule add git@mygithost:billboard lib/billboard
ou mexa no .gitmodules
[submodule "lib/billboard"]
path = lib/billboard
url = git@mygithost:billboard
$ git clone https://github.com/mageddo/my-project.git
$ cd my-project/
$ git submodule init
$ git submodule update # ou git submodule update --init --recursive
Mude no .gitmodules
e rode git submodule sync
para atualizar as URLs
git pull
git submodule update
mesmo que o submodule esteja com codigo modificado esse ultimo comando vai fazer checkout no commit setado no projeto root deixando asssim no mesmo estado, mas os arquivos editados ainda ficam alterados aguardando para serem comitados
para saber de dentro do projeto root se os submodules estão com modificacoes sem commit basta rodar git status como no exemplo abaixo:
$ git status
On branch master
Your branch is up-to-date with 'origin/master'.
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git checkout -- <file>..." to discard changes in working directory)
(commit or discard the untracked or modified content in submodules)
modified: my-project-module-1 (modified content, untracked content)
no changes added to commit (use "git add" and/or "git commit -a")
$ cat ~/.ssh/config
Host github.com
HostName github.com
Port 22
User mageddo
IdentityFile ~/.ssh/github
Host bitbucket-mageddo
HostName bitbucket.org
User git
IdentityFile ~/.ssh/bitbucket-mageddo
Host bitbucket.org
HostName bitbucket.org
User git
IdentityFile ~/.ssh/bitbucket
$ git diff feature master --name-status
Mostra as diferencas do master para o meu
$ git config --list
$ git filter-branch --tree-filter "find . -name '*.php' -exec sed -i -e \
's/originalpassword/newpassword/g' {} \;"
Para buscar e substituir em qualquer arquivo (ignorando a extensão)
$ git filter-branch -f --tree-filter "find . -type f -exec sed -i -e
's/5172net/mypassword/g' {} ;"
git blame -L250,265 fileName
git log --abbrev-commit --oneline --pretty="%h %ci %an %s\n"
/repo/xpto/WithdrawBatchServiceImpl.java
git reset aff5fba0dbf59ca9bddb009d8c68e012aed67e3e git checkout aff5fba0dbf59ca9bddb009d8c68e012aed67e3e -- .
git checkout filename
$ git checkout --orphan latest_branch
$ git add -A
$ git commit -am "commit message"
$ git branch -D master
$ git branch -m master
remover untracked files
$ git clean -f -n
$ git clean -f
git log -p -G '^Minha Regex$' x.java
git show HEAD~4:index.html > local_file
git merge -X theirs origin/master
git diff --word-diff=color
APP_VERSION=1.0.0
if git rev-parse "$APP_VERSION^{}" >/dev/null 2>&1; then
echo "> Version already exists $APP_VERSION"
exit 3
fi
.gitattributes
* text eol=lf
*.bat text eol=crlf
*.so binary
*.dll binary
*.exe binary
*.png binary
*.jpg binary
*.gif binary
*.jar binary
*.7z binary
*.tar binary
*.tar.gz binary
*.tgz binary
*.zip binary
git rev-list HEAD --count
Nesse modo quando voce for fazer push via terminal vai precisar passar o personal token gerado nessa url
Isso vai desfazer exatamente o que foi feito nesse commit, ou seja tirar a segunda linha do arquivo que tinha sido adicionada, não vai reverter os commits seguidos
$ git revert 765321fdff6a5d6829d86f67bef3a2d9c7c5846f
Isso vai reverter tudo que foi feito do commit a até o B de forma inclusiva
$ git revert -n 765321fdff6a5d6829d86f67bef3a2d9c7c5846f^..627fd0df953689bbde98024be30851152ea54ed5
git status
On branch master
You are currently reverting commit 765321f.
(all conflicts fixed: run "git revert --continue")
(use "git revert --abort" to cancel the revert operation)
Changes to be committed:
(use "git reset HEAD <file>..." to unstage)
modified: v1.txt
deleted: v3.txt
commit 627fd0df953689bbde98024be30851152ea54ed5
Author: Elvis de Freitas <edigitalb@gmail.com>
Date: Thu Oct 21 10:25:48 2021 -0300
third commit
diff --git a/v3.txt b/v3.txt
new file mode 100644
index 0000000..29ef827
--- /dev/null
+++ b/v3.txt
@@ -0,0 +1 @@
+v3
commit 765321fdff6a5d6829d86f67bef3a2d9c7c5846f
Author: Elvis de Freitas <edigitalb@gmail.com>
Date: Thu Oct 21 10:25:24 2021 -0300
second commit
diff --git a/v1.txt b/v1.txt
index 626799f..8d3ac76 100644
--- a/v1.txt
+++ b/v1.txt
@@ -1 +1,2 @@
v1
+commit 2
commit 203465d02e0228dfd9317d997cf418f33863c211
Author: Elvis de Freitas <edigitalb@gmail.com>
Date: Thu Oct 21 10:25:08 2021 -0300
creating v1 file
diff --git a/v1.txt b/v1.txt
new file mode 100644
index 0000000..626799f
--- /dev/null
+++ b/v1.txt
@@ -0,0 +1 @@
+v1
git archive master --format=zip -o cnab-itau.zip
git diff refs/heads/feat/fruit refs/tags/feat/fruit
git push --set-upstream origin xpto
$ git config --global credential.helper "store --file=$HOME/.git-credentials"