• git基本操作


    日常上班摸鱼ing

    git是一个code版本控制管理系统,常用于大型项目多人协作的场景

    大家上班了基本都会接触到的,然而在大学期间如果并没有参加老师的项目的话(such as me),就会造成这段知识的空缺,而这在公司中又是基础,必需的技能,正巧,闲着也是闲着,在等sync data,也不知道干点啥,那就写点东西,缓解下焦虑感

    其实想写些更狂拽酷炫的东西的,但是很可惜,我不会,而且很多用心才学会的东西记录了下来,并没有多少人看,反而是愈加基础的东西越多浏览,当然我的本意依旧是记录自己,以及帮助他人,如果能帮助到的话。

    git将文件位置分为三个区

            本地

            暂存

            远程仓库

    一般工作流程是,我们将远程仓库的代码clone到本地来,然后创建一个新的分支,在该分支上进行代码的修改,测试,然后将将你的代码合并进仓库中就可以了

    我们可以先来看一下如何用git操作完成这个流程

    git clone (link) 从远程仓库中copy一个项目到本地

     git branch (branch name)

    然后自己进行代码的修改,修改完成后

    git add --all 将所有的改动从本地提交到暂存区

    git commit 将暂存区的代码上传至仓库(本地)

    (一般公司都会这这步中间加上一个review code的过程)

    git push 将本地内容推送至远程的master 分支

    然后就完成了一次代码的改动

    issue

    当然,现实情况总是比理想情况复杂的,就这么一个简单的流程,也会出现各种各样的问题。

    由于公司项目一般是多人协作任务,如果在你clone代码,然后修改,最后合并的途中,如果出现你的同事也在你修改的代码部分进行了修改,并且已经提前merge进了主分支,在你合并代码的时候就会出现冲突。

    如何解决代码冲突问题,vscode会将有冲突的文件列在源代码管理处,你需要在看代码逻辑的情况下手动点击choose incoming,save both等选项来解决冲突

    然后根据log提示来告诉git你解决完冲突了

    具体操作为 git add .  将当前冲突文件都标记为已解决冲突

    git rebase 取消刚才合并并变基

    这时你的代码改动都在本地,不过已经是可以合并进master的状态了,然后重新 commit push就可以merge了

    当然现实多人开发项目的途中并不只是有这一种情况,还有

    git status 可以查看用于在(该分支本地仓库)基础上修改了那些文件(不过我一般是用vscode的源代码管理功能查看的)

    当你的代码需要多次修改时,想看自己改动的部分,可你当前分支的代码已经commit了(commit之后本地仓库就修改了,没有之前的改动比较了),可以使用 git reset HEAD^ 来回退commit

    或者你想要特定commit版本的代码  也可以 git reset (版本号)

    当然还有一种自己工作中用到的情况

    当你正在一个新task 上快乐coding的时候  突然线上出问题了,有个紧急bug需要修复,这时你就得切换分支来修复bug,那你当前分支的代码改动就需要保存下来,(当然你可以commit到本地仓库去,解决完bug后再切换该分支+ git reset,但是公司一般都有代码自动审查机制,比如你的代码跑不通,commit也不行)

    这时就有一个新git 命令,  git  stash

    可以将你代码的改动暂时存在一个暂存区中(与仓库的暂存区不同)

    git stash -m (name)保存暂存改动

    git stash -m (name) --pop 弹出暂存改动

    git stash --list 查看所有暂存改动

    当然弹出暂存改动时也可能会出现代码冲突情况,解决方案同上

    还有一种较为严重的问题

    就是自己已经merge的代码在线上出了问题,这时第一时间应该做的是让线上的代码跑一个正确的版本,我们就需要先将自己merge的代码版本revert掉

    具体操作为 git revert -n (版本号)

    然后可能会出现冲突(解决方案同上)

    修复完bug后

    git commit -n 版本名 即可解决问题

    这类问题是最严重的,因为影响到了用户(所以merge代码前一定要仔细检查啊,多测测啊)

    ok,到这已经涵盖了大部分git操作,还有一丢丢简单的操作

    git branch -d (branch name) 删除分支

    git stash clear 清除所有的暂存改动

    以上就是我目前会用到的所有git操作了

  • 相关阅读:
    第七章 网络安全 | 计算机网络(谢希仁 第八版)
    在本地模拟C/S,Socket套接字的使用
    盘点Vue2和Vue3的10种组件通信方式(值得收藏)
    c语言贪吃蛇游戏
    sklearn机器学习——day03
    Linux 磁盘空间莫名被吃掉,该怎么查?
    adguarg通过dns代理全局过滤广告,全系统操作指南
    【计算机毕设选题推荐】蛋糕甜品店管理系统SpringBoot+SSM+Vue
    软件性能瓶颈问题之数据库性能问题定位
    for深入学习
  • 原文地址:https://blog.csdn.net/permi_yaxileni/article/details/126228858