Windows系统下GIT 的使用
1:Git简介:
- 博客园上面找到的语言:Git是一种非常流行的分布式版本控制系统,它和其他版本控制系统的主要差别在于Git只关心文件数据的整体是否发生变化,而大多数版本其他系统只关心文件内容的具体差异,这类系统(CVS,Subversion,Perforce,Bazaar 等等)每次记录有哪些文件作了更新,以及都更新了哪些行的什么内容。Git另一个比较好的地方在于绝大多数操作都可以在本地执行,而每个本地都可以从服务器获取一份完整的仓库代码,而且在没网的时候仍然可以修改和使用大部分命令,在方便的时候再跟服务器进行同步,这样可以更好的实现多人联合编程。
- 我自己的理解:远程服务器上面一个代码仓库,本地计算机一个代码仓库,当然,本地计算机是多台,因为分布式嘛。本地和远程都拥有完整的代码,然后使用一些新颖的高效的高大上点的方式实现本地和远程代码更新和版本控制。
- 再说一下自己对Git和Github和GitLab的理解:git 是一项技术,源代码管理的技术;Github是一个网站,一个开源项目的展示平台,那既然是开源,就涉及到了多人协同开发,既然是 项目就涉及到了源代码管理,它的源代码管理使用的技术就是git技术;GitLab是一个源代码管理的工具,类似SVN,它以git技术为核心功能,还衍生了一些软件项目开发中所需的其他的功能,如请求代码审阅。它是一个很腻害的值得企业和软件开发人员使用的“工具”。
2:下载Git、安装Git、配置Git:
打开网址:https://git-scm.com/
点击最显眼的“Download”
下载完了之后是这样的
接下来就是安装了,一路下一步,反正我是这样做的=_=*。
安装好了之后就会发现,自己的电脑安装的程序中多了这个Git
对计算机上面安装的Git做一个简单的配置: a) 双击5中截图中的“Git –Bash.exe”,会出现这个
b) 输入这样的一行命令:git config –global user.name “Naylor”。命令中双引号中的内容为自己定义,就是自己随便取个名字。 c) 输入这样的一行命令:git config –global user.email “cnaylor@163.com”。命令中双引号中的内容为自己定义,就是设置一个邮箱。 d) 输入这样的一行命令:ssh-keygen -C “cnaylor@163.com” -t rsa。然后它会提示你输入一个保存ssh公钥和私钥的位置,这里可输入一个位置。也可直接回车,它会保存在默认位置
e) 至此,Git在本地计算机上面的配置已经完毕,公钥和私钥也已经生成,稍后会使用公钥。
3:使用SSH连接本地Git库和Github中的Git库
登录自己的Github,进入Setings 中。
点击“New SHH kEY”
在“Title”中随便填写一个名称,在“Key”中输入公钥文件中的内容。用文本编辑器打开下图中的文件,然后复制里面的内容,粘贴到“Key”中。
好了,至此SSH配置完成。
4:在Github中新建一个代码仓库(即新建一个repository)
5:在计算机本地创建代码仓库
新建一个文件夹,然后鼠标右键点击,找到“Git Bash Here”,点击它。这时候会出现一个这样的窗口
输入git init
此时该文件夹下面会多一个文件夹,这个文件夹隐藏的。
在命令窗口中输入git add . 注意:add和. (点)中间有一个空格,.(点)表示将此文件夹下面所有的文件都纳入到Git库中。
输入命令:git commit -m “gitusestudy” 引号中的为自己定义
至此,本地代码库创建完毕。
6:将计算机本地的代码仓库中的代码提交到github中的代码仓库。
在本地代码库所在文件夹下面,本教程即是E:\Code\GitUse文件夹下面,新建一个“测试git”的TXT文件。右键点击“Git Bash Here”,打开Git Bash 命令窗口.
输入命令:git remote add origin https://github.com/Naylor55/VSCodes.git
输入命令:git push -u origin master 此命令作用是将本地代码库中的文件更新到github代码库中。
输入该命令后,会提示你输入github 网站的帐号名称,本教程中即是Naylor55。再回车后,会弹框让你输入帐号对应的密码。
如果上述步骤都成功,命令窗口中会显示类似这些的内容
此时,打开github网站,进入到新建的代码仓库下面,会看到内容已经被提交到了github。
7:可能遇到的问题
push 的时候报错如下:
原因:本地仓库版本低于github上面的版本,这时可以使用 git push -u origin master -f 命令强制提交。此命令会舍弃远端的修改,常规团队间合作开发不可取,可是此环境下这样做不会有太大的影响。