C#与.NET技术
实践与教程

专注分享C#、ASP.NET Core、Azure、Blazor等微软技术栈的开发教程、架构设计和最佳实践

85
技术文章
42
教程系列
2.8k
月访问量
328
活跃读者
git命令备忘系列(六) - 创建合并等分支操作(branch)
2021-01-12 0k

git命令备忘系列(六) - 创建合并等分支操作(branch)

1、查看分支列表 git branch #显示本地分支 git branch -r #显示远程所有分支 2、创建分支和切换分支 git branch branchName # 创建分支 git checkout branchName1 #切换到 branchName1 分支 git checkout -b branchName2 #创建并切换到 branchName2分支 强制创建分支 git checkout -B branchName 为什么强制创建分支,比如已经有dev分支,打算创建新的dev分支,正常情况同名不允许创建,-B参数之后既可以成功创建 新创建的分支推送到远程仓库 git push --set-upstream origin branchName git push origin branch1 #多个仓库时,指定origin仓库下 branch1分支 3、删除 git branch -d 分支名 # 删除分支,分支上有未提交更改是不能删除的 git branch -D 分支名 # 强行删除分支,尽管这个分支上有未提交的更改 git push origin --delete 分支名 #删除远程分支 4、恢复误删除分支 两步:找出被删分支最新的commit的Hash值,然后恢复分支: git log --branches="被删除的分支名" # 找到被删分支最新的commit版本号 git branch 分支名 版本号(前七位即可) # 恢复被删分支 5、分支重命名 git branch -m 老分支名 新分支名 # 分支重命名 6、合并分支 branchName1 合并到当前分支

git git branch 分支管理
阅读更多
git命令备忘系列(五) - 版本恢复和撤销命令(reset)回滚操作
2021-01-11 0k

git命令备忘系列(五) - 版本恢复和撤销命令(reset)回滚操作

1、撤销本地(工作区)修改 git checkout fileName #指定文件撤销 git checkout . #点表示撤销所有文件 checkout 只撤销已有(tracked)文件,新增文件(untracked)不会撤销 清除工作区新增(untracked)文件 git clean -df 2、撤销暂存区修改(已经add,未commit /push) 把添加(add)到暂存区的更改,恢复到工作区 git reset #撤销暂存区全部文件 git reset filename #指定文件 3、查看本地仓库修改(已经commit,未push) git log 本地branch ^仓库 远程分支 #可以查看本地有远程没有的提交。 git log 远程分子 ^本地branch #可以查看远程有,本地没有的提交。 git log master ^origin master #demo 4、撤销本地仓库修改(已经commit,未push) 仅仅是撤回commit操作,您写的代码仍然保留。 HEAD^的意思是上一个版本,也可以写成HEAD~1 如果你进行了2次commit,想都撤回,可以使用HEAD~2 git reset --soft HEAD^ 参数说明: --mixed 不删除工作空间改动代码,撤销commit,并且撤销git add . 操作 --soft 不删除工作空间改动代码,撤销commit,不撤销git add . 操作 --hard

git git reset 版本回退
阅读更多
git命令备忘系列(四) - 对比两个分支的差异(diff)
2021-01-10 0k

git命令备忘系列(四) - 对比两个分支的差异(diff)

1、工作区与缓存区的差异 git diff 2、工作区与某分支的差异 远程分支这样写:remotes/origin/branchNmae git diff branchNmae 3、工作区与HEAD指针指向的内容差异 git diff HEAD 示例: git diff HEAD^ # 工作区与上次提交内容差异 git diff HEAD^^ # 上上次提交内容差异 git diff HEAD~3 # 也可以直接~次数 git diff head f42b15f5 # 也可以指定id 4、工作区某文件“当前版本”与“历史版本”的差异 git diff 提交id 文件路径 5、查看从某个版本后所有改动内容 git diff 版本TAG 6、 查看两个分支指定文件的详细差异 git diff branch1 branch2 具体文件路径 7、查看所有有差异的文件的详细差异(也支持TAG) git diff branch1 branch2 8、查看 branch1 分支有,而 branch2 中没有的 log git log branch1 ^branch2 9、查看 branch2 中比 branch1 中多提交了哪些内容 列出来的是两个点后边(此处即 branch2)多提交的内容。

git git diff 分支差异
阅读更多
git命令备忘系列(三) - 查看提交历史记录(log)
2021-01-09 0k

git命令备忘系列(三) - 查看提交历史记录(log)

git log # 查看所有commit记录(SHA-A校验和,作者名称,邮箱,提交时间,提交说明) git log -p -次数 # 查看最近多少次的提交记录 git log --stat # 简略显示每次提交的内容更改 git log --name-only # 仅显示已修改的文件清单 git log --name-status # 显示新增,修改,删除的文件清单 git log --oneline # 让提交记录以精简的一行输出 git log –graph –all --online # 图形展示分支的合并历史 git log --author=作者 # 查询作者的提交记录(和grep同时使用要加一个--all--match参数) git log --grep=过滤信息 # 列出提交信息中包含过滤信息的提交记录 git log -S查询内容 # 和--grep类似,S和查询内容间没有空格 git log fileName # 查看某文件的修改记录,找背锅专用 git blame 文件名 # 查看某文件的每一行内容的作者,最新commit和提交时间 除此之外,还可以通过 –pretty 对提交信息进行定制,比如: 占位符: 占位符 说明 占位符 说明 %H 提交对象(commit)的完整哈希字串 %h 提交对象的简短哈希字串 %T 树对象(tree)的完整哈希字串 %t 树对象的简短哈希字串 %P 父对象(parent)的完整哈希字串 %p 父对象的简短哈希字串 %an 作者(author)的名字 %ae 作者的电子邮件地址 %ad 作者修订日期(可以用 –date= 选项定制格式) %ar 按多久以前的方式显示 %cn 提交者(committer)的名字 %ce 提交者的电子邮件地址 %cd 提交日期 %cr 提交日期,按多久以前的方式显示 %s 提交说明 参数: 选项 说明 -p 按补丁格式显示每个更新之间的差异 –stat 显示每次更新的文件修改统计信息(行数) –shortstat 只显示 –stat 中最后的行数修改添加移除统计 –name-only 仅在提交信息后显示已修改的文件清单 –name-status 显示新增、修改、删除的文件清单 –abbrev-commit 仅显示 SHA-1 的前几个字符,而非所有的 40 个字符 –relative-date 使用较短的相对时间显示(比如,“2 weeks ago”) –graph 显示 ASCII 图形表示的分支合并历史 –pretty 格式定制,可选选项有:oneline,short,full,Fullerton和format(后跟指定格式) 限制log输出参数: 选项 说明 -(n) 仅显示最近的 n 条提交 –since, –after 仅显示指定时间之后的提交。 –until, –before 仅显示指定时间之前的提交。 –author 仅显示指定作者相关的提交。 –committer 仅显示指定提交者相关的提交。 –grep 仅显示含指定关键字的提交 -S 仅显示添加或移除了某个关键字的提交 示例: 示例1:

git git log 提交历史
阅读更多
git命令备忘系列(二) - 配置文件操作(config)
2021-01-08 0k

git命令备忘系列(二) - 配置文件操作(config)

.gitconfig 配置文件 .giconfig配置文件 共三个 system(系统):C:\Program Files\Git\mingw64\etc\gitconfig,系统中所有用户都会生效 global(全局):C:/Users/当前用户/.gitconfig当前系统用户下生效 local(本地):项目路径/.git/config配置仅在当前项目生效 不同的系统路径可能不一样,可以通过:git config -e --system 和git config -e --global找到路径 优先级:local > global > system 常用命令: # 配置 git config --global user.name "用户名" # 配置用户名 git config --global user.email "用户邮箱" # 配置邮箱 git config --global core.editor 编辑器 # 配置编辑器,模式使用vi或者vim # 查看配置 git config --global user.name # 查看配置的用户名 git config --global user.email # 查看配置的邮箱 # 查看所有配置列表 git config --global --list # 查看全局设置相关参数列表 git config --local --list # 查看本地设置相关参数列表 git config --system --list # 查看系统配置参数列表 git config --list # 查看所有Git的配置(全局+本地+系统) .

git git配置 .gitconfig
阅读更多
git命令备忘系列(一) - 基础命令使用
2021-01-06 0k

git命令备忘系列(一) - 基础命令使用

1、克隆项目到本地 git clone https://github.com/raikay/gittest.git 2、拉取最新 git pull 3、添加文件到暂存区 git add 文件名 # 指定文件。 git add . # 将当前工作区的所有文件都加入暂存区 4、将缓存区的内容提交到本地仓库 git commit -m "提交说明" git commit --amend #追加/修改上次提交、不新增提交记录 5、查看工作区与缓存区的状态「git status」 git status 6、推送到远程分支 git push git push origin branch1 #多个仓库时,指定origin仓库下 branch1分支 7、获取帮助 「help」 git 命令 -h 8、强制覆盖本地 // 从远程仓库下载最新版本 git fetch -all // 将本地设为刚获取的最新的内容 git reset --hard origin/master 9、本地已有项目 初始化操作 初始化基础文件:git init 添加到暂存区:git add . 提交到本地仓库:git commit -m 'init' 添加远程远程仓库地址:git remote add origin https://github.

git 版本控制 git基础命令
阅读更多
ESP8266包括NodeMcu说明文档和每个版本属性对比图、管脚资料工具
嵌入式
2021-01-05 0k

ESP8266包括NodeMcu说明文档和每个版本属性对比图、管脚资料工具

规格书/管脚说明/文档 安信可官网 各类ESP8266模组规格书汇总 安信可官网 NodeMcu规格书 安信可官网 ESP8266资源汇总 Wemos官方文档 Arduino-ESP8266官方文档 个人收集 工具/驱动等资源下载 ESP8266 版本对比图 图片来自安信可官网 NodeMcu NodeMcu引脚以及区别见:CP2102版和CH340版两种NodeMcu的区别和HW-628有什么不同 Wemos D1 R3 对应引脚 static const uint8_t PIN_D0 = 3; //RX static const uint8_t PIN_D1 = 1; //TX static const uint8_t PIN_D2 = 16; static const uint8_t PIN_D3_D15 = 5; //SCL static const uint8_t PIN_D4_D14 = 4; //SDA static const uint8_t PIN_D5_D13 = 14; //SCK static const uint8_t PIN_D6_D12 = 12; //MISO static const uint8_t PIN_D7_D11 = 13; //MOSI static const uint8_t PIN_D8 = 0; static const uint8_t PIN_D9_LED = 2; //LED static const uint8_t PIN_D10 = 15; //SS static const uint8_t PIN_A0 = 17; static const uint8_t PIN_RX = 3; static const uint8_t PIN_TX = 1; static const uint8_t PIN_SCL = 5; static const uint8_t PIN_SDA = 4; static const uint8_t PIN_SCK = 114; static const uint8_t PIN_MISO = 12; static const uint8_t PIN_MOSI = 13; static const uint8_t PIN_SS = 15; static const uint8_t PIN_LED = 2; Wemos D1 mini 引脚图 引脚对应表 Pin Function ESP-8266 Pin TX TXD TXD RX RXD RXD A0 Analog input, max 3.

esp8266 NodeMcu Arduino
阅读更多
Node.js包管理工具Yarn、npm安装以及常用命令
2020-12-14 0k

Node.js包管理工具Yarn、npm安装以及常用命令

npm NodeJs自带的工具,无需单独安装 # 安装nodejs yum install -y nodejs # 查看安装的版本 node -v # 安装n管理包,安装指定的nodejs版本 npm install -g n # 更新NodeJs版本 # 安装最新版本 n latest # 安装指定定版本 n 8.11.3 如果某些项目编译时提示安装Visual C ++ Build Tools 2017、.net framework 4.5.1、python2.7 执行命令: npm install --global --production windows-build-tools yarn的安装: 下载node.js,使用npm安装 npm install -g yarn #查看版本: yarn --version yarn 淘宝源安装,分别复制粘贴以下代码行到黑窗口运行即可 yarn config set registry https://registry.npm.taobao.org -g yarn config set sass_binary_site http://cdn.npm.taobao.org/dist/node-sass -g 鸣谢:

前端 Node.js Yarn
阅读更多
NPOI 根据模板导出 word文档
2020-11-21 0k

NPOI 根据模板导出 word文档

文档模板: 单一字段替换:#batchNo# 需要循环的表格:$mx.NTime$ 生成后文档: 调用方式: NpoiHeplper.Export("OffShelfInfoTemplate.doc", $"new{dt}.doc", data); data数据为字典格式 var dt = DateTime.Now.ToString("yyyyMMddHHmmss"); Dictionary<string, object> data = new Dictionary<string, object>(); List<Dictionary<string, object>> list = new List<Dictionary<string, object>>(); Dictionary<string, object> item1 = new Dictionary<string, object>(); item1.Add("NTime", "2020-11-21"); item1.Add("StoreName", "先南小吃"); item1.Add("Addres", "北京昌平区中街211"); item1.Add("Num", "5"); item1.Add("Name", "杨过"); list.Add(item1); // new item2 item3 item4... //list.Add(item2); //list.Add(item3); //list.Add(item4); //new xqList data.Add("batchNo", $"No.{DateTime.Now.ToString("ddHHmmss")}"); data.Add("noticeTime", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")); data.Add("userName", "张三"); data.Add("ApprovalDate", DateTime.Now.ToString("yyyy-MM-dd")); data.Add("mx", list); //data.Add("xq", xqList); 主要代码: /// <summary> /// 输出模板word文档 /// </summary> /// <param name="tempFilePath">docx文件路径</param> /// <param name="outPath">输出文件路径</param> /// <param name="data">字典数据源</param> public static void Export(string tempFilePath, string outPath, Dictionary<string, object> data) { using (FileStream stream = File.

dotnet NPOI Word文档
阅读更多
DotNet Core 项目 添加Swagger 自动构建接口文档
后端
2020-06-08 0k

DotNet Core 项目 添加Swagger 自动构建接口文档

1、NuGet引用 Swashbuckle.AspNetCore 2、Startup类中ConfigureServices函数添加代码 #region Swagger public void ConfigureServices(IServiceCollection services) { services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_2); #region Swagger services.AddSwaggerGen(c => { c.SwaggerDoc("v1", new Swashbuckle.AspNetCore.Swagger.Info { Version = "1.0", Title = "SwaggerDemo API", Description = "SwaggerDemo文档", TermsOfService = "None", Contact = new Swashbuckle.AspNetCore.Swagger.Contact { Name = "SwaggerDemo", Email = "raikay@163.com", Url = "http://www.raikay.cn/" } }); }); #endregion } #endregion 3、启动Http中间件:编辑Configure类 public void Configure(IApplicationBuilder app, IHostingEnvironment env) { if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); } #region Swagger app.UseSwagger(); app.UseSwaggerUI(c => { c.

dotnet swagger .NET Core
阅读更多