1.1. 常用操作

git add . // 提交所有更改文件到暂存区

git commit -m '' // 提交

git pull //拉取远端最新

git push // 向远端推送

git checkout xxx // 切换分支

git reset --soft HEAD^ // 撤回上一个Commit操作 但保留代码

git commit --amend --no-edit // 使用 --amend 将这次 commit 与上次 commit 合并,只留下一条 commit 记录。如果要修改上一条的 message,则使用 git commit --amend -m “xxx”

git push origin feat-overseas-typing -f // 强行推送?不需要pull

1.2. 本地第一次初始化的项目推送到远端

git init

git add .

git commit -m ''

git pull origin master

git push -u origin master

https://blog.csdn.net/wd2014610/article/details/80854807

1.3. Git提交规范

1.3.1.1.1.1.

- feat :新功能
- fix :修复 bug
- chore :对构建或者辅助工具的更改
- refactor :既不是修复 bug 也不是添加新功能的代码更改
- style :不影响代码含义的更改 (例如空格、格式化、少了分号)
- docs : 只是文档的更改
- perf :提高性能的代码更改
- revert :撤回提交
- test :添加或修正测试

1.3.1.1.1.2. 举例

git commit -m 'feat(design): add list'

类型功能描述
------------------------------------------------
feat功能新增功能,迭代项目需求
fix修复修复缺陷,修复上一版本存在问题
docs文档更新文档,仅修改文档不修改代码
style样式变动格式,不影响代码逻辑
refactor重构重构代码,非新增功能也非修改缺陷
perf性能优化性能,提高代码执行性能
test测试新增测试,追加测试用例验证代码
build构建更新构建,修改构建工具或外部依赖
ci脚本更新脚本,修改CI或执行脚本配置
chore事务变动事务,修改其他不影响代码的事务
revert回滚回滚版本,撤销某次代码提交
merge合并合并分支,合并分支代码到其他分支
sync同步同步分支,同步分支代码到其他分支
impr改进改进功能,升级当前功能模块

1.4. Git忽略

https://www.cnblogs.com/kevingrace/p/5690241.html

.gitignore忽略规则的匹配语法
在 .gitignore 文件中,每一行的忽略规则的语法如下:
1)空格不匹配任意文件,可作为分隔符,可用反斜杠转义
2)以“ ”开头的行都会被 Git 忽略。即#开头的文件标识注释,可以使用反斜杠进行转义。
3)可以使用标准的glob模式匹配。所谓的glob模式是指shell所使用的简化了的正则表达式。
4)以斜杠" / "开头表示目录;"/"结束的模式只匹配文件夹以及在该文件夹路径下的内容,但是不匹配该文件;"/"开始的模式匹配项目跟目录;如果一个模式不包含斜杠,则它匹配相对于当前 .gitignore 文件路径的内容,如果该模式不在 .gitignore 文件中,则相对于项目根目录。
5)以星号" "通配多个字符,即匹配多个任意字符;使用两个星号"*" 表示匹配任意中间目录,比如a/**/z可以匹配 a/z, a/b/z 或 a/b/c/z等。
6)以问号" ? "通配单个字符,即匹配一个任意字符;
7)以方括号" [] "包含单个字符的匹配列表,即匹配任何一个列在方括号中的字符。比如[abc]表示要么匹配一个a,要么匹配一个b,要么匹配一个c;如果在方括号中使用短划线分隔两个字符,表示所有在这两个字符范围内的都可以匹配。比如[0-9]表示匹配所有0到9的数字,[a-z]表示匹配任意的小写字母)。
8)以叹号" ! "表示不忽略(跟踪)匹配到的文件或目录,即要忽略指定模式以外的文件或目录,可以在模式前加上惊叹号(!)取反。需要特别注意的是: 如果文件的父目录已经被前面的规则排除掉了,那么对这个文件用"!"规则是不起作用的 。也就是说"!"开头的模式表示否定,该文件将会再次被包含,如果排除了该文件的父级目录,则使用"!"也不会再次被包含。可以使用反斜杠进行转义。

需要谨记:git对于.ignore配置文件是按行从上到下进行规则匹配的,意味着如果前面的规则匹配的范围更大,则后面的规则将不会生效;

1.4.1. 修改Git忽略规则.gitignore不生效

*简介: 在项目开发过程中个,一般都会添加 .gitignore 文件,规则很简单,但有时会发现,规则不生效。 原因是 .gitignore 只能忽略那些原来没有被track的文件,如果某些文件已经被纳入了版本管理中,则修改.gitignore是无效的。*

在项目开发过程中个,一般都会添加 .gitignore 文件,规则很简单,但有时会发现,规则不生效。
原因是 .gitignore 只能忽略那些原来没有被track的文件,如果某些文件已经被纳入了版本管理中,则修改.gitignore是无效的。
那么解决方法就是先把本地缓存删除(改变成未track状态),然后再提交。

123git<span> </span>`rm -r --cached .git add .git commit -m `'update .gitignore'

1.4.2. 命令行指引

您还可以按照以下说明从计算机中上传现有文件。

1.4.2.1.1. Git 全局设置
git config --global user.name "장녕"
git config --global user.email "[email protected]"
1.4.2.1.2. 创建一个新仓库
git clone https://citech-gitlab.hanpda.com/njang/mfpreview.git
cd mfpreview
touch README.md
git add README.md
git commit -m "add README"
git push -u origin master
1.4.2.1.3. 推送现有文件夹
cd existing_folder
git init
git remote add origin https://citech-gitlab.hanpda.com/njang/mfpreview.git
git add .
git commit -m "Initial commit"
git push -u origin master
1.4.2.1.4. 推送现有的 Git 仓库
cd existing_repo
git remote rename origin old-origin
git remote add origin https://citech-gitlab.hanpda.com/njang/mfpreview.git
git push -u origin --all git push -u origin --tags

1.5. 打标签 tag

查看标签

git tag

创建标签

git tag 标签名字 -m "消息内容"

推送标签
git push origin 标签名字

删除标签

git tag -d 标签名字

推送
git push origin

给指定的commit打标签

git tag -a 标签名字 commid id
git tag -a v0.1.0 49e0cd22f6bd9510fe65084e023d9c4316b446a6

解释:打标签不必要在HEAD之上,也可在之前的版本上打,这需要你知道某个提交对象的校验和,通过git log命令获取。

1.6. git pull 撤销误操作

1.6.1.1. 解决方法

1、运行git reflog命令查看你的历史变更记录,如下:

2、然后用git reset --hard HEAD@{n},(n是你要回退到的引用位置)回退。

比如可运行 git reset --hard 40a9a83

最后修改:2023 年 03 月 06 日
如果觉得我的文章对你有用,请随意赞赏