写在前面
我大一的时候没有学长系统的教过git,直到后面要写项目了才去学习git ,过程中认识那些纷繁复杂的相关概念,查稀奇古怪的报错浪费了我大量的时间,一路摸爬滚打过来我深知git操作的困难,希望学弟学妹们不要再走一次我当时的弯路
插件推荐
装了git graph之后能让你清晰的看到你的队友干了什么,方便背锅,主要还是免费
其他例如gitlens的要花刀乐
基本概念
基本流程
使用终端敲命令行固然很酷炫,但是这需要大量的记忆成本,其实vscode与git其实已经做了很好的集成了,也就是说绝大多数的命令我们只要点点按钮就可以实现。
当然如果你真的觉得使用终端敲指令非常炫酷,也可以来问我,我一开始也是敲指令的,很艰难,后面改成用可视化的按钮来操作,个人觉得后者更智能一些。
这篇文档只讲述了最常用的操作,后面的合并分支解决冲突暂时用不到,就不写了
情况一:自己本地开一个新项目
1.新建一个项目
这种情况下你按照之前的编写代码的习惯,随便添加一些文件,没有什么问题的,但是他此时并没有连接github仓库。
2.在本地起一个本地仓库,连接到GitHub
这一步vscode帮你做了很多git init,他甚至可以帮你全自动建立了一个仓库(可以登陆github使用 new repository建立) ,不知道是不是我vscode账户是GitHub账户的原因。
找到这个类似树杈的图标,我们的一切git操作都是基于这个区域
点击 初始化仓库
这个时候需要先交一些你的代码上去,我们先把init.html上传
git add
注意到这个文件旁边有三个按钮,第一个是打开这个文件,方便你看,没什么用。第二个按钮,类似撤回的,就是放弃这一次更改,点击之后你的修改增删都会撤回,第三个按钮,很关键,这个加号等同于git add命令,也就是把你的修改的文件保存到工作区,方便之后的commit,点击之后他会移动到“暂存的更改栏”这个时候我们才可以commit这个修改
git commit
每次commit需要一条说明,写在那个消息框里
忘记的话,他会提示你,此时在下图第一行写上commit语句,保存并关掉这个文件即可
git init /git push
点击发布branch,右边弹出框框,这是提示你,你还没有仓库我交个毛线,你要不先开一个仓库吧?这里让你选择你的仓库是私有的还是公开的,一般选公开的,上面的框框给你的仓库取一个名字
这样之后你就有了一个你的远程仓库,并且已经和你的这个文件夹很好的连接了,接下来你的commit,push都会到这个仓库里为你保存。看,我们已经在GitHub自动创立了一个仓库,存着我们的三分钟前commit的init文件
在你有了仓库并且连接好之后,就很简单了,修改代码,add(点加号按钮),commit发布,push到remote仓库里。
之后修改就不需要建立仓库了,只要add commit push
一些其他的:
这个小树杈会实时更新,他有下标就代表你的文件改变了,应该实时的和远程同步
这里M代表modified作出修改的,U代表untracked没有追踪的,你可以理解为新建的文件
3.管理分支
git分支的重要性,应该有一点了解的,接下来教你们怎么管理分支
点击左下角,然后点击新建一个分支,给他取个名字,英文,尽量小写,好像windows不区分大小写
给你的分支起个名字,回车
这个时候你多了一个本地分支,但是远程应该有一个同名分支,
看左下角,注意旁边多了一个云朵的图标,点击发布远程分支,这样你就多了一个远程分支
github仓库也出现了一个分支,这就是远程分支,你一般修改代码是在本地写,提交到y远程存储。一般在分支上修改,不同成员都有一个分支,然后有管理员合并你们的dev分支到main分支,软件发布。
4.分支同步git pull
如果你的dev分支修改了,或者说你的队友在远程修改了,你电脑上的代码不可能说自己会修改,那么他就落后了一些,我们需要拉取最新的代码,来更新你的本地。这里我在dev上新建一个css文件,并且提交,但是我的main分支并不会同步更改。
看左下角来判断你现在在那个分支上,对比发现你的main分支落后了一个css文件这个时候需要拉取最新的代码来更新你的本地代码
选择你要拉取的远程分支,你会发现你的本地main分支出现了css文件,更新到了最新的版本(和你拉取的代码一致的版本)
情况二:从github拉了一个新项目继续开发
有时候你不一定是这个项目的主人,你需要加入别人的仓库,这时候你就可以使用克隆命令
回到桌面,打开终端
cd desktop
git clone xxxxxxxxxxxx
打开github 或者gitlab,找到你的项目,这里我以南邮小程序为例
我要克隆这个项目,就把那个链接替换到xxxxxxxxxx上
一般来说克隆有两个链接,一个是http,一个是ssh公钥验证
第一种克隆方便,但是以后提交都要验证你的身份,舒服一次,麻烦很多次,适合你拉取其他的代码下来看看,但是不准备长期修改贡献了
第二种ssh,第一次配置略麻烦,但是以后比较方便
怎么配置ssh可以按照下面这个文章来,嫌麻烦可以周三找我来配
https://juejin.cn/post/6844904066032599054?searchId=202312042136464E58AB5D70E0FA79FE9B
github上有丰富的资源,你只要克隆就可以获得他们的代码
克隆下来之后,
你就自动和那个仓库建立了远程连接,不信的话你会发现你可以看到所有的远程分支, 这意味着你已经链接到这个仓库了,你要做的就是建立一个你的本地分支,推送到原程生成一个同名的remote分支
可以看到这里的其他贡献者的原程分支,他们都最后会提交到一个远程的主分支上,由仓库的管理员来决定你的代码是否被“录用”。
贡献你的代码
你要做的和上一种情况一样了,做出修改,add缓存,commit提交,push推送,时不时看看你要不要pull最新的代码