![]() |
大力的熊猫 · 【AIGC应用+电商+在线运行】阿里Repl ...· 4 月前 · |
![]() |
慷慨大方的泡面 · 8000余张票全部售罄!这版歌剧《茶花女》 ...· 7 月前 · |
![]() |
勤奋的鸭蛋 · 南京市2023年上半年中小学教师资格考试面试 ...· 8 月前 · |
![]() |
有腹肌的排球 · 【Mind+Python】基于Pyechar ...· 1 年前 · |
![]() |
奋斗的豆浆 · 如何轻松的将文字转语音 - 掘金· 1 年前 · |
创建一个新的本地存储库
$ git init [项目名称]
克隆存储库(代码仓库)
$ git clone <git_url>
将存储库克隆到指定目录
$ git clone <git_url> 指定目录
将存储库克隆到指定目录,并指定分支
$ git clone <git_url> -b <分支名称> 指定目录
在工作目录中显示修改后的文件,为您的下一次提交暂存
$ git status
暂存文件,准备提交
$ git add [file]
暂存所有更改的文件,准备提交
$ git add .
将所有暂存文件提交到版本化历史记录
$ git commit -m "commit message"
将所有跟踪的文件提交到版本化历史记录
$ git commit -am "commit message"
取消暂存文件,保留文件更改
$ git reset [file]
将所有内容恢复到最后一次提交
$ git reset --hard
已更改但未暂存内容的差异
$ git diff
已 commited 但尚未提交的内容的差异
$ git diff --staged
在指定分支之前应用当前分支的任何提交
$ git rebase [branch]
设置将附加到您的提交和标签的名称
$ git config --global user.name "name"
设置将附加到您的提交和标签 tags 的电子邮件地址
$ git config --global user.email "email"
启用 Git 输出的一些着色
$ git config --global color.ui auto
在文本编辑器中编辑全局配置文件
$ git config --global --edit
显示本地 repo
配置设置
$ git config --list
删除全局设置
$ git config --global --unset <entry-name>
列出所有本地分支
$ git branch
列出所有分支,本地和远程
$ git branch -av
切换到 my_branch
,并更新工作目录
$ git checkout my_branch
创建一个名为 new_branch
的新分支
$ git checkout -b new_branch
删除名为 my_branch
的分支
$ git branch -d my_branch
将分支 A
合并到分支 B
$ git checkout branchB
$ git merge branchA
标记当前提交
$ git tag my_tag
从远程分支中创建并切换到本地分支
$ git checkout -b <branch-name> origin/<branch-name>
# 保存已修改和分阶段的更改
$ git stash
# 列出隐藏文件更改的堆栈顺序
$ git stash list
# 从存储堆栈顶部编写工作
$ git stash pop
# 丢弃存储堆栈顶部的更改
$ git stash drop
# 回到某个 stash 的状态
$ git stash apply <stash@{n}>
# 删除所有的 stash
$ git stash clear
忽略文件 .gitignore
文件
.gitignore
指定了
Git
应该忽略的
未跟踪的
文件
:-
:-
行首
#
全行注释,不支持行尾类注释
(转义
\#
)
行首
!
否定模式
(转义
\!
)
**
匹配任意路径
*
匹配任意多个字符
?
匹配任意一个字符
doc/**
匹配
doc
文件夹下的全部内容
doc/**/a
匹配任意深度路径下的
a
文件或文件夹
/
表示路径分隔符,不区分操作系统
/
结尾
仅会匹配文件夹,否则会匹配文件和文件夹
空行
不匹配任何文件
行尾空格
默认被忽略,可使用
\
进行转义
行首空格
被正常处理,不会被忽略
当前
.gitignore
文件定义规则的优先级高于上级路径
.gitignore
定义规则的优先级;后定义的规则优先级高于前面定义规则的优先级
# 忽略当前目录logs文件夹下的全部内容
/logs/
/logs/*
/logs/**
# 上述几条规则等效
# 忽略 Mac 系统文件,包括任意子路径下的同名文件(夹)
.DS_store
# 忽略 node_modules 文件夹,包括任意子路径下的同名文件夹
node_modules/
# 忽略任意子路径下build、target文件夹,
# 但不忽略src/main、src/test下的build、target文件夹
build/
!**/src/main/**/build/
!**/src/test/**/build/
target/
!**/src/main/**/target/
!**/src/test/**/target/
# 使用 ! 重新包含指定文件(夹)
!logs/.gitkeep
重构文件名
# 从工作目录中删除文件并暂存删除
git rm <filename>
# 从版本控制中删除文件但在本地保留文件
git rm --cached <filename>
# 更改文件名并准备提交
git mv <filename-orig> <filename-renamed>
从该 Git 远程获取所有分支
$ git fetch [alias]
将远程分支合并到当前分支以使其保持最新状态
$ git merge [alias]/[branch]
# 没有快进
$ git merge --no-ff [alias]/[branch]
# 仅快进
$ git merge --ff-only [alias]/[branch]
将本地分支提交传输到远程存储库分支
$ git push [alias] [branch]
从跟踪远程分支获取并合并任何提交
$ git pull
将另一个分支的一个特定提交合并到当前分支
$ git cherry-pick [commit_id]
添加一个 git URL 作为别名
$ git
remote add [alias] [url]
显示您设置的远程存储库的名称
$ git remote
显示远程存储库的名称和 URL
$ git remote -v
删除远程存储库
$ git remote rm [remote repo name]
更改 git repo 的 URL
$ git remote set-url origin [git_url]
.gitattributes
# 设置默认行为,以防人们没有设置 core.autocrlf
* text=auto
# 明确声明您希望始终规范化并在结帐时
# 转换为本机行结尾的文本文件
*.c text
*.h text
# 声明在结帐时始终以 CRLF 行结尾的文件
*.sln text eol=crlf
# 表示所有真正二进制且不应修改的文件
*.png binary
*.jpg binary
# 标记或取消标记要根据存储库的语言统计数据而
# 忽略或默认隐藏差异的路径
search/index.json linguist-generated=true
# 以下属性统计 SQL 文件
*.sql linguist-detectable=true
# 从统计信息中排除
docs/formatter.rb linguist-documentation=false
# 将它们从统计信息中排除
special-vendored-path/* linguist-vendored
# 将所有 .rb 文件检测为 Java 文件
*.rb linguist-language=Java
重命名分支
重命名
为
new
$ git branch -m <new>
$ git branch -m <old> <new> #重命名分支
推送并重置
$ git push origin -u <new>
删除远程分支
$ git push origin --delete <old> #方法1
$ git push origin :oldBranchName #方法2
$ git config --global alias.co checkout
$ git config --global alias.br branch
$ git config --global alias.ci commit
$ git config --global alias.st status
也可以看看:更多别名
修改远程 Commit 记录
$ git
rebase -i HEAD~3
# 表示要修改当前版本的倒数第三次状态
# 将要更改的记录行首单词 pick 改为 edit
pick 96dc3f9 提交 commit 描述内容 1
pick f1cce8a 提交 commit 描述内容 2
pick 6293516 提交 commit 描述内容 3
# Rebase eeb03a4..6293516 onto eeb03a4
# (3 commands)
# Commands:
# p, pick = 使用提交
# r, reword = 使用提交,但编辑提交消息
# e, edit = 使用提交,但停止修改
# s, squash = 使用提交,但融合到先前的提交中
# f, fixup = 像 squash,但丢弃此提交的日志消息
# x, exec = 使用 shell 运行命令(该行的其余部分)
# d, drop = 删除提交
保存并退出,会弹出下面提示
# 您现在可以修改提交,使用
# git commit --amend
# 对更改感到满意后,运行
# git rebase --continue
# 1. 通过这条命令进入编辑更改 commit,保存退出
$ git commit --amend
# 2. 保存退出确认修改,继续执行下面命令,
$ git rebase --continue
# 如果修改多条记录反复执行上面两条命令直到完成所有修改
# 最后,确保没有人提交进行推送,最好不要加 -f 强制推送
$ git push -f origin master
修改作者名
$ git
commit --amend --author='Author Name <[email protected]>'
配置 http 和 socks 代理
# 查看代理
$ git config --global http.proxy
$ git config --global https.proxy
$ git config --global socks.proxy
# 设置代理
# 适用于 privoxy 将 socks 协议转为 http 协议的 http 端口
$ git config --global http.proxy http://127.0.0.1:1080
$ git config --global https.proxy http://127.0.0.1:1080
$ git config --global socks.proxy 127.0.0.1:1080
# 取消代理
$ git config --global --unset http.proxy
$ git config --global --unset https.proxy
$ git config --global --unset socks.proxy
# 只对 github.com 设置代理
$ git config --global http.https://github.com.proxy socks5://127.0.0.1:1080
$ git config --global https.https://github.com.proxy socks5://127.0.0.1:1080
# 取消 github.com 代理
$ git config --global --unset http.https://github.com.proxy
$ git config --global --unset https.https://github.com.proxy
Conventional Commmits
<type>(<scope>): <short summary>
│ │ │
│ │ └─⫸ 紧凑简短的描述,无需大写,也不需要用句号结尾
│ │
│ └─⫸ Commit 范围: animations|bazel|benchpress|common|compiler|compiler-cli|core|
│ elements|forms|http|language-service|localize|platform-browser|
│ platform-browser-dynamic|platform-server|router|service-worker|
│ upgrade|zone.js|packaging|changelog|docs-infra|migrations|ngcc|ve|
│ devtools....
└─⫸ Commit 类型: build|ci|doc|docs|feat|fix|perf|refactor|test
website|chore|style|type|revert
类型 描述 feat:
新特性 fix(scope):
修复 scope 中的 Bug feat!:
/ feat(scope)!:
breaking change / 重构 API chore(deps):
更新依赖
Commit 类型
类型
描述
build:
变更影响的是
构建系统
或者
外部依赖
(如: gulp, npm)
ci:
修改了 CI 配置文件或脚本 (如: Github Action, Travis)
chore:
【重要】
变更不影响源代码或测试(如更新了辅助工具、库等)
docs:
只修改了文档
feat:
【重要】
一个新特性
fix:
【重要】
修复了一个 Bug
perf:
增强性能的代码变更
refactor:
并非修复 Bug 或添加新特性的代码变更
revert:
回退代码
style:
变更不影响一些有意义的代码 (如: 删除空格、格式化代码、添加分号等)
test:
添加测试代码或修正已有的测试
最常用的 git 提示和技巧
Conventional Commits 官方网站
(conventionalcommits.org)
![]() |
大力的熊猫 · 【AIGC应用+电商+在线运行】阿里ReplaceAnything可进行图片任意部分替换(人体替换、服装替换、物体替换、背景替换)(24.01.11发布demo,暂无论文)_replaceanythi 4 月前 |
![]() |
奋斗的豆浆 · 如何轻松的将文字转语音 - 掘金 1 年前 |