首页 > 其他分享 >git简单使用总结

git简单使用总结

时间:2024-07-30 15:28:45浏览次数:11  
标签:总结 文件 git -- 仓库 提交 简单 分支

概述

Git是一种分布式版本控制系统。要想深刻理解Git的工作原理,需要理解理解Git的三个存放区域:本地工作目录、暂存区和仓库,也可以称为三棵树,不过在仓库这个地方又可以分为本地仓库和远程仓库
在这里插入图片描述
  Working Directory:本地工作目录(工作区)
  Stage(Index):暂存区
  Repository:仓库,仓库又分本地仓库和远程仓库
  Remote:远程仓库

整个Git版本管理过程可以简单的理解为文件在三棵树上的管理过程:本地(本机)创建的文件,首先会存在本地工作目录,当使用git add命令后,会将文件同时保存到暂存区,在暂存区的文件使用git commit后,会将暂存区的文件提交到仓库,使用git push从本地仓库提交到远程仓库。同样,仓库中的文件可以通过pull/clone/fetch/checkout等命令“检出”到任意一台计算机或者终端上。

常用命令

1、安装git后先进行配置

  • 配置用户信息
	git config --global user.name "用户名"
	git config --global user.password "密码"
	git config --global user.email "邮箱"
  • 配置完成后查看配置信息
	git config --list
  • 只查看git用户名
	git config user.name
  • 只查看用户git邮箱
	git config user.email
  • 修改git用户名
	git config --global user.name "新用户名"
  • 修改git密码
	git config --global user.password "新密码"
  • 修改用户git邮箱
	git config --global user.email "新邮箱"

2、在需要提交的文件目录的地方初始化

  • 在某目录下执行init ,当前目录就成了工作目录
	git init

3、将文件添加到暂存区

  • 将当前文件夹下所有文件添加到暂存区
	git add .
  • 添加具体的文件到暂存区
	git add myfile.txt

4、将文件恢复到最后一次提交的版本

  • 将当前添加到暂存区的文件恢复到最后一次提交的版本
	git reset HEAD
  • 将指定文件恢复到最后一次提交的版本
	git reset HEAD myfile.txt

5、提交文件到仓库

  • 将暂存区的文件提交到仓库
	git commit -m "将暂存区的文件提交到仓库"

6、查看状态

  • 查看当前所有文件的状态
	git status

7、当修改myfile.txt文件后,可以将修改后的文件重新提交,也可以将仓库中的版本检出覆盖被修改的文件

  • 将暂存区的文件覆盖修改后的本地文件
	git checkout --myfile.txt
  • 将修改后的文件myfile.txt添加到暂存区(此时还未提交)
	git add myfile.txt

在该情况下,本地文件 myfile.txt 又被修改,那么现在就会存在一个本地工作目录修改的文件 myfile.txt 和暂存区未被提交的文件 myfile.txt,这时,如果git commit则表示将暂存区的文件直接提交到仓库;如果先执行git add后再执行git commit,表示先将本地文件跟新到暂存区,然后在将暂存区的文件提交到仓库。
在这里插入图片描述

8、clone代码

  • 下载远程仓库代码
	git clone [url]

使用 git clone 命令可以下载远程仓库代码到本地仓库,并且支持多种协议,如 http://、git:// 等,还可以在 url 前使用"用户名@"用来切换用户,切换用户后会要求在命令行中输入用户密码,输入正确则可以使用别的用户进行代码下载。

9、查看历史提交

  • 展示当前分支提交的历史记录,按照从近到远的提交commit顺序展示
	git log
  • 展示项目所有分支的提交的历史记录
	git log --all

在历史提交记录的面板里,点击【↑↓键】进行查看,输入【Q】键退出返回git操作界面
注:git log 命令显示提交历史时,有两种排序方式: --date-order 和 --topo-order 。默认的排序方式为 --topo-order
git log --date-order
– date-order 显示提交时按照提交的时间戳顺序。
– topo-order 显示提交时尽量避免在多个历史线上交错。

  • 以图形的形式展示所有分支提交记录
	git log --all --graph --oneline --decorate=short
  • 查看某人所有的历史提交记录,默认暂时顺序是由最新(最近)到历史
	git log --author="liuxu" 
  • 逆序查看某人的提交记录,由远及近
	git log --author="liuxu" --reverse
  • 统计一个开发者的提交代码的次数
	git log --author="liuxu04" --oneline | wc -l 
  • 查看当前分支所有提交者及其提交次数,按次数由高到低排序(注:这个只是统计了在某一分支的提交情况)
	git log | grep "^Author: " | awk '{print $2}' | sort | uniq -c | sort -k1,1nr 

下面列举几个常用的统计代码量的命令:

  • 查看最近一个月某一个开发者git提交次数
	git log --author="liuxu" --since="2014-07-01" --no-merges | grep -e 'commit [a-zA-Z0-9]*' | wc -l
  • 统计指定用户代码量
	git log --author="liuxu04" --pretty=tformat: --numstat | awk '{ add += $1; subs += $2; loc += $1 - $2 } END { printf "added lines: %s, removed lines: %s, total lines: %s\n", add, subs, loc }' -

上行运行结果:

added lines: 10635, removed lines: 2232, total lines: 8403
  • 查看指定用户再指定时间段内提交的代码行数
	git log  --author="liuxu29" --format='%aN' | sort -u | while read name; do echo -en "$name\t"; git log --author="$name" --pretty=tformat:  --since==2022-6-6 --until=2022-8-5 --numstat | awk '{ add += $1; subs += $2; loc += $1 - $2 } END { printf "added lines: %s, removed lines: %s, total lines: %s\n", add, subs, loc }' -; done
  • 统计某个项目在指定时间段内所有开发者的代码行数
	git log --format='%aN' | sort -u | while read name; do echo -en "$name\t"; git log --author="$name" --pretty=tformat: --since==2022-6-6 --until=2022-8-5 --numstat | awk '{ add += $1; subs += $2; loc += $1 - $2 } END { printf "added lines: %s, removed lines: %s, total lines: %s\n", add, subs, loc }' -; done
  • 统计某个项目所有开发者的代码行数
	git log --format='%aN' | sort -u | while read name; do echo -en "$name\t"; git log --author="$name" --pretty=tformat: --numstat | awk '{ add += $1; subs += $2; loc += $1 - $2 } END { printf "added lines: %s, removed lines: %s, total lines: %s\n", add, subs, loc }' -; done

上行运行结果:

liuxu04 added lines: 32834, removed lines: 17010, total lines: 15824
liyan00 added lines: 4090, removed lines: 987, total lines: 3103
luguilin added lines: 6182, removed lines: 3137, total lines: 3045
lujunhan added lines: 27640, removed lines: 10411, total lines: 17229
luojunjie01 added lines: 578, removed lines: 369, total lines: 209
menglinghai added lines: 4014, removed lines: 538, total lines: 3476
sunlin01 added lines: 910, removed lines: 713, total lines: 197
sunzhenya added lines: 11112, removed lines: 5533, total lines: 5579
  • 查看所有版本信息,包括已经被回滚的版本
	git reflog 

如:A(commmitId:1)->B(commmitId:2)->C(commmitId:3) ,在C版本的时候,代码强制:reset
–hard HEAD~ 到了B,这个时候如果想再次到C版本的时候,可以通过git reflog查找到对应的commitId,然后使用命令:reset --hard 3 恢复到C的版本

10、回退版本命令

回退到HEAD上一个版本,~表示上一个版本(~~则表示HEAD的上上一个版本,以此类推,N个~表示HEAD的前N个版本,可以简写~N数字)

	git reset HEAD~  

(注:reset操作是将已经提交的版本回滚到上一个版本,即暂存区和本地仓库都会回退到上一个版本(无法影响远程仓库),但是工作区的版本信息不变,此时使用git status就会提示你需要将当前工作区的版本提交到暂存区)

此时显示本地代码落后于(behind)远程仓库,如果需要将本地代码同步到远程,则可以使用命令:git push origin HEAD --force

reset 后可以添加的选项(默认 --mixed 表示回退的时候影响两棵树:暂存区和本地仓库)

–soft(git reset --soft HEAD~)

作用:
移动HEAD的指针,将其指向上一个快照(只影响一棵树即本地仓库,暂存区和工作目录不改变),该选项相当远撤销上一次commit提交,可理解为:撤销一次错误提交

–hard

作用:
a、移动HEAD的指针,将其指向上一个快照
b、将HEAD移动后的指向的快照回滚到暂存区
c、将暂存区的文件还原到工作目录
即:三棵树都会改变

reset 命令回滚总结:
    移动HEAD的指针(–soft),只影响本地仓库一棵树
    将快照回滚到暂存区域(–mixed,默认选项),影响了两个树
    将暂存区还原到工作目录(–hard),影响了三棵树

  • 回滚指定快照
	git reset 版本快照ID号

注:版本快照ID号git log中可以查看,在回滚的时候不需要全部输入,输入前6位即可

  • 回滚个别文件
	git reset 版本快照 文件名/路径

注:回滚个别文件,HEAD指针不会改变位置

  • 回滚不仅可以往后滚,也可以往前滚,通过git log找到历史你提交的快照版本ID号即可
	git reset 版本快照ID号
  • 常用
    git reset --soft HEAD~ 撤销commit,不撤销git add,不删除工作空间改动代码,即只影响一棵树:本地仓库(commit后的区域)
    git reset --mixed HEAD~ 撤销commit,撤销git add,不删除工作空间改动代码,即只影响两棵树:本地仓库(commit后的区域)和暂存区(add后的区域)
    git reset --hard HEAD~ 撤销commit,撤销git add,并删除工作空间改动代码,影响三棵树:本地仓库(commit后的区域)、暂存区(add后的区域)和工作空间(目录)——>强行回退到上一个版本
    git reset --hard 版本快照ID 强行回退到指定的版本(回退完了只在本地和本地仓库生效),如果要将回退代码同步到远程仓库,则需要强推到远程仓库 git push -f

11、比较文件变化内容

  • 比较暂存区和工作目录
	git diff
  • 比较两个历史快照(快照ID不需要全部输入,只需要输入前面几位就可以)
	git diff 快照ID1 快照ID2
  • 比较当前工作目录和Git仓库中的快照
	git diff 快照ID
  • 比较当前工作目录和最新版本内容
	git diff HEAD
  • 比较暂存区和Git仓库快照
	git diff  --cached 快照ID

在这里插入图片描述

12、修改最后一次提交

  • 执行带 --amend选项的commit提交命令,Git就会“更正”最近一次提交。
	git commit --amend
	git commit --amend -m "提交说明"

上面两个命令会将暂存区中的文件提交到上一次的提交中,不会生成新的快照

实际使用:
  通常,在某次提交完成 git commit -m "第一次提交",提交完成后,发现某一个文件漏提交了或者需要修改某一个文件,并且想把这次处理和上次合并为一次提交在push到远程仓库,那么此时需要进行的操作:

	git add .
	git commit --amend 
	git push  [remote] [branch]

完成上面的操作即可将两次提交变成一次提交,在将这一次提交push到远程仓库。

13、删除文件

  • 本地删除文件,如果要恢复文件使用命令
	git checkout -- myfile.txt
  • 删除指定文件
	git rm myfile.txt

该命令删除的只是工作目录和暂存区的文件(删除后本地文件也将被删除),也就是取消跟踪,在下一次提交时不纳入版本管理,删除后仓库中并没有删除(如果已经同步到远程仓库),要想仓库中也没有,只有回退到上一个版本,使用git reset --soft HEAD~

(1)使用场景一,不小心将个人idea中的配置或者个人电脑配置文件 commit 到了本地仓库,还没有进行 push 操作,可以通过
  git rm src/main/resources/static/testGit.txt 命令将指定文件移除代码版本管理
  ——> 如果上述提交只有一个文件,那么在移除该文件后将没有任何文件需要 push 到远程仓库,但是本地仓库存在之前 commit 后的testGit.txt文件,此时可以使用命令 git reset HEAD^ 来回滚本地仓库代码,完成后将不会存在需要 push 到远程仓库的文件
  ——> 如果一次性提交多个文件,只有其中某个文件是误提交的,那么使用上面命令移除该文件后,需要对之前提交进行修改 git commit --amend编辑保存后,再次进行 push 时,就会发现该文件已经被删除了

(2) 使用场景二,不小心将个人idea中的配置或者个人电脑配置文件 commit 到了本地仓库,同时已经 push 操作
  A:git rm src/main/resources/static/gitNeedPush.txt 命令将指定文件移除代码版本管理
  B:git commit -m "移除文件,并提交本地仓库" 提交代码到本地仓库
  C:git push orgin master 将操作推送远程仓库

  • 强制删除某文件
	git rm -f myfile.txt 
  • 文件加入版本管理,还没有commit,删除暂存区中的文件
	git rm --cached myfile.txt 

14、重命名文件

  • 将文件myfile重命名为myNewNameFile
	git mv myfile.txt myNewNameFile.txt

15、Git分支

  • 创建分支
	git branch 分支名
  • 日志显示提交的所有引用(包括分支、标签等信息)
	git log --decorate
  • 将指针切换到指定分支名的分支上
	git checkout 分支名
  • 显示分支情况
	git log --decorate --oneline --graph --all

oneline表示一行精简化显示 graph表示图形化显示 all表示显示所有分支

  • 创建并切换到分支名2的分支
	git checkout -b 分支名2

将创建和切换分支两步合为一步操作

  • 创建分支——查看分支——将分支推送远程分支——将本地分支和远程分支进行关联——删除分支,流程如下:

(1)创建并切换到该分支

	git checkout -b feature/room_archive_v1.2.1

显示操作结果

Switched to a new branch 'feature/room_archive_v1.2.1'

(2)查看分支情况(带*号的为当前分支,现在的状态是成功创建的新的分支并且已经切换到新分支上。)

	git branch

显示操作结果

deploy/pre-std
deploy/uat
feature/room_archive_v1.1
feature/room_archive_v1.2
* feature/room_archive_v1.2.1

* feature/room_archive_v1.2.1 表示当前所在的分支

(3)把新建的本地分支push到远程服务器,远程分支与本地分支同名(当然可以随意起名)

	git push origin feature/room_archive_v1.2.1:feature/room_archive_v1.2.1

显示操作结果

Everything up-to-date

(4)将本地分支和远程分支进行关联

	git branch --set-upstream-to=origin/feature/room_archive_v1.2.1 feature/room_archive_v1.2.1

显示操作结果

Branch 'feature/room_archive_v1.2.1' set up to track remote branch 'feature/room_archive_v1.2.1' from 'origin'.

(5)使用 git branch -a 查看所有分支,会看到 remotes/origin/feature/room_archive_v1.2.1 这个远程分支,说明新建远程分支成功。

(6)删除远程分支
方式1:推送一个空分支到远程分支,其实就相当于删除远程分支

	git push origin :feature/room_archive_v1.2.1

方式2:直接删除

	git push origin --delete feature/room_archive_v1.2.1

16、分支的合并和删除

实际项目中分支情况一般比较复杂,如下:
  master:主分支,用于生产发布
  hotfix:bug修复分支,修改完bug就可以合并到master完成生产bug修复
  release(test):测试分支,测试通过了就可以合并到master分支进行上线
  develop:开发分支
  feature:功能开发分支

  • 合并分支
	git merge 分支名

将指定分支名的分支合并到当前分支,如果在合并的时候,两个分支的同一个文件都被修改了,那么在合并的时候就会发生冲突,需要手动编辑冲突文件,编辑完成保存后,在重新将编辑后的文件进行add、commit操作

  • 删除指定分支名的分支
	git branch -d 分支名

关于fetch和merge的使用

  • 将远程仓库的所有变化更新到本地仓库
	git fetch remote
  • 将远程仓库的最新提交合并到本地的提交上(注:本地最好将所有文件都commit),并且自动commit
	git merge remote
  • 如果再merge过程中出现冲突(远程仓库修改了A文件的第2-5行,本地仓库也修改了A文件的3-6行,那么其中第3-5行发生冲突),可以手动处理冲突后在commit,如果处理完冲突后,想放弃处理可以使用如下命令
	git merge --abort

放弃冲突的解决,回到merge冲突解决前的原始状态

17、匿名分支

  • 切换分支,将指针切换到指定分支名的分支上
	git checkout 分支名
  • 下面情况则会创建匿名分支
	git checkout HEAD~

说明:如果没有指定分支名,我只想切换到上一次提交的版本,使用该命令会创建匿名分支,如果此时在匿名分支上修改或者提交文件,就会将这些操作提交到匿名分支上,此时切换到其他分支的话,如果需要保留匿名分支的话,那么此时就需要给分支指定分支名(git branch 新分支名 快照ID号),否则的话该匿名分支就会被丢弃。

总结 checkout有两种功能:
  (1)从仓库的历史快照或者暂存区中拷贝文件到工作目录,使用方法
    git checkout 指定快照ID 指定文件(如:git checkout HEAD~ myfile.txt
    git checkout --指定文件(如:git checkout --myfile.txt) 没有指定快照ID的话,会将暂存区中的指定文件拷贝到工作目录并覆盖
  说明:上面操作指定文件最好加上--,因为不加--默认表示切换分支,如果没有与文件名相同的分支,也可以不加--
  (2)切换分支
    git checkout 分支名 将HEAD指针切换到指定分支名的分支上

  • checkout和reset命令对比
    恢复文件对比
        相同点:两个命令都可以用于恢复文件,并且都不会修改HEAD指针位置
        区别:恢复文件,reset命令默认只是将指定文件恢复到暂存区(–mixed),而checkout命令是同时覆盖暂存区和工作目录文件
    恢复快照对比
        如果用于恢复快照,reset命令是用来回到过去,会移动指针(–soft)->覆盖暂存区(–mixed)->覆盖工作目录(–hard)。checkout用于切换分支,实际上也是通过移动HEAD指针和覆盖暂存区和工作目录来实现的。
        区别:
        (1) 相对reset --hard来说,checkout命令更安全。因为checkout命令在切换分支前会检查一下当前的工作状态,如果不是“clean”的话,Git不会允许你checkout,而reset --hard命令直接覆盖所有数据;
        (2) reset命令会移动HEAD所在分支的指向(在同一分支上移动指针,可以理解为纵向移动),而checkout命令只会移动HEAD自身来执行另外一个分支(在不同的分支上移动指针,可以理解为横向移动)。

18、远程仓库的管理

  • 显示所有远程仓库
	git remote -v
  • 下载远程仓库的所有变化到本地
	git fetch [remote]
  • 将远程仓库代码下载仓库
	git clone [remote] 
  • 显示某一个远程仓库信息
	git remote show [remote]

  • 增加某一个远程仓库并且命名
	git remote add [shortname] [url]

  • 更新远程仓库分支变化到本地
	git remote update origin -p
  • 将远程仓库文件下载到本地并且和branch分支合并
	git pull [remote] [branch]
  • 上传本地分支branch到远程仓库
	git push [remote] [branch]
  • 前行将本地当前分支上传到远程仓库,忽略冲突(即使存在冲突,一样上传,会将本地修改覆盖远程)
	git push [remote] --force
  • 将本地所有分支都上传到远程仓库
	git push [remote] --all

说明只有涉及远程仓库的命令push/pull/fetch等才会在命令后添加远程仓库名字,如:git pull [remote] [branch]

  • pull和fetch对比:
      相同点:pull和fetch都是跟新代码、文件。
      区别:
      pull表示从远程仓库orgin的master下载origin/master并且和本地分master支合并
      fetch表示从远程仓库orgin的master下载到本地orgin/master,但是并没有将本地origin/master与工作目录的master合并
      即:pull = fetch + merge(git pull [remote] [branch] = git fetch [remote] [branch] + git merge [remote]/[branch] [branch])
      注:fetch可以理解为“取”,merge可以理解为“合并”,所以pull=取+合并

在clone情况下,如果是Windows下,可能存在文件名过长的情况(Filename too long),执行
  先执行 git config --global core.longpaths true
  在执行 git clone [remote]

19、选择提交合并

  • 将指定某一次提交的代码合并到当前分支
	git  cherry-pick commitId

有的时候,在develop分支开发,是大家公用的开发分支,但是只想合并自己提交的到master,那就要用cherry-pick。 
  步骤:
    1、git log查看自己提交的log,找到版本号,如最近的版本号是a1cc07fa c8e3316b
    2、切换到想要合并的分支,如想把develop的合并到master,切换到master,执行 git cherry-pick ee3c72,执行完之后,最后push。

  • 查看指定提交id的提交文件信息
	git show commitId

20、标签

  • 查看当前分支所有标签
	git tag
  • 新增标签版本号 v1.5.1
	git tag v1.5.1
  • 将标签版本号 v1.5.1推送到远程origin上
	git push origin v1.5.1

21、将本地项目推送到远程仓库(如:github)

  • 本地开发项目
  • 开发完成在项目的根目录下执行 git init
  • 将需要提交的文件添加到git的管理中 git add .(表示把该目录下的所有文件添加到仓库,可以使用git status来查看哪些文件已经被添加到了git管理中哪些文件没有被添加)
  • 将需要提交的文件先提交到本地 git commit -m "首次提交文件到本地仓库"
  • 登录github创建远程仓库,并复制远程仓库地址
  • 将本地项目和远程仓库进行关联 git remote add origin git@xxxxx/show-spring-boot-starter.git
  • 最后将本地项目推送到远程仓库 git push -u origin main

注:在github上面创建远程仓库后,页面会显示如何将本地项目推送到远程仓库

说明:

  • 上面git命令中,使用–选项的表示输入的是选项的完整英文名,-选项表示输入的是选项英文名的缩写字母,如删除--delete=-d
  • 使用"."表示当前目录所有文件,如git checkout . 表示将暂存区所有文件恢复到工作目录

拓展:

1、log版本控制忽略配置文件或者编译文件、日志文件

在对应的git文件追踪的根目录下创建[.gitignore]文件,使用文本编辑器,将不纳入版本控制文件夹或者文件加入到改文本中。

– 忽略文件夹里 target 和 output 下的所有文件
target/
output/
– 忽略 JacocoUnitDemo.iml 文件
JacocoUnitDemo.iml
– 通过正则表达式,忽略所有 .log 结尾的文件
*.log

如果某些需要忽略的文件已经上传远程仓库怎么办?
  (1)先将要忽略的文件加入 .gitignore 文件中
  (2)使用命令手动对已经上传的文件进行删除
  git rm --cached <FILENAME> ## <FILENAME> 表示需要删除的文件

标签:总结,文件,git,--,仓库,提交,简单,分支
From: https://blog.csdn.net/yanzigejuly/article/details/140788783

相关文章

  • 亏钱、踩坑总结的经验之:合伙开宵夜档口!
    亏钱、踩坑总结的经验之:合伙开宵夜档口!今年上半年开了一间宵夜档,是跟以前同事三个人合伙的,开之前说的好听的不得了,分工明确,做哪些产品要怎么怎么做利润高的能赚钱的,一切都想象的很美好,感觉今年肯定要发财,汽车之家每天都看好几遍。结果一开工,说好六点开工,每天两个人八点还没来......
  • 解决国内 github.com 打不开的最最最准确方法
    我们编程的有时候打不开github.com,很运费,我有一个方法,试了,可以。如果有谁也打不开也可以试试。1、打开网站https://tool.chinaz.com/dns/,在A类型填写github.com,点击按钮【立即检测】。2、下拉,看到如下界面。3、随便复制一个IP地址,打开C:\Windows\System32\drivers\etc......
  • lca总结+树上差分
    lcalca简称最近公共祖先——简介在此,不过多赘述这里主要写的是倍增算法,oi-wiki上用的是vector,由于本人不会,只会用链表,所以这里就放链表的代码了例题加一个数组按倍增数组的方式存距离即可题解——点击查看代码#include<bits/stdc++.h>#defineintlonglongconstint......
  • MYSQL学习总结
    事务:一个不可拆分的操作,要么全部执行完,要么全都不执行;隔离级别:总共有四个,分别是ReadUncommitted(读取未提交内容),ReadCommitted(读取提交内容),RepeatableRead(可重读),Serializable(可串行化);ReadUncommitted(读取未提交内容):一个事务可以读取另一个事务未提交的数据;如果另一个事务......
  • 7月30日考试总结
    7月30日考试总结T1报数游戏II要点:将试子列出来后,不难发现求前缀和找最小负数即可。问题:无。反思:一眼前缀和没啥好说的。T2百万富翁的第二次实验要点:做一下前缀和或离散化,然后双指针即可。问题:考试时写了个dp,以为时间复杂度是能给很多分的,结果就给了特判分主要是数据全......
  • 如何利用Git进行代码Branch merge
    如果你想将一个分支(比如叫做other-branch)上的提交合并到另一个新的分支(比如叫做new-branch)上,你可以使用以下几种方法:方法1:使用gitmerge首先,确保你在new-branch上:gitcheckoutnew-branch然后,使用gitmerge命令将other-branch上的更改合并到new-branch上:gi......
  • git
    git是一种分布式版本控制工具个人配置指令:gitconfig--globaluser.name“zhangsan”[email protected]展示配置指令:gitconfig--global--list文本换行符配置提交时把结束符CRLF转换为LF,在拉取代码时把LF转换为CRLF:gitconfig--......
  • 一个简单的遍历需求
    今天开发一个前端遍历展示的接口,被前端怼了看图需求很简单多行展示每行多个,可显示更多,每行可左右滑动为了图省事简单组装一下直接返回回去了,方便是真的方便,前端生气也是真的生气,可以简单对这个横向、纵向接口压缩一下横向空间上,可以取分页,前端自己传,无论是懒加载还是更多......
  • 如何使用支持简单类型和属性的字段声明协议?
    (相关但不重复:如何注释可以实现为属性的属性?)我想创建一个Protocol,其中字段可以通过简单类型和财产。例如:classP(Protocol):v:int@dataclassclassFoo(P):v:intclassBar(P):@propertydefv(self)->int:#ERROR......
  • 25高数考研张宇 -- 公式总结(记录)
            ......