Skip to content
wtdig edited this page Jun 12, 2017 · 2 revisions

git指令

指令参考:http://note.youdao.com/noteshare?id=3c6611caeb89d06e8c4beab99ab92426

1、创建本地git仓库

mkdir xxxx

cd xxx

pwd 查下当前的目录

git init 初始化本地仓库

2、添加新文件

git add 文件的全称 含义:将文件添加到暂存区

git commit -m '注释' 含义:将暂存区所有的文件提交到仓库中

3、查看状态

git status

4、查看修改内容,不同点

git diff

5、查看提交的日志

git log --pretty=oneline

6、版本的回退

git reset --hard HEAD^ 将本次的版本回退到上一次版本

7、查看文件的具体内容

cat 文件全称

8、回退到指定版本

git reset --hard 版本序列号(可以不全)

9、记录每一次输入的指令

git reflog

10、撤销修改

git checkout -- readme.txt

git checkout其实是用版本库里的版本替换工作区的版本,无论工作区是修改还是删除,都可以“一键还原”。

命令git checkout -- readme.txt意思就是,把readme.txt文件在工作区的修改全部撤销,这里有两种情况:

一种是readme.txt自修改后还没有被放到暂存区,现在,撤销修改就回到和版本库一模一样的状态;

一种是readme.txt已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态。

总之,就是让这个文件回到最近一次git commit或git add时的状态。

11、删除文件

rm 文件的全称

删除也是一个修改操作,我们实战一下,先添加一个新文件test.txt到Git并且提交

12、关联本地仓库和远程仓库

git remote add origin git@github.com:自己的github账户名/仓库名.git

例如:git remote add origin git@github.com:michaelliao/learngit.git

13、把本地库推送到远程仓库

git push -u origin master

把本地库的内容推送到远程,用git push命令,实际上是把当前分支master推送到远程。

由于远程库是空的,我们第一次推送master分支时,加上了-u参数,Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令。

推送成功后,可以立刻在GitHub页面中看到远程库的内容已经和本地一模一样

从现在起,只要本地作了提交,就可以通过命令:

$ git push origin master

把本地master分支的最新修改推送至GitHub,现在,你就拥有了真正的分布式版本库

14、从远程克隆一个本地库

git clone git@github.com:github账户名/仓库名.git

例如:git clone git@github.com:michaelliao/gitskills.git

15、创建分支切换到分支

git checkout -b dev

git checkout命令加上-b参数表示创建并切换,相当于以下两条命令:

$ git branch dev

$ git checkout dev

16、查看当前分支

git branch

git branch命令会列出所有分支,当前分支前面会标一个*号

17、切换分支

git checkout master

18、合并分支

git merge dev

我们把dev分支的工作成果合并到master分支上

19、删除指定的分支

git branch -d dev

查看分支:git branch

创建分支:git branch name

切换分支:git checkout name

创建+切换分支:git checkout -b name

合并某分支到当前分支:git merge name

删除分支:git branch -d name

20、分支策略

git merge --no-ff -m "merge with no-ff" dev

合并分支时,加上--no-ff参数就可以用普通模式合并,合并后的历史有分支, 能看出来曾经做过合并,而fast forward合并就看不出来曾经做过合并.

在实际开发中,我们应该按照几个基本原则进行分支管理:

首先,master分支应该是非常稳定的,也就是仅用来发布新版本,平时不能在上面干活;

那在哪干活呢?干活都在dev分支上,也就是说,dev分支是不稳定的,到某个时候,比如1.0版本发布时,再把dev分支合并到master上,在master分支发布1.0版本;

你和你的小伙伴们每个人都在dev分支上干活,每个人都有自己的分支,时不时地往dev分支上合并就可以了。

21、查看远程仓库信息

git remote

git remote -v显示更详细的信息

22、推送分支

推送分支,就是把该分支上的所有本地提交推送到远程库。推送时,要指定本地分支,这样,Git就会把该分支推送到远程库对应的远程分支上:

$ git push origin master

如果要推送其他分支,比如dev,就改成:

$ git push origin dev

但是,并不是一定要把本地分支往远程推送,那么,哪些分支需要推送,哪些不需要呢?

master分支是主分支,因此要时刻与远程同步;

dev分支是开发分支,团队所有成员都需要在上面工作,所以也需要与远程同步;

bug分支只用于在本地修复bug,就没必要推到远程了,除非老板要看看你每周到底修复了几个bug;

feature分支是否推到远程,取决于你是否和你的小伙伴合作在上面开发。

总之,就是在Git中,分支完全可以在本地自己藏着玩,是否推送,视你的心情而定

23、多人协作工作

因此,多人协作的工作模式通常是这样:

首先,可以试图用git push origin branch-name推送自己的修改;

如果推送失败,则因为远程分支比你的本地更新,需要先用git pull试图合并;

如果合并有冲突,则解决冲突,并在本地提交;

没有冲突或者解决掉冲突后,再用git push origin branch-name推送就能成功!

如果git pull提示“no tracking information”,则说明本地分支和远程分支的链接关系没有创建,用命令git branch --set-upstream branch-name origin/branch-name。

这就是多人协作的工作模式,一旦熟悉了,就非常简单

查看远程库信息,使用git remote -v;

本地新建的分支如果不推送到远程,对其他人就是不可见的;

从本地推送分支,使用git push origin branch-name,如果推送失败,先用git pull抓取远程的新提交;

在本地创建和远程分支对应的分支,使用git checkout -b branch-name origin/branch-name,本地和远程分支的名称最好一致;

建立本地分支和远程分支的关联,使用git branch --set-upstream branch-name origin/branch-name;

从远程抓取分支,使用git pull,如果有冲突,要先处理冲突。

24、自定义git

git config --global color.ui true Git显示颜色,会让命令输出看起来更醒目:

案例: wb-wt261136@MININT-AOUKK2A MINGW64 ~ $ cd D:/sacpage

wb-wt261136@MININT-AOUKK2A MINGW64 /d/sacpage $ git clone http://gitlab.alibaba-inc.com/platform/fis_sac.git Cloning into 'fis_sac'... remote: Counting objects: 1346, done. remote: Total 1346 (delta 0), reused 0 (delta 0) Receiving objects: 100% (1346/1346), 23.44 MiB | 8.20 MiB/s, done.

wb-wt261136@MININT-AOUKK2A MINGW64 /d/sacpage $ git checkout -b daily/1.0.6 fatal: Not a git repository (or any of the parent directories): .git

wb-wt261136@MININT-AOUKK2A MINGW64 /d/sacpage $ cd fis_sac/

wb-wt261136@MININT-AOUKK2A MINGW64 /d/sacpage/fis_sac (master) $ git checkout -b daily/1.0.6 Switched to a new branch 'daily/1.0.6'

wb-wt261136@MININT-AOUKK2A MINGW64 /d/sacpage/fis_sac (daily/1.0.6) $ npm install fis_sac@1.0.1 D:\sacpage\fis_sac +-- classnames@2.1.5 +-- i18n-helper@1.1.1 +-- react-mixin@1.7.0 | +-- object-assign@2.1.1 | -- smart-mixin@1.2.1 -- uxcore@0.4.7 +-- UNMET PEER DEPENDENCY react@>=0.13.0 +-- uxcore-album@0.3.1 | +-- classnames@2.2.5 | -- object-assign@4.1.1 +-- uxcore-alert@0.2.2 | -- object-assign@4.1.1 +-- uxcore-animate@0.1.2 | +-- less-plugin-autoprefix@1.5.1 | | +-- autoprefixer@6.7.6 | | | +-- browserslist@1.7.6 | | | | -- electron-to-chromium@1.2.6 | | | +-- caniuse-db@1.0.30000632 | | | +-- normalize-range@0.1.2 | | | +-- num2fraction@1.2.2 | | | -- postcss-value-parser@3.3.0 | | -- postcss@5.2.16 | | +-- chalk@1.1.3 | | | +-- ansi-styles@2.2.1 | | | +-- escape-string-regexp@1.0.5 | | | +-- has-ansi@2.0.0 | | | | -- ansi-regex@2.1.1 | | | +-- strip-ansi@3.0.1 | | | -- supports-color@2.0.0 | | +-- js-base64@2.1.9 | | +-- source-map@0.5.6 | | -- supports-color@3.2.3 | | -- has-flag@1.0.0 | +-- object-assign@4.1.1 | -- rc-animate@2.0.4 | -- css-animation@1.3.2 +-- uxcore-badge@0.1.1 | +-- css-animation@1.2.6 | | -- component-classes@1.2.6 | | -- component-indexof@0.0.3 | -- object-assign@4.1.1 +-- uxcore-button@0.4.5 | -- object-assign@4.1.1 +-- uxcore-calendar@0.6.6 | +-- gregorian-calendar@4.1.6 | +-- gregorian-calendar-format@4.1.3 | | -- warning@2.1.0 | | -- loose-envify@1.3.1 | | -- js-tokens@3.0.1 | +-- object-assign@4.1.1 | +-- rc-calendar@6.0.2 | | -- rc-trigger@1.9.1 | | +-- rc-align@2.3.3 | | | +-- dom-align@1.5.3 | | | -- rc-util@4.0.2 | | -- rc-util@4.0.2 | +-- rc-time-picker@1.1.6 | -- rc-util@3.4.1 | +-- add-dom-event-listener@1.0.2 | | -- object-assign@4.1.1 | -- shallowequal@0.2.2 | -- lodash.keys@3.1.2 | +-- lodash._getnative@3.9.1 | +-- lodash.isarguments@3.1.0 | -- lodash.isarray@3.0.4 +-- uxcore-carousel@0.3.3 | +-- object-assign@4.1.1 | +-- UNMET PEER DEPENDENCY react@^0.14.0 || ^15.0.1 | +-- UNMET PEER DEPENDENCY react-dom@^0.14.0 || ^15.0.1 | -- react-slick@0.14.6 | +-- classnames@2.2.5 | +-- json2mq@0.2.0 | | -- string-convert@0.2.1 | +-- object-assign@4.1.1 | +-- react-responsive-mixin@0.4.0 | | +-- can-use-dom@0.1.0 | | -- enquire.js@2.1.5 | -- slick-carousel@1.6.0 | -- jquery@3.1.1 +-- uxcore-cascade-select@0.1.12 | -- object-assign@4.1.1 +-- uxcore-checkbox-group@1.1.2 | -- object-assign@4.1.1 +-- uxcore-collapse@1.2.0 | -- object-assign@4.1.1 +-- uxcore-crumb@0.2.1 | +-- object-assign@4.1.1 | -- uxcore-crumb-item@0.1.4 | -- object-assign@4.1.1 +-- uxcore-dialog@0.4.5 | +-- object-assign@4.1.1 | -- rc-dialog@6.2.3 | -- babel-runtime@6.23.0 | +-- core-js@2.4.1 | -- regenerator-runtime@0.10.3 +-- uxcore-dropdown@0.3.0 | +-- object-assign@4.1.1 | -- rc-dropdown@1.4.10 +-- uxcore-empty-data@0.1.2 | -- object-assign@4.1.1 +-- uxcore-form@1.8.13 | +-- deep-equal@1.0.1 | +-- lie@3.1.1 | | -- immediate@3.0.6 | +-- lodash@4.17.4 | +-- object-assign@4.1.1 | +-- uxcore-const@0.0.2 | +-- uxcore-date-form-field@0.5.4 | | +-- object-assign@4.1.1 | | -- rc-util@4.0.2 | +-- uxcore-form-field@0.2.9 | | -- object-assign@4.0.1 | +-- uxcore-form-row@0.1.4 | | -- object-assign@4.1.1 | +-- uxcore-input-form-field@0.1.7 | | -- object-assign@4.1.1 | +-- uxcore-other-form-field@0.1.4 | | -- object-assign@4.1.1 | +-- uxcore-pickable-form-field@0.2.2 | | +-- object-assign@4.1.1 | | -- uxcore-form-field@0.1.10 | | -- object-assign@4.0.1 | +-- uxcore-select-form-field@0.2.4 | | +-- natty-fetch@2.2.3 | | +-- object-assign@4.1.1 | | +-- uxcore-form-field@0.1.10 | | | -- object-assign@4.0.1 | | -- uxcore-validator@0.1.4 | +-- uxcore-switch-form-field@0.1.2 | | +-- object-assign@4.1.1 | | -- uxcore-form-field@0.1.10 | | -- object-assign@4.0.1 | +-- uxcore-textarea-form-field@0.1.11 | | +-- autosize@3.0.20 | | +-- object-assign@4.1.1 | | +-- uxcore-form-field@0.1.10 | | | -- object-assign@4.0.1 | | -- uxcore-utils@0.1.1 | | -- object-assign@4.1.1 | -- uxcore-tinymce@0.2.7 | -- object-assign@4.1.1 +-- uxcore-formatter@0.1.3 +-- uxcore-grid@1.2.2 | +-- object-assign@4.1.1 | -- react-prop-types@0.3.2 +-- uxcore-layout@1.0.5 | -- object-assign@4.1.1 +-- uxcore-load-more@0.1.2 | -- object-assign@4.1.1 +-- uxcore-mention@0.3.10 | +-- object-assign@4.1.1 | -- react-mixin@2.0.2 | -- object-assign@2.1.1 +-- uxcore-menu@1.3.1 | +-- object-assign@4.1.1 | -- rc-menu@4.13.0 | +-- dom-scroll-into-view@1.2.1 | -- object-assign@4.1.1 +-- uxcore-message@0.2.6 | +-- object-assign@4.1.1 | -- rc-notification@1.2.0 | -- rc-util@2.1.1 +-- uxcore-multi-select@0.2.2 | +-- object-assign@4.1.1 | +-- UNMET PEER DEPENDENCY react@>=0.13.0 | -- uxcore-button@0.3.12 +-- uxcore-pagination@0.2.4 | -- object-assign@4.1.1 +-- uxcore-pickable@1.1.3 | -- object-assign@4.1.1 +-- uxcore-popover@0.3.5 | +-- object-assign@4.1.1 | +-- rc-tooltip@3.3.5 | +-- UNMET PEER DEPENDENCY react@>=0.13.0 | -- uxcore-button@0.3.12 +-- uxcore-progress@1.1.2 | +-- object-assign@4.1.1 | -- rc-progress@1.0.4 | -- object-assign@4.1.1 +-- uxcore-radiogroup@1.2.1 | -- object-assign@4.1.1 +-- uxcore-rate@0.1.5 | -- object-assign@4.1.1 +-- uxcore-select2@0.3.5 | +-- object-assign@4.1.1 | -- rc-select@6.4.8 +-- uxcore-steps@1.1.7 | -- object-assign@4.1.1 +-- uxcore-switch@0.1.3 | +-- object-assign@4.1.1 | -- rc-switch@1.4.3 | -- classnames@2.2.5 +-- uxcore-table@1.12.16 | +-- natty-fetch@2.1.3 | | -- natty-storage@1.1.2 | +-- object-assign@4.1.1 | +-- uxcore-cell-field@0.1.4 | | -- object-assign@4.1.1 | +-- uxcore-checkbox-cell-field@0.1.1 | | -- object-assign@4.1.1 | +-- uxcore-date-cell-field@0.1.6 | | -- object-assign@4.1.1 | +-- uxcore-dropdown@0.2.6 | -- uxcore-validator@0.1.4 +-- uxcore-tabs@0.5.3 | +-- object-assign@4.1.1 | -- rc-tabs@7.0.13 | +-- UNMET PEER DEPENDENCY react@^0.14.3 || ^15.0.0 | -- react-hammerjs@0.5.0 | -- hammerjs@2.0.8 +-- uxcore-tag@1.0.2 | +-- object-assign@4.1.1 | -- uxcore-dialog@0.3.10 | +-- rc-dialog@5.4.0 | | -- rc-util@3.4.1 | -- rc-util@2.0.3 +-- uxcore-tooltip@0.3.4 | -- object-assign@4.1.1 +-- uxcore-totop@0.2.0 | -- object-assign@4.1.1 +-- uxcore-transfer@0.3.4 | +-- deepcopy@0.5.0 | -- object-assign@4.1.1 +-- uxcore-tree@0.2.10 | +-- object-assign@4.1.1 | -- rc-tree@1.3.10 | -- object-assign@4.1.1 +-- uxcore-tree-select@0.1.4 | +-- object-assign@4.1.1 | -- rc-tree-select@1.9.0 | +-- classnames@2.2.5 | -- object-assign@4.1.1 +-- uxcore-uploader@1.5.8 | +-- object-assign@4.1.1 | -- uploadcore@2.3.1 -- uxcore-validator@0.2.0 -- object-assign@4.1.1

npm WARN uxcore-button@0.3.12 requires a peer of react@>=0.13.0 but none was installed. npm WARN uxcore-transfer@0.3.4 requires a peer of react@>=0.13.0 but none was installed. npm WARN uxcore-button@0.3.12 requires a peer of react@>=0.13.0 but none was installed. npm WARN uxcore-layout@1.0.5 requires a peer of react@>=0.13.0 but none was installed. npm WARN react-slick@0.14.6 requires a peer of react@^0.14.0 || ^15.0.1 but none was installed. npm WARN react-slick@0.14.6 requires a peer of react-dom@^0.14.0 || ^15.0.1 but none was installed. npm WARN react-hammerjs@0.5.0 requires a peer of react@^0.14.3 || ^15.0.0 but none was installed.

wb-wt261136@MININT-AOUKK2A MINGW64 /d/sacpage/fis_sac (daily/1.0.6) $ nowa lib

Update available: nowa@1.1.2 (Current: 1.1.0) Run npm i nowa -g to update. Installing dependencies of libraries... [tnpm ?????o§??¤o] ??°?????o 4.19.4?????°?????o 4.19.1??èˉ·?°??????o§?°??°???? ????ˉ??¥?§è? tnpm install -g tnpm@release-4 ?¥??è£?-¤??? ?|???¤o?2???é??èˉ·?°èˉ sudo tnpm install -g tnpm@release-4

[1/12] uxcore-validator@~0.2.0 installed at node_modules.0.2.0@uxcore-validator [2/12] uxcore-formatter@~0.1.4 installed at node_modules.0.1.4@uxcore-formatter [3/12] uxcore-button@~0.4.6 installed at node_modules.0.4.10@uxcore-button anti semver uxcore-select2@0.4.5 ao rc-select ao classnames@2.x use uxcore-select2's dependencies version: "^2.1.2" instead of "2.x" anti semver uxcore-menu@1.4.3 ao rc-menu ao classnames@2.x use uxcore-menu's dependencies version: "^2.1.2" instead of "2.x" anti semver uxcore-menu@1.4.3 ao rc-menu ao object-assign@4.x use uxcore-menu's dependencies version: "^4.0.0" instead of "4.x" anti semver uxcore-calendar@0.7.2 ao rc-time-picker ao classnames@2.x use uxcore-calendar's dependencies version: "^2.1.2" instead of "2.x" [4/12] uxcore-menu@~1.4.1 installed at node_modules.1.4.3@uxcore-menu anti semver uxcore-calendar@0.7.2 ao rc-calendar ao classnames@2.x use uxcore-calendar's dependencies version: "^2.1.2" instead of "2.x" [5/12] uxcore-message@~0.2.6 installed at node_modules.0.2.6@uxcore-message [6/12] uxcore-calendar@~0.7.1 installed at node_modules.0.7.2@uxcore-calendar anti semver uxcore-table@1.12.19 ao uxcore-tree@0.2.10 ao rc-tree ao classnames@2.x use uxcore-tree's dependencies version: "^2.1.2" instead of "2.x" anti semver uxcore-table@1.12.19 ao uxcore-tree@0.2.10 ao rc-tree ao object-assign@4.x use uxcore-tree's dependencies version: "^4.0.0" instead of "4.x" [7/12] @ali/uxcore-cascade-multi-select@~1.5.x installed at node_modules.1.5.3@@ali\uxcore-cascade-multi-select [8/12] uxcore-cascade-select@~0.2.0 installed at node_modules.0.2.3@uxcore-cascade-select [9/12] uxcore-select2@~0.4.2 installed at node_modules.0.4.5@uxcore-select2 [10/12] uxcore-table@~1.12.16 installed at node_modules.1.12.19@uxcore-table [11/12] uxcore-form@~1.8.13 installed at node_modules.1.8.14@uxcore-form [12/12] uxcore-dialog@~0.5.0 installed at node_modules.0.5.5@uxcore-dialog peerDependencies WARNING @ali/uxcore-cascade-multi-select@1.5.3 ao uxcore-button@0.3.12 requires a peer of react@>=0.13.0 but none was installed All packages installed (92 packages installed from npm registry, used 3s, speed 369.29kB/s, json 129(250.67kB), tarball 885.64kB) Recently updated (since 2017-03-02): 8 packages (detail see file D:\sacpage\fis_sac\node_modules.recently_updates.txt) Today: a uxcore-select2@0.4.5 (10:28:12) a @ali/uxcore-cascade-multi-select@1.5.3 ao uxcore-kuma@2.11.0 (10:50:19) Building libraries... Time: 1859ms Asset Size Chunks Chunk Names uxcore.js 3.98 MB 0 [emitted] uxcore Minify file: D:\sacpage\fis_sac\dist\uxcore.js

wb-wt261136@MININT-AOUKK2A MINGW64 /d/sacpage/fis_sac (daily/1.0.6) $ git pull origin daily/1.0.6 From http://gitlab.alibaba-inc.com/platform/fis_sac

  • branch daily/1.0.6 -> FETCH_HEAD Updating a3f67bd..6107d8a error: Your local changes to the following files would be overwritten by merge: dist/uxcore.js dist/uxcore.min.js src/lib/uxcore.js src/lib/uxcore.min.js Please commit your changes or stash them before you merge. Aborting

wb-wt261136@MININT-AOUKK2A MINGW64 /d/sacpage/fis_sac (daily/1.0.6) $ git fetch --all Fetching origin

wb-wt261136@MININT-AOUKK2A MINGW64 /d/sacpage/fis_sac (daily/1.0.6) $ git reset --hard origin/daily/1.0.6 HEAD is now at 6107d8a 2017-3-8 16:10 xiaoyi update

wb-wt261136@MININT-AOUKK2A MINGW64 /d/sacpage/fis_sac (daily/1.0.6) $ git pull origin daily/1.0.6 From http://gitlab.alibaba-inc.com/platform/fis_sac

  • branch daily/1.0.6 -> FETCH_HEAD Already up-to-date.

wb-wt261136@MININT-AOUKK2A MINGW64 /d/sacpage/fis_sac (daily/1.0.6) $ git status On branch daily/1.0.6 Changes not staged for commit: (use "git add ..." to update what will be committed) (use "git checkout -- ..." to discard changes in working directory)

    modified:   dist/app-en.js
    modified:   dist/app-zh-cn.js
    modified:   dist/applyforaccount-en.js
    modified:   dist/applyforaccount-zh-cn.js
    modified:   dist/demo-en.js
    modified:   dist/demo-zh-cn.js
    modified:   dist/home-en.js
    modified:   dist/home-zh-cn.js
    modified:   dist/menubar-en.js
    modified:   dist/menubar-zh-cn.js
    modified:   dist/rerun-en.js
    modified:   dist/rerun-zh-cn.js
    modified:   dist/tossledger-en.js
    modified:   dist/tossledger-zh-cn.js

Untracked files: (use "git add ..." to include in what will be committed)

    dist/jobview-en.js
    dist/jobview-zh-cn.js
    dist/jobview.css
    dist/jobview.html
    html/jobview.html
    src/pages/jobview/

no changes added to commit (use "git add" and/or "git commit -a")

wb-wt261136@MININT-AOUKK2A MINGW64 /d/sacpage/fis_sac (daily/1.0.6) $ git add .

wb-wt261136@MININT-AOUKK2A MINGW64 /d/sacpage/fis_sac (daily/1.0.6) $ git commit -m 'add jobview page wb-wt261136' [daily/1.0.6 eb88d91] add jobview page wb-wt261136 23 files changed, 625 insertions(+), 14 deletions(-) rewrite dist/applyforaccount-en.js (97%) rewrite dist/applyforaccount-zh-cn.js (98%) create mode 100644 dist/jobview-en.js create mode 100644 dist/jobview-zh-cn.js create mode 100644 dist/jobview.css create mode 100644 dist/jobview.html create mode 100644 html/jobview.html create mode 100644 src/pages/jobview/CascadeMultiSelect.less create mode 100644 src/pages/jobview/PageJobview.js create mode 100644 src/pages/jobview/PageJobview.less create mode 100644 src/pages/jobview/index.js

wb-wt261136@MININT-AOUKK2A MINGW64 /d/sacpage/fis_sac (daily/1.0.6) $ git push -u origin daily/1.0.6 Counting objects: 26, done. Delta compression using up to 4 threads. Compressing objects: 100% (25/25), done. Writing objects: 100% (26/26), 23.98 KiB | 0 bytes/s, done. Total 26 (delta 17), reused 0 (delta 0) remote: {"data":"success","code":200}????·2è¢?è??§??°?°?????3???????????èˉ·?¥??é?????????assets.alibaba-inc.com??èˉ|?è§http://www.atatech.org/articles/53341 To http://gitlab.alibaba-inc.com/platform/fis_sac.git 6107d8a..eb88d91 daily/1.0.6 -> daily/1.0.6 Branch daily/1.0.6 set up to track remote branch daily/1.0.6 from origin.

一、框架知识

1、spring mvc

  1. springmvc实现国际化
  1. spring mvc异步处理
  1. springmvc视图解析器之excel导出
  1. 视图理解

2、spring

  1. spring Aop
  1. spring的异步操作
  1. spring事务管理
  1. spring源码分析

3、mybatis

  1. mybatis

4、strtus2

  1. strtus2第一部分
  1. strtus2第二部分

5、spring boot

  1. spring boot ssm
  1. spring boot 案例演示

6、spring cloud

  1. spring cloud

7、tomcat

  1. tomcat下目录
  1. tomcat源码分析一
  1. tomcat源码分析二

二、技术栈

1、java基础

  1. 类加载器classloader
  1. 枚举类的使用
  1. IO流、序列化
  1. io流
  1. 泛型使用
  1. 多线程并发编程
  1. 多线程之线程暂停
  1. 高性能并发框架disruptor
  1. 动态代理
  1. 集合的源码分析
  1. jvm

2、web开发

  1. cookie session
  1. request response
  1. jsp el
  1. filter过滤器
  1. listner监听器
  1. 上传下载的使用
  1. web安全问题
  1. groovy基本语法

3、日志使用

  1. 日志的使用
  1. 日志的监控
  1. 日志的常见使用
  1. log日志的使用

4、消息中间件

  1. 消息中间件activemq
  1. 消息中间件rocketmq
  1. 消息中间件kafka

5、权限控制

  1. shiro权限表设计
  1. ssm shiro的使用

6、接口调用

  1. 接口规则定义
  1. 远程接口调用
  1. webservice

7、消息推送

  1. spring websocket

8、大数据

  1. hadoop大数据简介
  1. 分布式数据库,全文检索

9、缓存

  1. 本地缓存的使用
  1. ehcache缓存
  1. redis安装及使用

10、定时器

  1. 简单定时器
  1. spring task任务调度

11、测试框架

  1. spring mock

12、负载均衡及反向代理

  1. nginx的安装和使用
  1. varnish

13、zookeeper使用

  1. zookeeper安装启动

14、服务调用,面向服务soa

  1. dubbo系统接口服务调用

15、实用代码集锦

  1. 集合处理

16、读写分离

  1. spring动态代理实现读写分离

17、mycat的使用

  1. mycat实现读写分离

18、sharding-jdbc分库分表

  1. sharding-jdbc

18-1、TDDL

  1. TDDL

19、文档性数据库

  1. mongodb

19、分布式锁

  1. 分布式锁的常见实现方式

20、配置文件统一管理

  1. 文件配置统一管理

21、高可用

  1. keepalived高可用

22、分布式文件系统

  1. 分布式文件系统FastDfs

23、分布式部署、高并发问题

  1. 分布式问题集锦
  1. 高并发解决思路

三、数据库使用

1、mysql

  1. mysql之数据汇总案例
  1. mysql常用知识
  1. mysql相关知识
  1. mysql锁

四、工具使用

1、开发工具

  1. idea的使用
  1. idea搭建maven的ssm工程
  1. vscode的使用

2、版本控制

  1. git的使用
  1. gitlab使用

3、maven

  1. jar包冲突

4、文档记录工具

  1. Markdown使用

5、代码生成器和常用工具类

  1. 代码生成器和常用工具类

6、java开源工具类

  1. 常用开源工具类

五、项目部署

1、docker

  1. docker的使用
  1. 阿里云服务器上安装docker

2、部署到服务器

  1. 项目部署到服务器一
  1. 项目部署到服务器二

3、linux指令

  1. linux常用指令
  1. shell脚本
  1. 虚拟机安装问题集锦

六、设计模式

  1. 设计模式之适配器模式
  1. 设计模式之门面模式
  1. 设计模式

七、编码规范

  1. 编码规范
  1. JPA规范

八、概念问题

  1. 一致性hash算法
  1. 分布式事务
  1. jvm原理

九、前端

1、js

  1. js时间的使用

十、杂文

  1. java推荐书籍
  1. 代码英语词汇
  1. 每日笔记
  1. 编程技能
  1. 面试总结一
  1. 面试总结二
  1. 面试总结/2019.4.13

十一、大数据

  1. 大数据相关知识
  1. Azkaban

十二、编程知识扩展

  1. 编程知识扩展

Clone this wiki locally