零,前提条件
因为在国外,需要你有魔法工具或者有加速器,没有加速器可以选择Watt Toolkit或者其他的工具,这比配置一个魔法工具要简单多
如果不想弄这些,也可以用gitee(国内)取代github操作
git的下载csdn上有很多操作,这里不过多说明如何下载,直接讲解命令如何操作git命令进行操作
一,先搞明白如何使用github找到自己想要的项目
先要学会如何使用github,这里是git打开的页面(已经登录的情况下)
在这里有三个橙色框比较重要,topic是热点话题,trending是趋势(热门作者和仓库),你可以在这两个里面找到大家都在看,或者热点内容,除了这两个,还有一个搜索框
重点讲解一下搜索框:
搜索相关内容可以用 awesome + 关键词(awesome查找优质项目)
搜索之后左边会有一个栏,这里是细选
然后就可以看到左边有一栏有repositories(可以理解成项目,话题,讨论,代码等)
GitHub 会给你不同类型的搜索结果:
- Repositories:仓库
- Code:代码
- Issues:Issue
- Pull requests:PR
- Discussions:讨论
- Users:用户
同时右上角还有一些内容是可以直接选择的,是用来对搜索到的内容排序,如排序的方式most stars(按照星星数量排序)
还有一些更细致的筛选方法
按照格式输入到搜索框可以细致筛选
想直接看搜索方法总结的直接跳转到总结标题“总结大部分过滤方法”
按 Star 数量:
web security stars:>1000意思:
搜索包含
web security,并且 Star 大于 1000 的仓库。
例如:
burp extension stars:>500按语言
web security language:Python意思:
搜索 Web Security 相关,并且主要使用 Python 的仓库。
搜索某个作者的项目
比如:
user:torvalds就是搜索 Linus Torvalds 的相关内容。
如果你想搜索某个用户的仓库:
user:用户名例如:
user:openai.搜索某个组织的项目
org:OWASP就是搜索 OWASP 组织下面的项目。
最重要:搜索代码
如果你不是想找“项目”,而是想找别人具体怎么写代码,就选择:
Code
例如搜索:
socket.connect你可以看到大量真实项目里的代码
二,总结大部分过滤方法
三,明白如何下载开源项目
1,在release里
2,在about里
同样的页面中右上角about可能有官网下载地址
3,readme中看详细内容
可以搜索关键词,运行,部署,开始等,省去读文章时间
4,有的会部署在docker
这个就具体看了,不一定会有
四,基本的git操作
图形化的操作自己建立的库无法直接多人协助也无法分支管理,用git链接库,然后操作库才是好的操作
1,绑定
git config --global user.name "用户名"git config --global user.email "邮箱"
2,如何下载clone内容
两种方式是
(1)git clone 链接
将对应的github上的下载下来
(2)建立文件夹
用git打开
输入git init
3,如何修改内容并提交
注意:这里的提交指的是修改的下载下来的本地文件,不是库的,如何上传库之后会说
提交的步骤主要是git add 然后是commit 在commit中还可以加一个-m再加参数,这里可以多加一些备注,以后使用git log时可以更快捷的看懂这次修改做了什么
当然也可以用git diff 加对应的log显示的id来查看区别
还要绑定远程仓库
origin只不过时将这个远程仓库的别名,是个变量名,想用啥都可以
当要上传时
注意这些都是本地操作,如果想要在对应的github上上传代码需要加入push操作
git commit:把修改保存到“本地 Git 仓库”git push:把本地 Git 仓库的提交上传到 GitHub
这时你会看到需要验证你对这个仓库的是否有修改权限
4,验证修改权限
如何操作先找到设置
左下角找到developsettings,打开之后选择 Personal access token,Fine-grained tokens,点击
Generate new token
设置一个令牌和到期时间
调整权限为all
选择repository perimissions
界面里Repositories 0意思是:还没有给这个令牌分配任何仓库操作权限,哪怕你勾选了All repositories(全部仓库),也必须手动添加权限项才能正常 git 拉取 / 推送代码。
操作步骤(解决 0 仓库权限)
- 点击右侧蓝色按钮Add permissions(添加权限)
- 在弹出的仓库权限列表里,找到Contents(内容)
- 如果你需要
git push提交代码:权限等级选Read and write(读写) - 只拉取代码不推送:选 Read-only(只读)
- 然后点击生成apikey
- 如果你需要
如果你只操作单个仓库,也可以把 Repository access 改成 Only select repositories,再勾选对应仓库,权限配置逻辑不变。
生成的key一定要复制!!这东西只会显示这一次
后续直接填写这些信息就可以了
还有一种方法是用ssh
在git刚开始链接仓库是不要用http而是用ssh链接
在设置中找到对应的ssh链接
打开git bash
输入ssh-keygen -t rsa -C xuanli199@+邮箱
一路输入回车或y
最后会有一个显示key位置
在设置中用找到ssh
把公钥粘贴到 GitHub(不需要 token 页面)
GitHub 右上角头像 → Settings → SSH and GPG keys → New SSH key
Title 随便填(比如 Windows 笔记本)
Key 框粘贴刚才复制的一整串
ssh-ed25519 xxx xxx@xxx.comAdd key,验证账号密码完成绑定
测试 SSH 连通性
bash
ssh -T git@github.com出现Hi xxx! You've successfully authenticated代表成功。
五,对git的版本控制操作
git还可以回溯代码
git reset --hard [commit id]
git checkout [commit id]
分支
git branch就可以看到有哪些分支
注意,GitHub默认分支为main,使用GitHub当远程仓库时,请把matser修改main。
分支的概念如图,master一般不做修改,只保留成熟的经过测试的稳定版,修改的一般都是develop的分支内容
创建分支
git checkout -b develop
合并时,先切回对应的分支
再使用想要将当前的选中的用哪一个覆盖
git merge develop
还可以拉取最新分支
总结:
一下git操作的项目开发的流程
流程图对应的完整 Git 命令
这里功能分支名字是
dianzan(点赞分支),一步步对应图片流程:
- 切换到 develop 分支
git checkout develop # 新版git推荐写法:git switch develop- 创建并切换到功能分支 dianzan
git checkout -b dianzan # 新版git推荐写法:git switch -c dianzan- 完成开发(写代码)修改你的项目文件,写业务代码。
- add、commit 提交代码到本地仓库
# 把修改的文件加入暂存区 .代表所有改动文件 git add . # 提交,引号内写本次提交说明 git commit -m "完成点赞功能开发"- 切换回 develop 分支
git checkout develop # 新版git:git switch develop- git pull 拉取远端 develop 最新代码(防止别人提交了新代码)
git pull origin develop- 合并 dianzan 分支代码到 develop
git merge dianzan⚠️ 如果出现代码冲突:需要手动打开冲突文件修改冲突内容,修改完成后执行
git add .+git commit完成合并。
- 上传合并完的 develop 代码到 GitHub 远端仓库
git push origin develop补充说明(这个流程模式)
这个是经典的 GitFlow 简易工作流:
develop:开发主分支,所有功能都合并到这里dianzan:临时功能分支,只用来开发点赞功能
注意:这个方式是本地合并后直接 push 到 develop; 企业里更规范做法:不直接本地合并 push,而是把
dianzanpush 到远端,在 GitHub 网页发起 Pull Request(PR),代码评审后再合并。
【可选:PR 方式(推荐团队协作)】
如果走 PR 审核,第 7、8 步会换成:
# 在dianzan分支推送分支到远端 git checkout dianzan git push origin dianzan然后去 GitHub 网页仓库,新建 Pull Request,把dianzan→develop,评审通过后网页端合并。
常用小提示
- 查看当前所在分支:
git branch - 合并完成后,功能分支不再需要,可以删除:
git branch -d dianzan
六,多人协同开发