1.简述
什么是“版本控制”?
版本控制是一种记录一个或若干文件内容变化,以便将来查阅特定版本修订情况的系统。
1.1简介
Git是目前世界上最先进的分布式版本控制系统,git与svn的五个基本区别。它有以下特点:
分布式 : Git版本控制系统是一个分布式的系统, 是用来保存工程源代码历史状态的命令行工具;
保存点 : Git的保存点可以追踪源码中的文件, 并能得到某一个时间点上的整个工程项目额状态; 可以在该保存点将多人提交的源码合并, 也可以会退到某一个保存点上;
Git离线操作性 :Git可以离线进行代码提交, 因此它称得上是完全的分布式处理, Git所有的操作不需要在线进行; 这意味着Git的速度要比SVN等工具快得多, 因为SVN等工具需要在线时才能操作, 如果网络环境不好, 提交代码会变得非常缓慢;
Git基于快照 : SVN等老式版本控制工具是将提交点保存成补丁文件, Git提交是将提交点指向提交时的项目快照, 提交的东西包含一些元数据(作者, 日期, GPG等);
Git的分支和合并 : 分支模型是Git最显著的特点, 因为这改变了开发者的开发模式, SVN等版本控制工具将每个分支都要放在不同的目录中, Git可以在同一个目录中切换不同的分支;
分支即时性 : 创建和切换分支几乎是同时进行的, 用户可以上传一部分分支, 另外一部分分支可以隐藏在本地, 不必将所有的分支都上传到GitHub中去;
分支灵活性 : 用户可以随时创建合并删除分支, 多人实现不同的功能, 可以创建多个分支进行开发, 之后进行分支合并, 这种方式使开发变得快速, 简单, 安全。
Git 和其它版本控制系统(包括 Subversion 和近似工具)的主要差别在于 Git 对待数据的方法。概念上来区分,其它大部分系统以文件变更列表的方式存储信息。这类系统(CVS、Subversion、Perforce、Bazaar 等等)将它们保存的信息看作是一组基本文件和每个文件随时间逐步累积的差异。
GitHub是基于git实现的代码托管。
GitHub可以免费使用,并且快速稳定。
利用GitHub,你可以将项目存档,与其他人分享交流,并让其他开发者帮助你一起完成这个项目。优点在于,他支持多人共同完成一个项目,因此你们可以在同一页面对话交流。
创建自己的项目,并备份,代码不需要保存在本地或者服务器,GitHub做得非常理想。
学习Git也有很多好处。他被视为一个预先维护过程,你可以按自己的需要恢复、提交出现问题,或者您需要恢复任何形式的代码,可以避免很多麻烦。Git最好的特性之一是能够跟踪错误,这让使用Github变得更加简单。Bugs可以公开,你可以通过Github评论,提交错误。
在GitHub页面,你可以直接开始,而不需要设置主机或者DNS。
2.创建github repository(仓库)
创建账户
登录github的官方网址:https://github.com ,注册账户。
点击Sign in进入登录界面,输入账号和密码登入github。
创建repository(仓库)
点击右上角的加号旁边的小三角,展开后可以看到New repository,点击进入。填写仓库信息,名称必填、其它自定义。
创建成功后,可以看到自己的仓库地址。它还介绍了github仓库的常用指令。这个指令需要在本地安装git客户端。
git init //把这个目录变成Git可以管理的仓库
git add README.md //文件添加到仓库
git add . //不但可以跟单一文件,还可以跟通配符,更可以跟目录。一个点就把当前目录下所有未追踪的文件全部add了
git commit -m "first commit" //把文件提交到仓库
git remote add
origin git@github.com:wangjiax9/practice.git //关联远程仓库
git push -u origin master //把本地库的所有内容推送到远程库上
3.安装Git客户端
3.1客户端
官方下载地址:http://git-scm.com/download/ 根据使用系统下载对应版本
3.2安装客户端
下载好之后开始安装,欢迎界面,下一步。
选择安装路径,不要选择带中文的路径。
选择安装组件,按默认的来就好了。
设置开始菜单中快捷方式的目录名称,默认,下一步
设置环境变量 : 选择使用什么样的命令行工具, 一般情况下我们默认使用Git Bash即可, 默认选择;
选择换行格式 ,默认选择。
选择终端模拟器,默认选择
选择默认,不用文件系统缓存
等待安装
git安装成功。
3.3绑定用户信息
打开git-bash.exe,在桌面快捷方式/开始菜单/安装目录中
因为Git是分布式版本控制系统,所以需要填写用户名和邮箱作为一个标识,用户和邮箱为你github注册的账号和邮箱
ps : git config –global 参数,有了这个参数,表示你这台机器上所有的Git仓库都会使用这个配置,当然你也可以对某个仓库指定的不同的用户名和邮箱。
4.设置SSH key
ssh key是加密传输。
加密传输的算法有好多,git使用rsa,rsa要解决的一个核心问题是,如何使用一对特定的数字,使其中一个数字可以用来加密,而另外一个数字可以用来解密。这两个数字就是你在使用git和github的时候所遇到的public key也就是公钥以及private key私钥。
其中,公钥就是那个用来加密的数字,这也就是为什么你在本机生成了公钥之后,要上传到github的原因。从github发回来的,用那公钥加密过的数据,可以用你本地的私钥来还原。
如果你的key丢失了,不管是公钥还是私钥,丢失一个都不能用了,解决方法也很简单,重新再生成一次,然后在github.com里再设置一次就行
4.1生成ssh key
配置本地SSHKEY 才可以使远程跟本地连接(检查本地SSH KEY生成情况;(如果出现““No such file or
directory”或类似的语句,说明缺少ssh的key)
生成KEY的命令如下:
$ cd ~/.ssh
$ ssh-keygen -t rsa -C "emailaddress"
(emailaddree此处填写你自己的邮箱地址)
执行成功后会生成如下文件:
id_rsa.pub 就是我们待会需要的公钥文件,使用命令 cat id_rsa.pub 再将内容复制到剪切板,然后进入github账号设置里面粘贴,或者进入公钥文件对应的文件夹,用记事本打开id_rsa.pub
4.2账号配置ssh key
切换到github,展开个人头像的小三角,点击settings
然后打开SSH and
GPG keys菜单,点击New SSH key新增密钥,填上标题,跟仓库保持一致吧,好区分。
接着将id_rsa.pub文件中key粘贴到此,最后Add key生成密钥。
github账号的SSH keys配置完成。
5.上传本地项目到github
5.1创建本地项目
选择一个本地文件夹,用作保存本地仓库文件,文件夹中可以随意创建一个文件,不可为空文件夹(也可以是自己的初始项目文件)。
5.2建立本地仓库
创建新仓库的指令:
git init //把这个目录变成Git可以管理的仓库
git add README.md //文件添加到仓库
git add . //不但可以跟单一文件,还可以跟通配符,更可以跟目录。一个点就把当前目录下所有未追踪的文件全部add
git commit -m "first
commit" //把文件提交到仓库
git remote add
origin git@github.com:wangjiax9/practice.git //关联远程仓库
git push -u origin master //把本地库的所有内容推送到远程库上
具体步骤:
首先,进入到test项目目录(这里的项目目录是上一步创建的项目目录),然后执行指令: git
init
执行命令后会在当前文件夹下生成一个叫 .git 的隐藏文件夹,里面是一些配置文件,不要随意更改。
接着,将所有文件添加到仓库,执行指令:git add . (add后面还有空格加点)
然后,把文件提交到仓库,双引号内是提交注释。执行指令: git commit -m "这里是注释信息"
本地仓库建立成功。
5.3关联上传github仓库
进入github中的test仓库,然后复制仓库地址
然后执行指令: git remote add origin 这里是复制的仓库地址
上传本地代码
执行指令: git push
-u origin master
然后输入yes,回车
本地代码已经推送到github仓库
问题.ssh生成
https://blog.csdn.net/qq_37737566/article/details/82389248、
https://blog.csdn.net/jiangzunshao/article/details/53607046