大家好,欢迎来到IT知识分享网。
原文链接:点击打开
Git与github介绍
Git:代码版本控制管理工具(类似SVN)
官网下载地址:https://git-scm.com/downloads
下载安装过程就不在此叙述了,安装成功后,在资源管理器任意位置单机右键,弹出的对话框包括如下图选项:
声明:本人只在windows环境下开发,文章所有内容都只是针对Windows系统下的说明(本人系统Windows10),其它高大上的什么Linux/Mac等环境下是怎么样我就不得而知了(PS:穷,用不起Mac/Linux)。
说明:
Git GUI Here:点击打开Git图形化管理界面(因为网上大多都只是介绍了Git Bash Here这一块的使用,我也还没来得及研究这一块功能,这里就不做介绍)
Git Bash Here:点击打开Git命令终端窗口(类似Linux下的shell)如图:
我们提交、更新文件等操作都可以通过git命令在此完成(下面介绍)。
Github:
这是一个基于git的代码托管平台,付费用户可以建私人仓库,我们一般的免费用户只能使用公共仓库,也就是代码要公开。Github由Chris Wanstrath, PJ Hyett 与TomPreston-Werner三位开发者在2008年4月创办。迄今拥有59名全职员工,主要提供基于git的版本托管服务。
至此,我们知道,Git是我们电脑本地的代码或文件版本管理工具,而github是代码或文件托管云平台。首先,明确我们的目标。我们的目标是,将本地代码同步到github平台上。OK,就这么一个小目标。
1.注册登陆到github官网(这里不用叙述吧)
2.创建仓库(Repository)
登陆github后,点击右上角加号,选择“New repository”,进入页面如下:
填写好你的仓库名称(Repository name)、描述(Description),选择Public(当然,如果你是土豪,也可以选择Private,要付费的哦),最后一个选不选无所谓。点击下面绿色按钮create repository,仓库就建好了。进入下一个页面,如果你在上一步操作没有选择Initialize this repository with a README选项的话(即创建的仓库里没有任何内容,选择了它会自动初始化生成一个README.md文件),你看到的页面如下:
这里有一些提示操作内容,就是告诉我们怎么样往这个仓库里添加文件了。注意到,这里的提示操作都是git操作,因此我们要转战到我们的Git工具上了。
不过别急,再次之前,我们还有一件事情要做。
什么呢?添加SSH Key。
什么鬼?这是什么东东?干嘛用的?不加这个东西会怎么样?
我也不知道。好,这里就先跳过一些步骤操作Git,看看我们不加这个什么SSH Key会怎么样。
先掠过一些步骤,我们直接到Git提交代码操作(没有添加SSH Key的时候)看看会出现什么情况。
遇到点问题,以后再写。。。
——————————————————————————————————————————————————————————————————————-
好尴尬,好尴尬,真的好尴尬!!!怎么回事呢?按理说,根据github官方API说明,本地Git要和远程github建立联系,是需要在本地Git生成SSH Key,再将SSH Key添加到你的github上的。然后我们才可以在本地Git执行commit、push等操作。但是……但是,就在刚才我要试验没有添加SSH Key会出现什么情况时,就是将github上的SSH Key delete后,在本地执行commit、push操作,竟然成功了,成功了……成功了?WTF?(一脸懵逼)
看看官方文档解释:
什么意思呢?用我拙劣的CET-4水平翻译下:SSH Key是一种不需要通过密码而与计算机建立信任的一种秘钥(有点像accessToken)。
就是说,本地计算机Git可以通过SSH Key与远程github建立一种信任关系,从而在本地不需要密码就能执行相应git操作。
恩,是这个意思吧。记得我初次安装好Git,还没添加SSH Key时执行commit等操作时是失败的,提示:
意思很明显,就说你没有权限(还没有和github建立信任关系)。所以根据github官方说明我添加SSK Key后,所有git操作都能顺利执行。至于现在删掉SSH Key之后为什么还能执行相应操作?我也不清楚,你说为什么呢?@张鸿洋@郭霖(莫非是因为我之前通过SSH Key连接过,所以github已经记录了电脑的id并保持了之前的信任关系?)
哎,先不管这茬,我们还是按照官方要求的来,继续吧……
——————————————————————————————————————————————————————————————————————
创建SSH Key
按github官方要求,在创建SSH Key之前,我们先检测下我们电脑是否已经存在SSH Key。在Git Bash下执行下面命令:
type %userprofile%\.ssh\id_rsa.pub
如果检测到存在,则会返回一大串以ssh-rsa开头的字符串,没错,这就是SSH Key
这里再说下我遇到的怪事,我在Git Bash下执行这条命令时查找不到SSH Key,提示:bash: type: %userprofile%.sshid_rsa.pub: not found,但是我在cmd下执行时显示的又是有SSH Key的(实际上也确实是存在的)。
如果你显示的也是存在的,那恭喜你可以跳过这一步,直接把这串以ssh-rsa开头的字符串拷贝添加到github上就行了。
如果不存在,没关系,我们创建,执行下面命令:
<span style="font-size:14px;">ssh-keygen -t rsa -C "*@*(你在github上注册的邮箱地址)"</span>
回车后它会要求你设置验证密码,也可为空
OK,在此执行检测命令就可以看到了。
然后到github上点击右上角头像选择“setting”,选择“SSH and GPG Key”,点击New SSH key,按步骤添加就行了。
点击Add SSH key就OK了。可能会要你输入验证密码,就是你的github账户密码。
至此,完成这些步骤,我们就完成80%的工作了。
接下来就是配置在Git上配置我们的用户信息了。执行下面命令:
更多关于config的信息,可以查看官方说明:点击打开链接
好了,一切就绪,我们来实现我们的小目标吧
将本地文件同步到github一般步骤:
在该文件目录下打开Git Bash,按顺序键入以下命令:
1. git init:将当前目录初始化为git 仓库(Repository),命令执行完毕后会在当前目录下生成一个.git隐形文件夹,里面包涵了一些git仓库初始配置文件
2. git add . :将当前目录下的所有文件和文件加及其子文件加入git版本控制(除了一些被过滤的文件),执行后说明现在这些可以提交到服务器了。当然你也可以添加指定文件(git add fileName)。注意,add 后面跟着“.”,表示当前目录。
3. git commit –m “commit message”:提交文件到缓存,并加上提交信息(必须)
4. git remote add origin https://github.com/username/gitProject.git:(对应的github远程仓库地址)。如果你是第一次提交项目,这一句非常重要,这是你本地的当前的项目与远程的哪个仓库建立连接。
例如:git remote add origin https://github.com/username/gitProject.git
5. git push –u origin master:将你刚刚add的文件上传到github对应仓库
如果成功,你登陆到github查看相应仓库就可以看到你刚刚提交的文件,并带有commit信息。
6. git status:查看是否提交成功与否。如果执行后返回信息没有红色或绿色(默认颜色,一些改动过但还未同步到github上额文件信息)文字,这表明当前无可提交内容,即提交成功。
将github远程文件克隆到本地一般步骤:
1. 找到合适的文件位置创建目录(作为接下来要克隆github上项目的本地仓库)
2. git init:进入新建目录,跟上面一样初始化本地仓库
3. git clone https://github.com/username/gitProject.git:将远程仓库文件clone到本地
最后,加一些我们在执行Git命令是可能会遇到的一些问题:
可能遇到的问题:
1. 执行gitpush –u origin master,出现如下错误提示:
error: srcrefspec master does not match any.
error: failed to push some refs to’https://github.com/zhusp1990/PenpaiNews.git’
原因:本地仓库为空
解决办法:执行下面命令
git add . (将当前目录下的所有文件添加到版本控制)
git commit –m ‘commit message’ (提交信息)
2. 执行git push -u origin master,出现如下错误提示
To https://github.com/zhusp1990/PenpaiNews.git
![rejected] master -> master(fetch first)
error: failed to push some refs to’https://github.com/zhusp1990/PenpaiNews.git’
hint: Updates were rejected because the remotecontains work that you do
hint: not have locally. This is usually caused byanother repository pushing
hint: to the same ref. You may want to firstintegrate the remote changes
hint: (e.g., ‘git pull …’) before pushing again.
hint: See the ‘Note about fast-forwards’ in ‘git push–help’ for details.
原因:远程文件(及GitHub上对应的仓库文件)包含了你本地没有的文件,你需要首先将远程文件同步到本地。
解决方法:
git pull–rebase origin master(同步远程文件到本地)
先写这么多,关于github与Git,还有许多要我们注意学习的东西,以后慢慢完善吧。
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/122108.html