Nie rozmawiałem jeszcze z nikim, kto...
...nie widzi w R# niczego szczególnego i zna go dobrze
...nie widzi w Vimie* niczego szczególnego i zna go dobrze *Vimie w IDE(VS, Rider, VSCode)
...nie widzi w Gicie niczego szczególnego i zna go dobrze
(Głównie trudność dla użytkowników Windowsa)
Zrozumienie i przyzwyczajenie się do rozproszonej architektury Gita,
w tym do commitów latających
między branchami i repozytoriami
Zawsze później można się z niego wycofać.
wip = !git add --all && git commit -m "WIP"
Jesteśmy spokojni, że nie przemycimy przypadkiem zmiany, która powstała niechcący lub tylko na chwilę.
bda54862 Remove phone book button from main canvas
bb4efb64 Add phone book to shell resources
9cff0517 Add phone book image for slide panel
18b3ab24 Set phone book tab view model
251c65eb Remove not used catalog from phone book project
fa27d977 Use phone book view model from old module
836f9507 Clean phone book tab in side panel
98384dbb Move resources from old module to new phone book
b179f970 Move phone book view from old modules to side panel
882d2cb1 Remove referencs to old phone book module
3633f485 Merge old phone book module style with new in side panel
061441fb Set close phone book button to hide panel
9b54878f Remove unused button from phone book
153dbcd6 Remove no longer needed files from old phone book module
2895928d Remove old phone book module
6182277b Replace phone book buttons style to improve readibility
49ff42b6 Remove shadows from phone book
7d6584da Update entity migrations instruction
git reset Y; git checkout Y
)git reset --hard
)git stash --include-untracked
)git add add Y -p
), resztę z pliku
wywal (git checkout Y
)
git add .
),
ale wyklucz zmianę X z pliku Y (git reset Y -p)
i wywal (git
checkout .
)
Modyfikacje aliasów można wykonywać w gitconfigu
[alias]
st = status
ci = commit -v
Albo za pomocą polecenia
git config --global alias.st status
git config --global alias.ci 'commit -v'
Przykład użycia: git st
Aliasy mogą być też na poziomie Basha - wówczas nie trzeba pisać Git.
vd = difftool --tool=vimdiff
vds = difftool --tool=vimdiff --staged
wip = !git add --all && git commit -m WIP
pfl = push --force-with-lease
standup = log --since '1 day ago' --oneline --author
krzysztof.morcinek@gmail.com # use your mail
cam = commit -am
jira = log --since '6am' --oneline --author krzysztof.morcinek@gmail.com
# use your mail
ls = log --pretty=format:"%C(yellow)%h%Cred%d\\ %Creset%s%Cgreen\\
[%cn]" --decorate
mt = mergetool
mff = merge --ff-only
cpc = cherry-pick --continue
rei = rebase --interactive
rec = rebase --continue
a = "!f() { git alias; }; f"
alias = ! git config --get-regexp ^alias\\. | sed -e s/^alias\\.// -e
s/\\ /\\ =\\ /
git pull --rebase
git config --global --bool pull.rebase true
git checkout -
git status -s
Np.
git add . -N
Przykładowe korzyści:
Record only the fact that the path will be added later. An entry for the path is placed in the index with no content. This is useful for, among other things, showing the unstaged content of such files with git diff and committing them with git commit -a.
Oprócz punktu 6. (szerokość ciała), wszystkie punkty robią znaczącą różnicę.
Testowałem
każdy z nich w innych
wariacjach, te naprawdę mają sens.
git commit
> git commit -m
git stash save "my stash"
git add -i
git config --global -e
--ff
--no-ff
--ff-only
--squash
Pozwala np. na łatwe przerzucanie zmian pomiędzy repozytoriami nie związanymi ze sobą.
Przykład:
git format-patch HEAD~2
# Output:
# 0001-make-stuff-more-awesome.patch
# 0002-allow-users-to-be-locked.patch
cp *.patch ANOTHER_REPO_PATH
cd ANOTHER_REPO_PATH
git am *.patch
git add -p
git reset -p
--delete
Można używać zamiast starej :name
Np. usuwanie zdalnego brancha:
git push remote_name --delete branch_name
Then you don't need reflog to roolback
git reset --hard origin/branch-name
REuse REcorded REsolution of conflicted merges
What rerere does is save the resolution of a conflict so that it can be re-applied later if it sees
the same conflict again. When Git sees the conflict which it already has a resolution recorded for,
it will apply the resolution automatically for you, and give you the opportunity to accept the
resolution as applied, or change it.
git config --global rerere.enabled true
GitWarsztaty.pl/materialy/git-log.pdf
Pickaxe - git log -S text
Warto łączyć z innymi, np. od razu podać -p
Yet again it was worth to create small commits :)
Mam nadzieję, że od teraz
Ty również :)
Życzę wszystkim, żeby z pomocą Gita
praca posuwała się do przodu w zawrotnym tempie