你觉得这篇文章怎么样? 帮助我们为您提供更好的内容。
Thank you! Your feedback has been received.
There was a problem submitting your feedback, please try again later.
你觉得这篇文章怎么样?
作者 |
张嘉钧 |
难度 |
普通 |
材料表 |
今天介绍分成「下载并修改已存在的repository」、「上传全新的repository」两个部分,并且也会针对常见的问题进行解说!
下载并修改已存在的repository
如果你像我一样经常使用Visual Studio Code( VS Code) 又需要使用 Github来做版本控制或纪录,现在两家已经整合得很好了,VS Code甚至已经附带着Git的插件。
接着我们可以直接复制存放库 (repository),首先要先去Github取得网址
接着点选「复制存放库」可以于上方输入网址进行复制:
接着如果是第一次使用会有授权问题:
授权过了之后就会开始进行复制,接着只需要等待下载完就可以了:
一旦你在这个项目中对任何程序进行修改,VS Code就会自动侦测到并且将其标示为M ( Modified ):
如果是新增档案的话则会以U来标记,是Untracked 的意思:
只要看到有被标记的符号,就代表有修正过的意思。我们在上传至Github之前,需要先进行追踪的动作,让Git知道那些档案有被异动过、是否要保留这些异动,「加入追踪」就代表会暂时保留修改的内容,取消追踪就会恢复上一个动作,那重点来了,要怎么加入追踪呢?
点选下图较明亮的图标会进到Git专属的字段,这边可以看到有被动过的档案都会显示在这里:
将鼠标移到对象上点选「+」就可以进行追踪,也可以直接移动到「变更」的位置进行一次性全部加入追踪:
也可以点击右键,选择其他动作,与「+」相符的是「暂存变更」,这边比较特殊的应该是「新增到.gitnore」如果档案执行了这个动作则不会被上传至Github上,后续会再实作到。
全部都丢到暂存之后可以注意到刚刚 test.md 的标记是U,现在已经变成A ( Added ) 了:
*** 题外话 ***
刚刚有提到放弃追踪的部分,再这里需要点选「舍弃变更」,我在档案中新增了一些信息,选择「舍弃变更」之后刚刚更动的内容变会被删除(回到上一次追踪的状态):
在刚刚的操作中可以注意到是「暂存」的变更,代表还没完全认可,如果要认可的话需要点选提交 ( Commit ) 而提交的时候都需要附上版本信息 ,因为Git本身就是在做版本控制的工具,强制每一次提交都需要附上批注,这样才能落实版本控制。
我们可以透过 上方的 √ 符号进行提交,点击之后会出现对话框可以输入内容,我会建议使用英文来撰写版本信息:
认可后刚刚暂存的变更以及标记符号都被清除了,因为已经被加入追踪:
最后就能把数据给上传到Github上了,首先我们有进行了更动并且加入了注释 ( 认可 ),所以现在VS Code自动侦测到有一个版本可以推送 ( Push ) 到 origin/master ( Branch ) 上面:
这边有两种方式可以上传:
1.点击状态即可直接进行上传。
2.在版控字段点选「●●●」选择推送或推送至。
如果是第一次进行推送会需要登入
接着回到Github上面,就可以看到刚刚新增的档案了:
上传全新的repository ( 正常流程 )
我先开启了一个从未上传至Github的项目,也没有做过git版本控制
因为没做过git版本控制,所以点选到git的字段它会自动侦测到没有.git档案,按照它的叙述我们必须先进行初始化才能使用git相关的指令;如果我们使用命令来运作的话这个按钮就代表git init的部分
点击初始化按钮之后就会产生一个.git档案,这个档案会存放版本控制的所有数据
VS Code也可以看到熟悉的变更字段出现了
接着在开始其他动作以前,我们需要先到Github上去新增一个Repository:
接着可以回到VS Code当中去做远程了,这边教大家另一个方法,按下F1之后可以直接输入指令动作:
我们要使用Git的指令,所以最前面是要呼叫「Git」,并且我们要进行远程联机到该Repository,需要用的指令是「Add Remote」,中间会有「:」相隔:
我们可以像刚刚一样直接输入网址也可以从Github当中去选择:
这次我选择使用Github去挑选 ( 懒到一个极致 ) :
接着需要输入你远程的名称,通常会写做 origin,输入完直接Enter就可以了:
接着要先确认一下Github上面是否已经有档案存在了,像刚刚新增的时候我们有勾选README以及License:
如果已经有档案的话我们需要先将数据给拉下来 ( pull ) 在进行推送 ( push ),如果直接进行上传是会失败的因为内容不相符,在这里我自己经验是需要选择「从…提取」
并且选择刚刚远程的名称:
选择分支,第一次使用的话理论上只有一个,刚刚建立的远程分支:
回到档案总管的部分已经可以看到README、License了
接着我们回到git版本控制字段进行追踪以及提交的动作,这里因为我的影片档太大无法上传,所以我将其放进 .gitignore当中:
加入到 .gitignore后就可以把所有档案加入追踪,可以注意到标记符号已经从U转成A了:
最后记得要进行提交的动作,除了上面介绍的从中间的对话框输入讯息,也可以直接在Git字段上方撰写版本信息再进行提交,若提交成功该字段则会清空
最后可以推送到github上面,这边一样选择「推送至」
选择刚刚远程的分支:
重新整理Github网页就可以发现档案都已经上传啰:
上传全新的repository ( 快速 )
这边选择「发布至GitHub」
会依照你的文件夹名称来当作Repository的名称:
最后
发现忘记放README.md了,我直接在VS Code里新增并上传,由于尚未被追踪所以显示为U,加入追踪、提交等等就不赘述了:
由于已经有远程了,也有上传过一次,理论上已经有绑定分支就不用在使用「推送至」,这边直接用「推送」即可:
重新整理就会出现刚刚修改的README.md:
结语
这边教大家怎么样透过Github去上传自己的项目,分两种情境 ( 已存在Github项目、未存在Github项目 )教大家如何修改上传、其中第二个情境又有分两种上传方法,基本流程版的使用方法会与使用git bash来上传相似,只是变成图形化接口;快速简单版则是更直觉。希望大家都能够好好经营自己的Github,对自己绝对有很大的帮助的!
对了,如果有需要多人协作则需要安装插件,详细可参阅https://code.visualstudio.com/docs/editor/github
常见问题
github push failed (remote: Permission to userA/repo.git denied to userB.)
我们可以点选「显示Git输出」来观察错误讯息:
而我遇到的错误讯息大致上如下「github push failed (remote: Permission to userA/repo.git denied to userB.)」,查了一阵子数据才发现,我之前用公司的账号登入使用过SSH导致Github以SSH优先导向了User B,也因为SSH是凭证形式所以就算我使用 git config 去修改也没用。
这时候我们去控制台→Windows→用户帐户→管理Windows认证→Windows认证中删除凭证 ( git : … ):