得到git.ssh
如果还是推送不上去,如下执行
回到之前的某个版本
命令
git log
git log --oneline
git log --oneline --decorate --graph --all 查看项目分叉历史
git版本控制管理应用
切换分支注意
当有两个分支时(master,test)
在test分支新创建的test.text文件时,让其接受管理后,才切到master
如果直接切到master,应该在test出现的test.text文件,会出现master主分支上
坑:在切换分支,如果当前分支上有未暂存的修改或有未提交的暂存
分支可以切换成功,但是这种操作可能会污染其他分支
应用场景1
当有bug#53需要解决时,创建了iss53分支,正常解决时,
主分支master有严重bug,需紧急解决
1)把当前iss53上的修改,或创建的新文件添加版本控制,工作区干净后,再切换分支
git add .
git add -m "iss53 完成50%"
2)切到master后,创建紧急(hotbug)分支,在hotbug修改这个bug
git checkout -b hotbug
3) 上诉完毕后,切到master分支,把hotbug修改index.js内容合并到master
git merge hotbug
这个继续分支修改结束可删除
4)切到iss53继续修改,也修改了index.js文件,完毕后提交,
此时iss53不是最新代码了,因为不包含hotbug里的修改内容
5)切到master,合并iss53
index.js冲突了
解决冲突后重新提交
删除iss53
应用场景2(修改iss54不用提交,也想切分支)
当有bug#54需要解决时,创建了iss54分支,正常解决时,
主分支master有严重bug,需紧急解决
1) 当前iss54上的修改(完成一半时)
git stash 暂存(是不会做提交的)
git stash list 查看暂存
git stash pop stash@{0} 应用这个暂存并立即从栈上扔掉
2)切到master后,创建紧急(hotbug)分支.....省略
后悔药
工作区
git restore iss55.text
暂存区
git restore --staged iss55.text
版本库
1)注释写错了
应该写第四次提交
git commit --amend 进入准备修改注释
(英文输入法,按i键)(修改后按Esc ,然后 :wq)
修改后
打tag
git tag v1.0
git tag v1.12 59e1453 对应的hash打版本
回到之前的tag会头部分离
git checkout v1.0
git checkout -b "v1.0"
在此基础上创建一个分支v1.0分支
从此以后,继续开发
v1.0版本固定,类似于vue2,vue3各版本都独立维护
Git代码检查
npm install husky -D
(用户1)新增dev分支并绑定远程的dev分支
(用户2)克隆这个项目后,创建本地分支并绑定远程分支dev
git checkout --track origin/dev如果这一步失败了
应先全量同步
git fetch origin
git push冲突(用户2没有pull,直接修改相同代码push失败时解决)
用户2没有pull,push失败(提示先pull)
git pull找到冲突文件
用户2解决冲突后,用户1拉取也正常了
git pull冲突
两个用户同时修改同一行,用户2先提交是可以正常提交的,
用户1修改后,git pull后提示冲突,让先把修改提交到暂存
然后git pull,解决冲突后再次提交,
用户1解决冲突后,用户2拉取也正常了
删除远程分支
git push origin -d dev 删除远程分支
git remote prune origin --dry-run 列出仍在远程跟踪但是远程已被删除的无用分支
git remote prune origin 清楚上面命令列出来的远程跟踪
版本回退
git revert --no-commit c29eb88..HEAD 到指定的版本
取消操作
git revert --abort
退出当前正在进行的操作。可用于在cherry-pick
或revert
失败后清除sequencer state
。
git revert --quit