一、github基本使用
这一小节主要介绍github的基本使用方法以及每一步的流程和作用。
1. 创建仓库
2. 创建分支
此时有两个分支:main 和 readme-edits。 现在,它们看起来完全相同。 接下来,将向新分支添加更改。
3. 创建和提交更改
在上一步中创建新分支时, GitHub 会将您带到作为 main 副本的新 readme-edits 分支的代码页。
您可以对存储库中的文件进行更改并保存更改。 在 GitHub 上,保存的更改称为提交。 每个提交都有一个关联的提交消息,该消息是解释为什么进行特定更改的说明。 提交消息会捕获您更改的历史记录,以便其他参与者可以了解您执行了哪些操作及其原因。
4. 打开拉取请求
现在,您在 main 以外的分支中进行了更改,可以打开拉取请求。
拉取请求是 GitHub 上协作的核心。 打开拉取请求后,可以提出更改,要求某人审查和提取您的贡献并将其合并到其分支中。 拉取请求显示两个分支中内容的差异。 变化、增减以不同的颜色显示。
只要进行提交,便可打开拉取请求并开始讨论,即使在代码完成之前亦可。
通过在拉取请求消息中使用 GitHub 的 @提及功能,您可以向特定人员或团队请求反馈,无论他们近在大厅还是远在 10 个时区之外。
您甚至可以在自己的存储库中打开拉取请求并自行合并。 这是在处理大型项目之前了解 GitHub 流程的好方法。
您的协作者现在可以查看您的编辑内容并提出建议。
5. 合并拉取请求
在最后一步中,您将 readme-edits 分支合并到 main 分支中。 合并拉取请求后,readme-edits 分支上的更改将合并到 main。
有时,拉取请求可能会引入与 main 上现有代码冲突的代码更改。 如果存在任何冲突, GitHub 将提醒您有关冲突代码的信息,并防止合并,直到冲突解决为止。 您可以进行解决冲突的提交,也可以使用拉取请求中的注释与团队成员讨论冲突。
在本演练中,应该没有任何冲突,因此您已准备好将分支合并到主分支中。
二、通过git命令使用github
在github上创建好仓库后进行以下操作:
1.把需要上传的文件夹变成git可管理的文件,在需要上传的文件夹路径下输入以下:
git init
2.将本地文件添加到暂存区
git add .
3.将暂存区文件提交到分支(master):
git commit -m'对修改过的代码的描述'
4.为将要上传的版本打一个tag,方便后来下载不同版本的代码:
git tag tag名称
# 这里的tag名称最好是分支名称和版本号的组合
4.添加你要上传到的远程仓库:
git remote add origin 仓库地址
# 仓库地址为:git@github.com:xxx/xxx.git
5.切换分支 (可选,如果不切换分支的话就默认上传到main/master分支上)
git cheekout -b 分支名字
# 如果是存在的分支,想要切换的话直接git checkout 分支名字即可
# 如果是不存在的分支,则git checkout -b 分支名字就可以创建新分支并切换到新分支上
6.将本地本版本号的文件上传到远端仓库的指定分支:
git push origin 分支名字 tag名称
此时,如果报错 就说明你的SSH key没有添加到github帐号设置中,这时需要在本地创建SSH key,然后将生成的SSH key文件内容添加到github帐号上去。
创建SSH key的方法很简单,生成ssh key的过程如下所示:
ssh-keygen -t rsa -C "your_email"
然后系统提示输入文件保存位置等信息,连续敲三次回车即可,生成的SSH key文件保存在中~/.ssh/id_rsa.pub文件中。
在linux下可以用cat命令显示id_rsa.pub中的内容:
cat ~/.ssh/id_rsa.pub
接着拷贝.ssh/id_rsa.pub文件内的所有内容,将它粘帖到github帐号管理中的添加SSH key界面中。
在团队协作使用git的过程中,一般会禁用直接提交master分支的权限。正常操作应该是,在新建分支上进行处理,然后提交一个request,请求合并,也就是常说的PR(Pull Request)。
上传新的版本后就可以进行版本的管理等操作,比如上一小节介绍的拉取请求、解决冲突、合并拉取请求等操作。
查看历史版本的操作如下: 然后就可以看到历史版本,每一个版本分别做了什么样的修改,所以在git commit -m "修改内容部分"要好好填写修改的内容:
三、从GitHub上指定分支clone代码
如果是从master/main分支clone代码,则:
git clone 仓库地址
# 仓库地址为:git@github.com:xxx/xxx.git
如果想从指定分支clone代码,则
git clone -b 分支名称/tag名称 (--depth=1) 仓库地址
# 仓库地址为:git@github.com:xxx/xxx.git
# depth 表示克隆深度, 1 表示只克隆最新的版本. 因为如果项目迭代的版本很多, 克隆会很慢
如果想下载历史版本(历史版本没有历史版本号),就可以先git clone,然后从commits找到对应版本的SHA并复制SHA,然后cd到刚下载的代码目录,git checkout SHA,当前目录的代码就变成了该版本。也可以直接通过历史版本进行下载。
当给一个版本打上版本号后,如果这个版本被merge到了master分支,可以通过版本号下载这个版本。
|