Github小白【入门级】使用记录

提前准备:github账户,github Desktop,git
repository:仓库。
第一步:打开Github Desktop,登录,并允许其跳转至网页github。(电脑版账户与网页版上的Github账户绑定)。电脑端的github相当于是本地存储你的代码,网页版的Github是在远端存储你的代码。两者是需要通信才可以完成同步的。如果不把本地的pull到远端,或者不把远端的clone到本地,这两边的仓库内容是不同的。
第二步:在电脑端创建仓库。
点击Add:可以将别人的仓库clone下来。也可以本地创建create。这里先讲create。
在这里插入图片描述
在这里插入图片描述
(如果打对勾:readme.md可以自动创建一个readme。好处就是在网页上,仓库展示下面那一段话就是readme的内容,便于别人理解你的仓库在做什么)
这里Git ignore,是对仓库里的项目类型进行忽略,例如选择ignore python。则将这个仓库Pull到远端时,本地仓库中的python类型文件是不会被传到远端的。
在这里插入图片描述
创建后,左边Lchange显示仓库内的项目,history显示项目做出的改变可以进行compare操作。
右边第一个选项:是将仓库上传至远端。
第二个选项:打开在本地的文件夹。可以在本地看到这个项目里的内容,直接拖拽上传一些代码文件至这个文件夹。
我们先选择第二个选项:
进入本地:
在这里插入图片描述
随意添加一个代码文件:
在这里插入图片描述
【另外,每次在不同分支下,点击show in explorer ,虽然路径是一样的,但是展现的内容是各个分支的,并不同 神奇??这怎么做到的】

这时,电脑端已经同步你添加在文件夹中的文件:
在这里插入图片描述
选择commit,这个文件就被上传至了仓库。这里需要说一下分支。
这个文件是被上传至了main分支,也就是主干(master)
对于branch,有很多大佬都做过解释,其实主要github是开源社区,是多人协作的社区。对于每一个项目,他都有一个主干master,也就是创始出来最基础最原始的版本,并且在设置中需要把主干定位default(默认,来表面这个是主干)。

-----创建分支
新创建的Dev分支自动复刻了默认分支(main/master)主线
在这里插入图片描述
在这里插入图片描述
然后,在本地的仓库里,对刚才传入的setup进行修改(可以看出,无论是Master还是dev分支,它包含的内容都是与Master相同的,只是在这里再修改文件,对master是不会有任何影响的,相当于你的每一步改动都有了记录。
修改之后,你的页面:
在这里插入图片描述
右边切换一下视图:
在这里插入图片描述
可以看出你改变了什么,因为现在是处于dev分支下, 所以左边commit之后是将这个改动,改动在dev分支上,Master不会收到任何影响。
当然,也可以在这个dev分支上,传递一些新的文件,比如传入一个readme.
在这里插入图片描述
此时history显示之前所有的动作。
但是注意,目前所有的操作都是在本地的仓库内进行,并没有连接到远端(remote)。
我们先对主线进行上传:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
因为仓库还没传,所以先传入仓库,该过程较慢。如果仓库一开始就传递的话,后面只用对新创建的分支或者更新分支内的内容进行上传。
(可能会因为网络原因上传失败,多传几次就好)

在这里插入图片描述
点击view,进入我们的github页面。
在这里插入图片描述
只有一个main和仓库。
在本地切换到dev,把dev也上传上去。本地识别到这是一个分支,会自动提醒你是否pull。
在这里插入图片描述
选择pull:
在这里插入图片描述
这是让描述一下你这个分支改动的内容,pull后
在这里插入图片描述
开发者可以看到你的pull请求,然后选择是否合并
在这里插入图片描述
上面这句话是说没有冲突,可以合并:
在这里插入图片描述
合并成功后,dev已经融入进了Master,那么此时可以选择将dev删掉。
回去看我们的code:
已经融入了dev的修改和添加内容。
在这里插入图片描述
再一个,因为我们的项目是不断拉拢合并,即一直在更新,那么对于项目每个阶段,我们可以为他打上一个tag,标注不同的版本,例如v1.0,v1.1这里也是有规范命名格式的,如果要是开发级的项目,应该严格命名。
在这里插入图片描述
点view
在这里插入图片描述
在这里插入图片描述
选择分支对应命名。
在这里插入图片描述
打了tag后,会自动把你的这个分支包装起来,然后可以直接down下,里面含有这个分支的所有code。
(创建一个tag来指向软件开发中的一个关键时期)
在这里插入图片描述
这时再查看呢,也可以通过tag查找对应的,这个tag据说是按照字母排序的,而且可以检索find a tag 更方便。
这是自己创建仓库。

那么什么是fork别人呢?
可以去github上explore,相当于热搜榜,看看哪些自己感兴趣的项目,
在这里插入图片描述
第一个explore是感兴趣的,trending是热搜榜(可以选择语言)。
通过后面star(收点赞)和fork(跟随)可以看出哪些项目值得我们跟着fork。
fork之后,这个项目就被收纳进你的github remote仓库,然后你可以对其在自己仓库里做一些改动。
fork这个项目到本地有两种方式:
第一种:
在github网页上点击fork,之后选择:
在这里插入图片描述
可以打包下载到本地,也可以在终端 git clone 网址(.git) 会直接下载到git文件夹
第二种:
在别人的仓库里,把这个网址复制下来,在本地github上做clone,一样可以下载到本地。
在这里插入图片描述
之后会让选择你clone本地是为了,为开发者做出一些贡献,日后向他Pull,还是为了自己用呢?

后来,其他人想对主干做一些修正,或者添加一些新的功能。可以创建一个分支,例如叫dev,这个dev它包含原来master的所有内容,然后开发者可以在dev这个分支内,对项目做出修改。但是这个修改是隔离的,是你在dev分支上做出的修改,对master没有任何的影响。当你修改完毕之后,你可以向master提出申请合并(pull requests)。然后,开发者是可以通过compare,看到dev和master的不同之处,即可以看出你的改动。如果开发者同意了你的pull请求,则dev合并在了master。同时,可以选择删除dev分支。
当然可以创建多个分支,dev1,dev2,等等,而且创建的分支是可以基于先前的基础去选择建立,例如我建立一个dev2是在dev1基础上的分支,那么这有一个注意的点在于:当dev2和dev1同时发起pull时,可能会存在冲突。那么解决思路就是让dev1和dev2现在本地合并,然后再将合并后的分支向master发出pull请求。如果dev1,dev3是在master基础上建立的分支,那么这两个分支所修改的点可能并不存在冲突,这时可以分别按照时间顺序向master请求,然后开发者进行合并操作。但是如果出现冲突,依然需要在本地解决冲突再去合并。
在这里插入图片描述

大致的理解就讲差不多了,补充一些Github的其他便捷功能意思:
在这里插入图片描述
code:代码和配置,加一个readme,会显示在code下方,便于理解仓库是干嘛的
project可以做待办事项,问题优先级等的记录,相当于一个记事本。
issue:提问题(我这是私有了,所以没显示)
wiki:做笔记,相当于笔记本。用markdown编辑。(# 一级标题,## 二级,- 序号)
Insight:关于这个项目的一些浏览数据。
在这里插入图片描述
可以查看提交记录
setting:设置仓库是否公开,默认分支,以及删除仓库:
在这里插入图片描述

在这里插入图片描述
githubpage貌似可以挂网页,相当于一个域名?还不太会用,看大佬在上面挂过自己博客。
在这里插入图片描述
我选择删除这个仓库:
在这里插入图片描述
OK 删掉了。(本地无变化)
还有大佬说这个是事件响应,类似有人触发我的仓库会对我提醒?不太懂,待填坑。
在这里插入图片描述

刚刚自己亲手实践github才两天,之前都是clone大佬的。菜鸟决定把Github绿起来。欢迎各位大神指正~
后面附一些git使用指南和从中得到一些关于Branch的自我理解。以及查询一些资料,提取了几句特重点的话。

参考:
https://www.zhihu.com/question/20070065
https://www.jianshu.com/p/699ed86028c2
https://youngxhui.top/2016/05/github-for-windows%E4%BD%BF%E7%94%A8%E6%95%99%E7%A8%8B%E4%B8%80/
https://blog.csdn.net/wang975380547/article/details/78095299
https://blog.csdn.net/sinat_33718563/article/details/81979479

trunk:是用来做主方向开发的一直向前进行,一个新模块的开发,这个时候就放在trunk,当模块开发完成后,需要修改,就用branch。  
branch:是用来做并行开发的,这里的并行是指和trunk进行比较。  
默认分支被视为存储库中的“基础”分支,除非您指定其他分支,否则将自动对所有分支请求和代码提交进行该分支。Default 主线
tag:是用来做一个milestone(里程碑)的,不管是不是发布版本,但都是一个可用的版本,不需要修改如果要修改就要选一个tag进行branche开发。
Dev分支自动复刻了默认分支(main)主线
但是,并不是一定要把本地分支往远程推送,那么,哪些分支需要推送,哪些不需要呢?
•	master分支是主分支,因此要时刻与远程同步;
•	dev分支是开发分支,团队所有成员都需要在上面工作,所以也需要与远程同步;
•	bug分支只用于在本地修复bug,就没必要推到远程了,除非老板要看看你每周到底修复了几个bug;
•	feature分支是否推到远程,取决于你是否和你的小伙伴合作在上面开发。
总之,就是在Git中,分支完全可以在本地自己藏着玩,是否推送,视你的心情而定!
,很容易出现冲突。即使没有冲突,后push的童鞋不得不先pull,在本地合并,然后才能push成功。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值