git 常用操作
2023-06-25 本文已影响0人
晨曦中的花豹
需求开发完成,准备将开发分支合入master分支。
// 拉取最新的云端分支信息
git fetch
// 切换至 master 分支
git checkout master
// 更新 master 代码
git pull -r
// 合并开发分支,并合并成一个新的提交feature/fanjie/gerrit-0702 仅用于举例,需替换为自己的开发分支名
git merge feature/fanjie/gerrit-0702 --squash
// 解决冲突
...
// 提交
git commit
//提交review
git push origin HEAD:refs/for/master
// review未通过,修改后不要重新提交,使用以下命令行将改动合并入上一次提交
// (可以保证changeId不变,review代码的同学也可以很清楚的看到第二次提交改动的地方)
git commit --amend
// 再次提交review
git push origin HEAD:refs/for/master
改动的临时存储,比如正在开发的东西还不具备提交条件,但是临时需要去别的分支工作,可以通过以下命令行进行临时存储
git stash save "临时保存" // 存储
git stash pop // 取出
同步云端代码
git fetch
开发中时刻保持自己的分支是基于最新的master的,这样的好处有很多,代码冲突能及早发现并解决,不至于最后再去大范围的解决冲突问题
git rebase master
将其他分支的提交迁移过来,比如我们在demo上边的改动,有用的内容不想再写一遍,可以通过这种方式直接将demo改动的代码迁移过来
// 98cce07是当前分支之外的其他分支的提交
git cherry-pick 98cce07 // 直接在当前分支生成提交
git cherry-pick 98cce07 --no-commit //不在当前分支生成提交,只把代码改动迁移过来
代码回滚 ~1代表回滚一个提交
git reset HEAD~1
代码重置到最新的当前分支提交
git reset --hard
想要当前分支代码还原到最新的master分支代码,常用于当前分支要与某一个分支代码拉齐
git reset --hard origin/master
回滚某次提交的代码,生成新的提交,与reset区分
git revert 98cce07
清空缓存,并不是删除文件,比如在.gitignore中已经添加了对某个文件的忽略,但是可能在不经意中强制跟踪了文件的修改,导致忽略失效,这个时候,手动调用下这个命令,就会重新将.gitignore中忽略的文件重新忽略
git rm --cached .
设置git默认编辑器,我常用Sublime Text
git config --global core.editor "/Applications/Sublime\ Text.app/Contents/SharedSupport/bin/subl -w"git
更多git只是学习请看Git - Book