1. git提交分支相关
- 在本地新建分支,保证和远程分支一样
git checkout -b 分支名
如果分支已存在,只需要切换的话
git checkout 分支名
- 提交前先把代码拉下来更新一下,确保不会覆盖别人的代码
git pull origin 远程分支
- (如果有)解决冲突
git diff // 然后查看冲突的原因
- 查看git状态(哪些还未提交)
git status
- 提交到缓存区
git add .
- 提交到本地仓库
git commit -m '我这次提交是为了干啥'
- 提交到远程仓库(线上仓库)
git push origin 分支名
- (如果不存在)本地建立一个你要合并的分支(如你在a分支上开发,现在要和b分支merge并提交到b分支上)
git checkout -b 要合并的分支b
- 把要合并分支的代码拉下来
git pull origin 要合并的分支b
- 在本地合并到b分支
git merge 要合并的分支b
- 如果报错,那么查看git状态
git status
2. 关于.gitigonore 文件详解
这个文件的完整文件名就是“.gitignore”,注意最前面有个“.”。这
一般来说每个Git项目中都需要一个“.gitignore”文件,这个文件的作用就是告诉Git哪些文件不需要添加到版本管理中。
实际项目中,很多文件都是不需要版本管理的,比如Python的.pyc文件和一些包含密码的配置文件等等。
这个文件的内容是一些规则,Git会根据这些规则来判断是否将文件添加到版本控制中。
过滤规则:
/mtk/ 过滤整个文件夹
*.zip 过滤所有.zip文件
/mtk/do.c 过滤某个具体文件
被过滤掉的文件在push的时候不会上传。
需要注意的是,gitignore还可以指定要将哪些文件添加到版本管理中:
!*.zip
!/mtk/one.txt
版本规则:
唯一的区别就是规则开头多了一个感叹号,Git会将满足这类规则的文件添加到版本管理中。
假如只需要管理/mtk/目录中的one.txt文件,这个目录中的其他文件都不需要管理。就需要使用这个!规则:
/mtk/
!/mtk/one.txt
如果在创建.gitignore文件之前就push了项目,那么即使你在.gitignore文件中写入新的过滤规则,这些规则也不会起作用,Git仍然会对所有文件进行版本管理。
出现这种问题的原因就是Git已经开始管理这些文件了,所以你无法再通过过滤规则过滤它们。
重点:在项目开始就创建.gitignore文件的习惯,否则一旦push,处理起来会非常麻烦。
3. git的版本回退
因为在合并分支的过程中,变更太多,是本地环境配置的问题,需要回退到上一个版本,然后再重新提交。
git log
- 定义:该命令显示从最近到最远的提交日志。每一次提交都有对应的 commit id和 commit message。
git log --pretty=oneline
- 可以将版本号和描述内容在一行内显示,使得输出更加简洁一些
git reset --hard id
- 定义:根据 id 回退到指定的版本,一般要回退的版本号的前7位即可
git push origin HEAD --force
- 推送到本地到远程仓库:让远程仓库代码你本地一样,到当前本地的版本。
git reflog
- 定义:查看命令操作的历史
查找到需要的 操作id,依旧使用
*git reset --hard id*
可以回退到先前的版本。
更多详情可参考(原文出处):https://blog.csdn.net/weixin_44911248/article/details/124529556