关于git常用操作的教程,欢迎看我之前写过的一篇文章:http://t.csdnimg.cn/5QKzJ
好,接下来,正文开始!
一. Git 团队协作机制(内附武林秘籍)
这里我们感谢岳不群、令狐冲以及东方不败的友情客串~
1.1 团队内协作
岳不群:华山派掌门人,作为掌门他要开创一门华山剑法。
令狐冲:岳不群的大弟子。
东方不败:就当她是令狐冲的“good friend”(手动滑稽)。
代码托管中心:可以看作一个收录各种武林秘籍的庞大组织(哪本爽文小说没个组织庞大的情报商业机构~)。
首先,岳不群先创建本地库,在本地库中创建了一个架构,我们称为“华山剑法”。华山剑法创建好了之后,岳不群首先想要给大弟子(令狐冲)学习并让大弟子帮助他完善。
于是岳不群(本地库)就利用push(推送)把华山剑法推送到藏经阁(远程库:github\gitee)中。令狐冲(另一个本地库)去藏经阁找(clone克隆)武林秘籍来学习。
欸,我们发现啊令狐冲不愧是武术天才,简单的学习之后他就发现这剑谱很厉害,但总觉得不够完美。于是令狐冲就日夜钻研琢磨,最后完成了“华山剑法”Plus,再次放回(Push)[注意这里的push需要权限,就是你能往藏经阁放东西的权限,我们称这个权限为拜师(岳不群把令狐冲加到自己的团队里面)]藏经阁。这时候岳不群就可以去借阅(pull拉取)“华山剑法”Plus并学习(更新自己的本地库)。
5.2 跨团队协作
至此,师徒二人继续完善“华山剑法”并进入顿悟模式。但此刻很明显两人已经尽可能的完善却达不到预期。于是 二人决定去寻求他人帮助,令狐冲找到了“好朋友”东方不败(团队外的人)帮助师徒二人修改秘籍(为什么要跨团队协作呢?这里嗷我们看:东方不败作为日月神教的CEO,不会加入到小小的华山派,于是只能跨团队协作),把华山剑法改为辟邪剑谱。
岳不群首先把华山剑法fork到东方不败的藏经阁(远程库)里,然后东方不败把秘籍从藏经阁中取出(clone)拿到自己手上(本地库)。修改完成后得到(辟邪剑法/华山剑法Plus plus版),先放回(Push)自己宗门的藏经阁中,但是这里不能直接fork回去,需要发送一个Pull request(拉取请求)给岳不群,告诉他剑谱修改已经完成。但是不是你说增强就增强了,我得先看看你的修改成果是不是比我更厉害(审核),看完之后发现确实变得更牛逼了,于是岳不群把东方不败修改加强的地方与原版对比合并(merge),放回藏经阁中,然后岳不群再从藏经阁中取出(Pull)Plus plus版供自己和大弟子令狐冲修炼。
二. GitHub 操作
GitHub网址:GitHub: Let’s build from here · GitHub
ps:全球最大同性交友平台,技术宅男的天堂,新世界的大门,你还在等什么啊?(国内自行挂梯子上GitHub)
理论学习(有请两个我的虚拟朋友)……
账号 | 姓名 | 验证邮箱 |
Serendipity-a | me(岳不群) | 2798729298@qq.com |
********* | 令狐冲 | ********** |
******** | 东方不败 | ********** |
2.1 创建远程仓库
①点击右上角+号选择第一个New repository
②然后你就能看到这个界面(第一个空)我们看到Repository name是远程库的名字,我们尽量把名字设置跟本地库为同一名称。
然后关于远程库的开源(Public)与否(Private),自行选择即可。关于私有库免费是有限制的超过上限GitHub需要收费,或者去gitlab搭建(后面会讲)。
最下面的初始化选项无需在意,直接点击Create repository就行了。
③ 创建完成后你会看到远程库有HTTPS和SSH两种不同形式的链接。
2.2 远程仓库操作
命令名称 | 作用 |
git remote -v | 查看当前所有远程地址的别名 |
git remote add 别名 远程地址 | 给地址起别名 |
git push 别名 分支 | 推送本地分支上的内容到远程仓库 |
git clone 远程地址 | 将远程仓库的内容克隆到本地 |
git pull 远程仓库地址别名 远程分支名 | 将远程仓库对于分支最新内容拉下来后与当前本地分支直接合并 |
2.2.1 创建远程仓库别名
有了上面HTTPS的那个链接,我们就可以进行创建远程仓库别名的操作(链接那么长,打字累不累?记不记得住?取个别名轻松又省事是吧),将来push,pull时都可以直接用别名。
①基本语法
git remote -v 查看当前所有远程地址别名
git remote add 别名 远程地址
②实操案例
- 先使用git remote -v命令发现没有反应,说明我们当前没有任何别名;接下来使用下一个操作完成别名创建后再次查看就发现已经又内容了就是我们刚刚创建的别名。(个人建议别名跟本地、远程库名称相同。为什么?当然是好记啊)
- 关于为什么又两行消息,就说明这个远程库的fetch、push操作可以用这个别名。
这里我来讲一下在Git Bash中的复制与粘贴(这不是怕链接打错了,麻烦嘛)
①复制:按住 Shift 键并用鼠标左键选择要复制的文本,然后按 Ctrl + Shift + C 复制所选内容。
②粘贴:按 Shift + Insert 键粘贴。(亲们自行找找就看到了)
2.2.2 推送本地分支到远程仓库
①基本语法
git push 别名 分支
②案例实操
第一次推送会弹出一个Github Sign in
点击第一个蓝色框框 :让你的git绑定你滴github账号(成功)
成功之后你会看到这个(真累,一直报错push不了,如果你们也有这种情况可以跟我一样,先去GitHub里面找到安全把与git的凭据删除,然后重新打开git bash签订凭据,多试几次总能成功的)
然后我们就可以开始我们的第一次push!!
然后去看一看你的远程库,会发现你写的内容已经在远程库里面了。
在GitHub里面也可以直接修改代码,打开你上传的代码,点击右边那个🖊就可以修改了。然后在界面找到commit changes提交即可。
③拉取远程库至本地库
- 语法:git pull 远程库别名 分支
- 当你在远程库更改之后代码与本地库不同了,需要把本地库同步一下就要用到pull命令,并且查看状态发现十分干净,那是因为pull会帮你自动提交本地库。
2.2.3 克隆远程仓库到本地
①基本语法
git clone 远程地址
②案例实操
准备工作:D盘创建git-lhc(令狐冲的文件夹)
然后在令狐冲的文件夹里面打开git bash here (由于代码是开源的,clone代码时不需要登陆账号,但这时候你无法使用别名,你只能老老实实用地址)
- clone之后你就能在令狐冲的本地库那里看到岳不群创造的华山剑法了
- 这是远程仓库地址:GitHub - Serendipity-a/demo_cpp,clone结果:初始化本地库
先从git里面加入demo_cpp(这是我之前取的,使用自己取的别名),然后再查看别名会发现:
总结:clone会做如下操作:1.拉取代码 2.初始化本地仓库 3.创建别名(别名非自己创建,自动创建为origin)
2.2.4 删除远程库文件
①点击Go to file
②删除目录
③选择你要删除的文件删除即可
2.2.5 邀请加入团队
ps:从这里开始就是理论学习了,毕竟确确实实不好再找两个friends陪我一起实操。(每个步骤我肯定会认真思考并把细节难点解释清楚的,与前文本地库一样,兄弟们不用担心)
①成为师徒(前传)
- 令狐冲学习华山剑法发现了秘籍里面似乎缺了点什么,于是苦心钻研最后着手改进此秘籍(vim hello.txt)[之前实操我用的时demo.c,这里理论学习就用hello.txt,没有太大影响,请放心食用]
- 修改完之后还需要记录一下,防止以后继续修改or找回原版本(add、commit)。
- 令狐冲改完之后,还想让岳不群看到,毕竟是基于岳不群的秘籍修改。
- 这里我们需要push,然后我们发现与上次(跳转本文2.2.2)一模一样的弹窗。但是!这次不能直接点Sign in with your browser!因为这是岳不群的GitHub,我们需要进入浏览器退出并登录令狐冲的GitHub。
这里我们已经登上了令狐冲的GitHub了,点击蓝色框框就行啦。
我们看到git 与 GitHub 的绑定请求上显示的已经是令狐冲的账号,点击图中鼠标所处位置(绿色框框)
照理说已经绑定完成了账号,如下所示我们发现还是push失败了 (报错说是对岳不群的库,他令狐冲没有权限)
那么如何才能让令狐冲也push到岳不群的远程库呢?这就需要令狐冲拜岳不群为师(把令狐冲邀请进岳不群的团队共同开发)
②发出邀请
需要仓库持有人,也就是岳不群,去向令狐冲发出邀请,首先打开岳不群的仓库,点击Settings,看到左侧的一系列选项没有,找到第二个Manage access(管理成员)
然后再Manage access里面邀请(Invite a collaborator)令狐冲(点击绿色框框哦) ,然后输入所邀请的人的账号,确认后完成添加
到这里,看到打勾的没有,那个地方点一下会复制下来一个地址,类似于……
然后你需要把这个地址发送给令狐冲,令狐冲收到之后需打开自己的GitHub,在GitHub里面粘贴这个地址打开(绿色的是同意,后边白色的是婉拒)
同意之后就能在令狐冲的GitHub里面看到岳不群的仓库,就能在git bash里面完成代码推送了。推送之后远程库就会显示令狐冲的commit信息以及代码内容,团队里的所有人都可以看到。
2.2.6 拉取远程库内容
岳不群此时也可以pull拉取代码到本地库
2.3 跨团队协作
①将远程库地址复制发送给邀请跨团队协作的人(东方不败)
咱就是说,提一下GitHub左上角的Search是可以搜索项目滴。(账号+仓库名称搜索定位)
②东方不败在自己GitHub中打开岳不群仓库网址打开
仔细看图嗷,东方不败的账号岳不群的库,团队外的人想要协作首先要点右上角有一个fork,把这个仓库“叉”到自己本地库中,叉完之后就可以在自己账号下看见。
③东方不败这时候可以clone到自己本地库在git bash 里面vim进行修改,当然也可以在GitHub网页上在线修改。(这里以在线修改为例)
④此时东方不败commit后只能自己看见,岳不群看不见啊,这时候就需要pull request拉取请求 (点击图中鼠标所在位置绿色框框)
点击之后,进入新界面,底端会展示你修改代码的部分
最上面默认把commit备注内容拉取过来,下面可以自己写点话(类似于点外卖备注hhh),然后还是绿色框框!!!
然后岳不群的GitHub就会收到
具体代码内容可以在下图鼠标所示位置查看
岳不群有疑问也可以write一些东西回去(这就是为什么说GitHub是最大的交流社区,有聊天室)
⑤But!!! 你不能光聊天,根据流程图我们岳不群还需要最后一步merge(审核)没问题后点击绿色框框(Merge pull request)完成审核,然后confirm merge确认合并即可
2.4 SSH免密登录
在你的仓库code里面,你会看到两种链接,一种是https,另一种就是SSH,其中https我们前文就已经说过了,我们看一下SSH。但是你会发现你使用不了SSH这个,上面提示你并没有public SSH keys,所以你用不了,那么我们该如何使用呢……
2.4.1 为什么要使用SSH
从去年开始,github 对于 https 方式下载的仓库已经不支持直接 commit、push 等操作,由于 https 方式简单快捷,对于大部分只是对 git 初步熟悉的用户来说是非常合适的,因为不需要做任何配置,只需要一个 github 账号,一个仓库链接就可以将开源项目的代码拉取下来,并且贡献代码等。但是由于安全原因等考虑,github 对 https 做了一些限制,直接导致部分用户用着用着,提交不了代码了。
当然,使用SSH不仅仅是https有限制,同样是因为SSH可以每次提交时不用输入账户,密码,方便管理。
2.4.2 是否有SSH密钥
2.4.3 配置SSH
- 可以看到,我们本地是没有配置ssh相关的,那么接下来,请在你的本地库打开git bash here
- 然后输入ssh-keygen -t rsa -C "这里面是你的GitHub账号or绑定的邮箱"(图中还多了rsa -b这些内容,不一定用得上,先不加试试,没创建成功再用图片中的命令行),然后一直回车,直到看到一个奇奇怪怪的方框里面有奇奇怪怪的图案,就说明SSH key已经生成了,文件目录就是username/.ssh/id_rsa.pub
在文件目录地址打开可以看到两个文件,第一个是私钥,第二个是公钥~ 我们在git bash here 里面打开公钥(可以看到最后的邮箱是不是你的)
我们需要把这个公钥copy到咱们GitHub的账号里边(你的GitHub->seetings->SSH and GPG keys)
- 还是上面那张图嗷,点第一个绿框New SSH key
- Title 你随便取名,没有关系,然后下面大框Key里面粘贴之前复制的公钥内容
- 复制粘贴完,请点击绿框框了,出现下面的图片内容,则说明创建成功。
- 那现在咋测试SSH,或者说怎么使用(再去看看SSH,有变化)
- 复制SSH那串地址,然后可以直接在git bash here里面使用(第一次失败不要紧,大家都一样,one more again,就可以成功,然后会问你是否想继续链接,回答yes回车就行)
- 再测试一次啊(用push),vim修改文件内容,然后push并去远程库查看
- git三板斧: add、commit、push(可以看到这次push一次就成功了)
- 去远程库检查一下,有commit的信息“useful”,也有我们添加注释//SSH is useful(有一说一,确实香嗷)
2.5 更换远程地址的URL
2.5.1 遇到问题
- 在配置完SSH之后,我发现我居然用别名push不了,wok,然后找资料查解决方案,接下来请看教程……
2.5.2 什么是URL
-
远程仓库的新 URL。 例如:
- 如果您要更新为使用 HTTPS,您的 URL 可能如下所示:
https://github.com/OWNER/REPOSITORY.git
- 如果您要更新为使用 SSH,您的 URL 可能如下所示:
git@github.com:OWNER/REPOSITORY.git
2.5.3 将远程URL从SSH切换为HTTPS
-
打开Git Bash。
-
将当前工作目录更改为您的本地仓库。
-
列出现有远程仓库以获取要更改的远程仓库的名称。
$ git remote -v > origin git@github.com:OWNER/REPOSITORY.git (fetch) > origin git@github.com:OWNER/REPOSITORY.git (push)
-
使用
git remote set-url
命令将远程 URL 从 SSH 更改为 HTTPS。git remote set-url origin https://github.com/OWNER/REPOSITORY.git
-
验证远程 URL 是否已更改。
$ git remote -v # Verify new remote URL > origin https://github.com/OWNER/REPOSITORY.git (fetch) > origin https://github.com/OWNER/REPOSITORY.git (push)
2.5.4 将远程URL从HTTPS切换为SSH
-
打开Git Bash。
-
将当前工作目录更改为您的本地仓库。
-
列出现有远程仓库以获取要更改的远程仓库的名称。
$ git remote -v > origin https://github.com/OWNER/REPOSITORY.git (fetch) > origin https://github.com/OWNER/REPOSITORY.git (push)
-
使用
git remote set-url
命令将远程 URL 从 HTTPS 更改为 SSH。git remote set-url origin git@github.com:OWNER/REPOSITORY.git
-
验证远程 URL 是否已更改。
$ git remote -v # Verify new remote URL > origin git@github.com:OWNER/REPOSITORY.git (fetch) > origin git@github.com:OWNER/REPOSITORY.git (push)
三. Gitee-码云
3.1 简介
由于GitHub的服务器在国外,所以当我们使用GitHub作为项目托管网站的时候,会收到网速等各方面的限制,甚至会出现无法是哦也能够的情况。于是大家可以使用国内的项目托管网站—码云。
码云是开源中国推出的基于Git的代码托管服务中心,使用方式与GitHub基本一毛一样,重重重重点来了!!他是中文网站,对于我这种英语渣渣来说过于友好,必须好评。可能唯一麻烦的就是你得实名认证(这……我觉得大家应该都习惯了,国产游戏哪个不要实名认证是吧)
3.2 码云账号注册与登录
码云官网地址: Gitee - 基于 Git 的代码托管和研发协作平台
注册我就不细讲了,都中文的咱自己研究研究琢磨琢磨,我就不扯了……
3.3 创建远程库
- 仓库开源or私有,私有有限制,中文网站自己看看就行……
- 当然,你可以从GitHub、Gitlab里面把仓库整个导入进来
- Gitee支持SSH免密登陆,方式与GitHub一样(但我推荐HTTPS,因为服务器在国内,好用)
强制同步
文章来源:https://www.toymoban.com/news/detail-713688.html
文章来源地址https://www.toymoban.com/news/detail-713688.html
到了这里,关于GitHub(Gitee、Gitlab)武林秘籍的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!