Die Gesellschaft rekrutiert Bytes seit 5 Jahren und stellt fest, dass ich GIT überhaupt nicht verwenden kann. Es ist wirklich der Tod der Gesellschaft.

Offensichtlich benutze ich seit 5 Jahren Git. Nachdem ich zu Byte gekommen bin, habe ich das Gefühl, nie Git verwendet zu haben. 靠,我5年前端开发经验难道是假造的咩~,真的是栓q. All diese Befehle, die ich git rebase;git rebase -i;git cherry-pick;git stash;git commit --amend;nur in Blogs sehe, sind zur Routine geworden, woohoo. Es gibt keine Möglichkeit, ich kann nur nach Hause gehen und eine Welle von Geheimnissen lernen, und jetzt organisiere und teile ich sie.各位同学千万不要走我的老路,被人发现了真的社死。

Bild.png

Filialleitung

  • git checkout -b feat/sass-v1 origin/feat/sass-v1 // entfernte Verzweigung feat/sass-v1 auf lokal klonen
  • git checkout -b feat/saas-0817 // Erstellen Sie einen neuen Zweig feat/saas-0817 aus dem aktuellen Zweig
  • git merge [branchName] führe branchName in den aktuellen Branch ein
  • git merge [branchName] --squash merge branchName in den aktuellen Branch und führt alle Commits auf branchName zu einem Commit zusammen
  • git commit --amend 修改上次的提交信息,push后不会增加新的commit记录,但是会修改本次的commithash(也可以理解为删掉了最新的一次commit,重新又提交了一次)

Bild.png

git commit --amend
// 修改commit msg
复制代码

Bild.png

  • git branch -D [branchName] lokalen Branch löschen
  • git push origin -D [branchName] 删除远端分支

Rebase-Zweig

  • git pull --rebase origin [branchName] = git fetch + git rebase
// 假设当前分支dev, commit 为 a b c d e
// 假设master分支, commit 为 a b f g h
git pull --rebase origin master
// 当前分支dev commit 变为 a b c d e f g h
复制代码
  • Git-Rebase-Master
// 假设当前分支dev, commit 为 a b c d e
// 假设master分支, commit 为 a b f g h
git pull --rebase origin master
// 当前分支dev commit 变为 a b f g h c d e
复制代码

Stash-Stash-Code

  • Szenario: Wenn Ihre Funktion nicht entwickelt wurde und nicht festgeschrieben werden kann, Sie aber jetzt den Master rebasen müssen, was sollten Sie mit dem Code im Cache-Bereich tun? Wenn Sie ein paar Zeilen Code geschrieben haben, aber jetzt zu anderen Zweigen wechseln müssen, um Fehler zu beheben, was sollten Sie mit dem Code im Cache tun? Verwenden Sie einfach git stash
  • git stash stash-code
  • git stash pop stellt den Workspace und den Cache wieder her, entfernt stashid
  • git stash list, um den aktuellen Stash anzuzeigen

Bild.png 注意:stash@{0} stash@{1} stash@{2} 是stashname

  • git stash apply stashname 恢复指定贮藏代码到工作区和缓存区,会保留stashid
  • git stash save 'msg' 带备注贮藏
  • git stash show -p zeigt die neuesten stashdateispezifischen Änderungen an
  • git stash show -p stashname zeigt die spezifischen Änderungen an der angegebenen Stash-Datei

verpflichten

  • git commit -m "msg" --no-verify erzwingt Commits ohne Überprüfung
  • git push -f 强制提交代码并以本地版本代码为主覆盖远程 git push -f是不安全的,git push --force-with-lease更安全,注意--force-with-lease失败后再执行一次也会强制提交覆盖

reset回退

  • git log 查看提交日志
  • git reset 将所有暂存区回退到工作区
  • git checkout . 丢弃工作区所有的更改
  • git reset --hard [commit hash] 将从commithash及之后的丢弃
  • git reset --hard 将暂存区、工作区所有内容丢弃
  • git reset --soft [commit hash] 将从commithash及之后的提交回退到暂存区
  • git reset --soft HEAD~4 回退最近4次提交到暂存区

cherry-pick 复制提交

  • 场景:当你在merge或者rebase的时候发现冲突太多了,想哭的时候,可以用原分支check目标分支处理,然后再cherry-pick当前分支的每个提交,这样冲突就会少很多。或者另一分支上有些代码还没有merge到master,但是你当前分支又非要用的时候,就可以cherry-pick过来一份。
  • git cherry-pick [commit hash] 将其他分支上已提交的commit在当前分支再提交一次,产生新的commithash

revert

  • git revert [commit hash] 非merge的commit
  • git revert -m [1|2] [commit hash] merge类型的commit
    • 通过git show [commit hash]查看

Bild.png

- 第三行第一个hash为编号1,第二个hash为编号2,以哪个父hash为主线则保留哪个,删除另一个
复制代码

Bild.png

- git revert -m 1 bd86846 则回滚bd86846的提交,且以ba25a9d master分支为主线保留,回滚掉1c7036f 所在分支提交
复制代码

rebase -i

  • 场景:使用merge导致git提交线乱七八糟,提交日志过多非常难看。自从使用了rebase提交线变得无比丝滑,使用rebase -i合并每个需求的所有提交成1个,使日志变得清晰

Bild.png

  • git rebase -i HEAD~10 调整最近10次提交的日志、或合并多次提交为1次,让log更好看更清晰

p使用, pick = use commit

s合并掉, squash = use commit, but meld into previous commit

所有的提交按时间倒序排列

被s的会合并到上一次commit,也就是当前排列的上一个里面

Bild.png

scope

feat: 新功能、新特性

fix: 修改 bug

perf: 更改代码,以提高性能(在不影响代码内部行为的前提下,对程序性能进行优化)

refactor: 代码重构(重构,在不影响代码内部行为、功能下的代码修改)

docs: 文档修改

Stil: Änderung des Codeformats, beachten Sie, dass es sich nicht um eine CSS-Änderung handelt (z. B. Semikolon-Änderung)

Test: Testfälle hinzufügen und ändern

build: wirkt sich auf die Projekterstellung oder Abhängigkeitsänderung aus

zurücksetzen: den letzten Commit rückgängig machen

ci: Continuous-Integration-bezogene Dateiänderung

Hausarbeit: andere Modifikationen (Modifikationen, die nicht in den oben genannten Typen enthalten sind)

release: eine neue Version veröffentlichen

Workflow: Workflow-bezogene Dateiänderung

以上仅为个人学习总结,欢迎评论讨论

Bild.png

觉得不错的记得点个赞哦~

Ich denke du magst

Origin juejin.im/post/7133045617877581831
Empfohlen
Rangfolge