Git简要笔记归纳
GIT简单工作流以及撤销操作
工作流
拉取 main 并建立自己的分支,然后同步
1.git clone // 到本地
2.git checkout -b xxx 切换至新分支xxx (相当于复制了remote的仓库到本地的xxx分支上
3.修改或者添加本地代码(部署在硬盘的源文件上)
4.git diff 查看自己对代码做出的改变
5.git add 上传更新后的代码至暂存区
6.git commit 可以将暂存区里更新后的代码更新到本地git 7.git push origin xxx 将本地的xxxgit分支上传至github上的git
-----------------------------------------------------------------------------------
如果在写自己的代码过程中发现远端GitHub上代码出现改变
1.git checkout main 切换回main分支
2.git pull origin master(main) 将远端修改过的代码再更新到本地
3.git checkout xxx 回到xxx分支
4.git rebase main 我在xxx分支上,先把main移过来,然后根据我的commit来修改成新的内容 (中途可能会出现,rebase conflict -----》手动选择保留哪段代码)
5.git push -f origin xxx 把rebase后并且更新过的代码再push到远端github上 (-f ---》强行)
6.原项目主人采用pull request 中的 squash and merge 合并所有不同的commit
---------------------------------------------------------------------------------------------
远端完成更新后,删除分支
1. github branch有delete 按钮 删除远端分支
1.git branch -d xxx 删除本地的git分支
2.git pull origin master 再把远端的最新代码拉至本地
十分钟学会正确的github工作流,和开源作者们使用同一套流程_哔哩哔哩_bilibili
撤销
共涉及:Disk, Staging, Local, Remote
Disk 撤销还未缓存的修改 checkout/restore
查看所做出的修改 git diff
查看目前状况 git status -> Changes not staged for commit(红色)
撤销语句
git checkout <changed_file> 旧版本git
(git restore <changed_file>)
Staging 撤销缓存区中的修改
如果已经使用 git add <changed_file> 将Disk的修改同步到缓存区
查看目前状况 git status -> Changes to be commited(绿色)
只撤销S,不撤销D【比较安全】
git reset <changed_file>(git restore --staged <changed_file>)
撤销D和S中的修改
git checkout HEAD <chaned_file>
【HEAD指的就是最近一次的一次commit】
Local撤销提交的版本
假如已经使用git commit,则修改正式成为一个commit,被放在Local Git里
软撤销 【只撤销L】
git reset --soft HEAD~1
【撤销最近一次commit, 如果是撤销到最近X次comiit修改数字1为X即可】
非软撤销 【撤销L+S】
git reset HEAD~1 (git reset --mixed HEAD~1)
撤销 commit 版本同时清除 add 添加的缓存
撤销 L+S+D
git reset --hard HEAD~1
完全回滚(撤销已经提交的版本、放弃已经添加的缓存、甚至本地的修改)
reset vs revert
和git reset不同,git revert 本质上是增加一个 反相的commit
可以通过指定撤销哪个change的Commit
revert只能前进不许后退
公有分支revert
git revert HEAD
git push
在公有分支上 只能前进 不许后退【撤销只能用revert然后push,不然会影响到其他用户分支】
私有分支reset
私有分支上可以使用reset , 不过同步时要使用-f 强制push
git reset --hard HEAD~1
git push -f
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)