forked from vincent/notebook
Merge branch 'master' of git.ducamps.win:vincent/notebook
This commit is contained in:
commit
b53bcc78a3
47
IT/git/Rewrite_History.md
Normal file
47
IT/git/Rewrite_History.md
Normal file
@ -0,0 +1,47 @@
|
|||||||
|
# Rewrite Git History
|
||||||
|
|
||||||
|
## Changing the Last Commit
|
||||||
|
|
||||||
|
If you want to modify your last commit message:
|
||||||
|
|
||||||
|
`git commit --amend`
|
||||||
|
|
||||||
|
## Rewrite multiple Commit
|
||||||
|
|
||||||
|
for that you need to use rebase in interactive mode like this:
|
||||||
|
|
||||||
|
` git rebase -i HEAD^3 `
|
||||||
|
|
||||||
|
this will open an editor wit list of commit you need to modiy this with needed action to do
|
||||||
|
|
||||||
|
### Reordering Commit
|
||||||
|
|
||||||
|
ON this editor you can invert line to change commit order, git will reaply commit in wew order
|
||||||
|
|
||||||
|
### Squash & fixup commit
|
||||||
|
|
||||||
|
**Squash** option will merge will merge xommit with the previous and ad commit message in the new commit message
|
||||||
|
|
||||||
|
**Fixup** do same thing put forgot commit message
|
||||||
|
|
||||||
|
### Splitting a Commit
|
||||||
|
|
||||||
|
you can do that with **edit** command
|
||||||
|
|
||||||
|
git rebase will stop after apply commit where you hae put edit
|
||||||
|
|
||||||
|
ad this moment you can process to a Head reset and commit when you want to add commit modification like ewample below
|
||||||
|
|
||||||
|
```sh
|
||||||
|
git reset HEAD^
|
||||||
|
git add README
|
||||||
|
git commit -m 'Update README formatting'
|
||||||
|
git add lib/simplegit.rb
|
||||||
|
git commit -m 'Add blame'
|
||||||
|
git rebase --continue
|
||||||
|
```
|
||||||
|
|
||||||
|
### delete
|
||||||
|
|
||||||
|
**drop** will delete comite rebase will not apply modification during processing
|
||||||
|
to use by example if you have done a modifcation and a revert
|
66
IT/git/git.md
Normal file
66
IT/git/git.md
Normal file
@ -0,0 +1,66 @@
|
|||||||
|
# git
|
||||||
|
|
||||||
|
## Add in staging only a part of modification done in a file
|
||||||
|
|
||||||
|
`git add -p`
|
||||||
|
|
||||||
|
this will ask if you want to add each modification with this option:
|
||||||
|
|
||||||
|
- *y* - Yes, add this hunk
|
||||||
|
- *n* - No, don’t add this hunk
|
||||||
|
- *d* - No, don’t add this hunk and all other remaining hunks. Useful if you’ve already added what you want to, and want to skip over the rest
|
||||||
|
- *s* - Split the hunk into smaller hunks. This only works if there’s unchanged lines between the changes in the displayed hunk, so this wouldn’t have any effect in the example above
|
||||||
|
- *e* - Manually edit the hunk. This is probably the most powerful option. As promised, it will open the hunk in a text editor and you can edit it to your hearts content
|
||||||
|
|
||||||
|
## delete a file only from git repository
|
||||||
|
|
||||||
|
`git rm -rf --cached`
|
||||||
|
|
||||||
|
## delete a file from complete history
|
||||||
|
|
||||||
|
be carefull can't push repo last time use
|
||||||
|
|
||||||
|
`git filter-branch --tree-filter 'rm -f passwords.txt' HEAD`
|
||||||
|
|
||||||
|
## changing email adress
|
||||||
|
|
||||||
|
```
|
||||||
|
$ git filter-branch --commit-filter '
|
||||||
|
if [ "$GIT_AUTHOR_EMAIL" = "schacon@localhost" ];
|
||||||
|
then
|
||||||
|
GIT_AUTHOR_NAME="Scott Chacon";
|
||||||
|
GIT_AUTHOR_EMAIL="schacon@example.com";
|
||||||
|
git commit-tree "$@";
|
||||||
|
else
|
||||||
|
git commit-tree "$@";
|
||||||
|
fi' HEAD
|
||||||
|
```
|
||||||
|
|
||||||
|
## example de déclencheur git dans un dépot git
|
||||||
|
|
||||||
|
```bash
|
||||||
|
#!/bin/bash
|
||||||
|
GIT_REPO=`pwd`
|
||||||
|
SITE_NAME=notebook
|
||||||
|
TMP_GIT_CLONE="/tmp/$SITE_NAME"
|
||||||
|
PUBLIC_WWW="/usr/share/nginx/html/$SITE_NAME"
|
||||||
|
# get branch name
|
||||||
|
if ! [ -t 0 ]; then
|
||||||
|
read -a ref
|
||||||
|
fi
|
||||||
|
IFS='/' read -ra REF <<< "${ref[2]}"
|
||||||
|
branch="${REF[2]}"
|
||||||
|
|
||||||
|
if [ "master" == "$branch" ]; then
|
||||||
|
mkdir -p $TMP_GIT_CLONE
|
||||||
|
echo "download repo"
|
||||||
|
git clone --recursive $GIT_REPO $TMP_GIT_CLONE
|
||||||
|
cd $TMP_GIT_CLONE
|
||||||
|
export PATH="$HOME/.local/bin:$PATH"
|
||||||
|
make install -e BUILDDIR=$PUBLIC_WWW
|
||||||
|
echo "Cleaning up"
|
||||||
|
rm -Rf $TMP_GIT_CLONE
|
||||||
|
fi
|
||||||
|
exit
|
||||||
|
|
||||||
|
```
|
Loading…
Reference in New Issue
Block a user