title: 分享使用git的实用小技巧
放弃本地更改,使用远端数据覆盖本地数据(以main分支为例)
git checkout main && git fetch --all && git reset --hard origin/main && git pull && git clean -fd
以上有五条命令,这里分别解释一下效果
git checkout main
返回本地main分支
git fetch --all
为从远端获取数据 ,git fetch 与 git pull的区别是,git fetch是git pull的子集,git pull 包含 fetch 与 merge 两个操作,而merge 可能会引起冲突,为了避免解决冲突的麻烦,我们只需fetch即可
git reset --hard origin/main
按照 origin/main
的数据强制回滚
git pull
这步其实可以省略
git clean -fd
这步是为了清理无用的空文件夹
以上五条命令以&&
连接,只有上一个命令顺利执行,才会进行下一步。
查看远程仓库名称和地址
git remote
git remote -v
回到上一个分支
如果我需要在 zhaoolee20221031alpha 和 zhaoolee20221031beta 两个分支不断切换,进行编码,我需要不断输入 git checkout zhaoolee_2022_10_31_alpha
, git checkout zhaoolee_2022_10_31_beta
进行分支切换,如果想简单一些,我可以使用以下命令
git checkout -
git checkout -
的效果是切换到上一个分支,非常适合两个分支相互切换的场景
删除远程的分支(以名为origin 的远程仓库为例, 删除远程的zhaooleedev20220802仓库)
git push origin -d zhaoolee_dev_20220802
代码临时存储 git stash
在A分支写代码, A分支的代码还没写通,但忽然要求去B分支改一个bug, 如果要checkout 切换分支 ,则需要保存A分支的状态,如果用commit 保存状态,则会产生一个「脏commit」,此刻我们可以用 git stash save “说明信息” 在A分支进行代码存储,然后 git checkout B, 在B分支完成工作后, git checkout A, git stash list,查看所有存储的key ,然后git stash apply 存储其中一个key
最后的命令形如 git stash apply stash@{2}
按照日期创建新分支
git checkout -b zhaoolee_$(date '+%Y_%m_%d')_invite_optimization