/* */

Chris  -  git - wahn

 
Riki und Rudi Chris Michi Doris 

Committete Änerungen die noch nicht gepusht sind los werden (z.b merge der schief gegangen ist)

 

git reset --hard origin/master # will set your local branch to match the representation of the remote just pulled down.

 

 

anzeigen was committed wird

Für eine Übersicht.

git diff --stat --cached origin/master

Fürs diff:

 

git diff --cached origin/master

 

 

checken was ein git merge <branch> tun würde

git checkout dev-branch
git diff origin/master
git cherry -v
 
 

git explosion nach einem force push

git pull ruiniert alle Dateien mit >>> === und <<<

git status sagt man ist in einem merge

git merge abort (oder so)

git pull --rebase

Einen Pull-Request für GitHub vorbereiten

git config user.email xyz@users.noreply.github.com
git commit --signoff 
git remote add upstream https://github.com/home-assistant/core.git
git fetch upstream
git checkout -b addfix_something_pr upstream/dev
git stash apply XYZ
git push -u origin addfix_somethiung_pr

Ein Verzeichnis mit History in ein anderes Repo moven

Siehe:

https://stackoverflow.com/questions/41811986/git-move-directory-to-another-repository-while-keeping-the-history

 

git clone <repourl>/repo-1.git 
git clone <repourl>/repo-2.git
cd repo-1
git remote rm origin # delete link to original repository to avoid any accidental remote changes
git filter-branch --subdirectory-filter dir-to-move -- --all  # dir-to-move is being moved to another repo.  This command goes through history and files, removing anything that is not in the folder.  The content of this folder will be moved to root of the repo as a result. 
# This folder has to be moved to another folder in the target repo.  So, move everything to another folder.
 
# wieder zurück moven mit history:
git filter-branch -f --index-filter \
'git ls-files -s | sed -e "s/\t\"*/&dir-to-move\//" |
    GIT_INDEX_FILE=$GIT_INDEX_FILE.new \
        git update-index --index-info &&
 mv "$GIT_INDEX_FILE.new" "$GIT_INDEX_FILE"' HEAD
# Above command will go through history and rewrite the history by adding dir-to-move/ to each files.  As a result, all files will be moved to a subfolder /dir-to-move.  Make sure to use gnu-sed as OSX sed doesn't handle some extensions correctly.  For eg. \t
 
 

im ziel repo dann:

git clone repo-2
git remote add master ../repo-1/
git pull master master --allow-unrelated-histories
git push  # push everything to remote 

 

 

easy oder?

 

 

Removing sensitive data from a repository

docs.github.com/en/authentication/keeping-your-account-and-data-secure/removing-sensitive-data-from-a-repository

Der commit sollte dann verschwinden. Sollten dann "unreferenced" bzw "dangling" Commits überbleiben und nicht verschwinden ist der commit noch in einem Tag oder einem Pull - Request referenziert. Da hilft es dann auch nicht den Branch mit dem PR zu löschen, es muss (Stand 202209) ein Ticket bei GitHub aufgemacht werden.

git fsck --lost-found --dangling -v --name-objects 2>&1 | grep <COMMITID>

gibt es den Branch?

git ls-remote

über die github->issues Seite kann man rausfinden welcher PR das ist.

 

Hints zu git fsck blog.frankel.ch/git-cleanup/