今天你Git了吗

这个作业属于哪个课程软件工程实践-2023学年-W班
这个作业要求在哪里软件工程实践总结&个人技术博客
这个做作业的目标1. 回顾与总结本学期的经历 2. 个人技术总结
其他参考文献《构建之法》

一、技术概述

在团队开发过程中Git的使用是必不可少的,团队如何并行开发,正确提交pr请求,这对于维护项目是非常重要的。而新手小白在使用Git时经常会遇到一些突发情况,可能会导致项目内容被覆盖或丢失等问题,因此学习Git是至关重要的。

二、技术详述 && 问题与解决

Git使用的规不规范,我认为很大程度上可以反映你的编程能力,规范的使用Git可以让别人清楚明白你完成的任务,以及告诉别人可以放心的合并你的代码。下面将从配置、提交commit、修改commit、以及pull进行讲述,以下都是在git bash中执行:

正确使用Git

配置用户信息

git config --global user.name "Your Name"
git config --global user.email "your.email@example.com"

配置SSH密钥

使用以下指令生成SSH密钥

ssh-keygen -t rsa -b 4096 -C "your.email@example.com"

然后将其添加到你的github/gitcode的设置中的SSH keys,下面以github为例:

点击个人头像后进入Settings
在这里插入图片描述

点击 SSH and GPG keys
在这里插入图片描述

点击New SSH key按钮
在这里插入图片描述
在这里插入图片描述

然后将你刚刚生成的SSH密钥复制进去即可。使用HTTPS可能会受到防火墙和代理服务器限制,使用SSH可能会有更好的兼容性(即当你无法使用HTTPSclone某些仓库的时候,使用SSH就可以解决)。

克隆仓库(clone)

clone 指令如下,git clone 后面跟着需要clone的仓库地址,需要到仓库里,点击Code获取

git clone https://github.com/xxx/xxx.git

学会clone仓库是必须的,当你试图clone一些github上的仓库时,你会发现你无法clone下来,这是因为你的网络问题,需要使用超能力(博览世界的能力),超能力是作为一名软件工程学生必备的技能(工具)。

如果你使用了超能力后依然无法clone下来,报错原因是网络问题的话,那么你就需要多尝试几次,因为超能力可能会不稳定。

提交Commit

规范正确提交commit是很重要的,commit时填写的描述信息需要正确传达此次commit完成的内容。同时commit的描述信息是有规范要求的,不同的项目可能有不同的要求,大体可以参考以下commit规范:

在这里插入图片描述

上述描述的PR规范同样适用于commit。

修改Commit

当你提交错误想要修改commit时,可以使用git rebase -i HEAD~1来进行交互式变基,HEAD后面跟的数字表示,你想要修改几个commit,顺序是从最新开始往前。会进入到类似下面的画面:
在这里插入图片描述
上面显示的便是最新两条commit记录,如果你想要进行删除操作,先按i这个按键进入编辑模式,然后将pick改为drop即可,同样如果你要编辑这个commit,只需改为edit即可。修改完毕后,按住ESC,输入:wq进行保存退出。

如果你选择了edit,那么接下来你就要进行rebase操作,例如这样:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

那么你需要输入git status进行查看当前的状态栈,在这里面会告诉你需要完成哪些事情(解决哪些冲突或提交哪些内容),以及使用哪些git指令继续流程。当你完成后,进行git push到远程仓库即可,如果出现某些错误提示,你可以使用git push --force进行强制push。修改已经提交的commit,必须要使用强制push。这一部分需要自己多多实践,熟练了就没什么问题了,特别是解决冲突的能力。

拉取远程仓库

在这里插入图片描述
要使用pull拉取远程仓库,首先配置远程仓库,可以使用git remote -v查看当前的远程仓库,如果没有你想要的远程仓库,你可以使用git remote add 自定义远程仓库命名 远程仓库地址,接下来你就可以使用git pull 远程仓库命名 仓库分支来拉取你想要的远程仓库的某一分支的仓库,远程仓库命名和仓库分支可以不填,不填时会使用默认的。推荐使用git pull --rebase来拉取仓库,变基式拉取,会在拉取时进行一次合并,当合并内容出现冲突时,就需要你来选择你需要的部分,然后按照git status中的提示完成合并即可。

在这一部分经常会出现pull后自己的代码丢失的情况,因此推荐使用git pull --rebase来拉取仓库,同时当你在解决冲突时,也就是在rebase的过程中,因为会进入到一种特殊的中间状态,因此可能会出现代码会出入,你只要选择你需要的即可。在你想要push之前都需要进行一次pull,避免与团队其他成员发生冲突。

三、总结

当然上述的Git使用并不完整,还有其他的一些Git操作,限于笔者的掌握情况,只列举了上述部分。但是覆盖了大部分新手小白可能遇到的问题(例如我自己)。总之Git的使用对于每一个软件工程的学生都是必须要掌握的,很可惜的是,我是在大三下的软件工程实践这门课上才了解到。

四、参考

新手小白可能遇到的问题(例如我自己)。总之Git的使用对于每一个软件工程的学生都是必须要掌握的,很可惜的是,我是在大三下的软件工程实践这门课上才了解到。

四、参考

Casdoor的贡献者指南

  • 7
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值