GIT基础、diff、rebase使用
GIT 常见基础操作
-
.gitignore文件
选择哪些文件不需要git进行上传(版本管理,前端项目一般是nodemodules文件 -
git reset回退到历史版本
- git log --pretty=oneline : 找一个需要回到的版本hash号
- git reset --hard 版本hash 号
-
git clone 的是dev的分支,怎么提交到other分支
- git branch -m oldBranch newBranch (切换分支: git branch -m dev function/hasdone)
- git push -u origin function/hasdone (push 的时候页更新一下分支)
-
git checkout -b 本地分支名 origin/远程分支名
创建并指定特定远程分支 -
git branch -d 指定分支名 删除该分支
-
git push origin 指定分支名(如没有则新建)
命令行 diff 代码
-
git diff branch1 branch2 --stat
显示差异的概括陈述,branch2 比 branch1 增删的文件,branch1为参考分支 -
git diff branch1 branch2 具体文件路径
显示两个分支在该文件的具体差异 -
git diff branch1 branch2
显示两个分支的全部具体差异(不推荐)
-
### diff展示不同分支 日志 差异
-
git log branch1 ^branch2
branch1分支有,而branch2分支没有 -
git log branch1..branch2
b2 比 b1 多提交的commit日志 -
git log branch1...branch2
单纯显示两个分支日志的不一样 -
git log -left-right branch1...branch2
显示日志的不一样基础上显示不同点是在哪个分支上
rebase 合并分支
-
当你push你的commit时,其他人先于你 提交了 一些commit,产生了冲突
直接pull或者merge,都会在git log 你的日志上产生一个分叉然后合并的情况,分叉为其他人提交的commit -
优雅永不过时,`git rebase Main self`
将Main 分支 合并到 self 分支,不会产生分支,self 分支上有而 Main 分支上没有的commit将会按需加入你的日志中 -
尔后,你再 push 你的分支,将 self 分支上的commit 提交上去
这样冲突就变成一个线性的状态,不会产生额外的分支
完整提交流程:
- git add .
- git stash save "提示信息" //存储到staged状态里面,不再进行跟踪
- git merge 指定分支(可远可近) // 合并到本地代码
- git stash pop 弹出并使用 / git stash apply 应用栈顶缓存
git四种基础状态
git报错处理
git提交报错:OpenSSL SSL_read: Connection was reset, errno 10054
解决:在每一次提交前修改全局配置:git config --global http.sslVerify "false"