文章目录
- Git浅谈
- Git是什么
- Git工作流
- 一、注册github账户并创建github仓库
- 二、使用git
- 三、上传项目
Git浅谈
阅读此部分可以帮助了解git的工作机制,帮助学习git,不阅读此部分,可以直接看后面三节
Git是什么
- Git(读音为/git/)是一个开源的分布式版本控制系统
- 可以有效、高速地处理从很小到非常大的项目版本管理
Git工作流
Remote:远程仓库
Repository:本地仓库
workspace:工作区,每当在代码中进行了修改,working space的状态就改变了。
Index:暂存区,它是连接workspace和Repository的桥梁,每当我们使用git-add命令后,index的内容就改变了,此时index就和workspace同步了
一、注册github账户并创建github仓库
1、注册github账户
进入GitHub 注册页面,输入用户名,邮箱和密码,根据提示一步一步进行注册,最后还需要登录注册的邮箱验证电子邮件地址,注册页面如下图
邮箱验证成功后,登录到github上。
2、创建一个github项目
点击“Start a project”创建一个项目,在“Repository name” 中输入仓库名字,可以取符合规范的任意名字,之后就可以通过这个名字直接访问该仓库下的代码了,可以将它作为你的个人网站。
然后点击“Create repository”创建仓库,根据提示将本地的代码上传到仓库中。创建步骤如下图
创建完成后的界面
3、创建一个本地项目 之后本地首先需要新建一个目录,名称和仓库名一致,例如:上面我创建的项目名为MyTest,下面我创建的文件夹名也为MyTest
二、使用git
1、安装 git
首先去git 官网下载并安装 git,安装步骤略过
鼠标右键如上图,表示安装成功,然后点击 “Git Bash Here”,打开命令窗口 2、在 GitHub 上添加 SSH key 首先需要检查你电脑是否已经有 SSH key,在任意位置处,右键,选择git bush here,在命令窗口执行:
cd ~/.ssh
上图说明没有ssh(如果有,直接跳到第3步),接下来添加一下ssh key。执行
ssh-keygen -t rsa -C "your_email@example.com"
-t 指定密钥类型,默认是 rsa ,可以省略。
-C 设置注释文字,比如邮箱。
-f 指定密钥文件存储文件名
例如输入
ssh-keygen -t rsa -C 15170505655@163.com
上面的代码省略了 -f 参数,因此,运行上面那条命令后会让你输入一个文件名,用于保存刚才生成的 SSH key 代码,可以不输文件名,直接回车,接着又会提示你输入两次密码(该密码是你 push 文件的时候要输入的密码,而不是 GitHub 管理者的密码),可以不输(push 的时候也就不用输入密码了),一路回车,如果出现下图内容,表示生成秘钥成功。
现在我们再次执行 ```bash cd ~/.ssh //切换到该路径下 ls //显示该文件夹下的内容 ```
此时发现已经不会再返回结果了,说明配置正确。注意,图中被框中的路径即为.ssh文件夹下两个文件的路径,记住此路径,第三步会用
补充:如果刚才设置了密码,怎么清除呢?,执行下边命令:
ssh-keygen -p
先会提示你选择需要修改的私钥,回车就可以,然后让你输入就密码,输入后,会提示你输入新密码,直接回车不输,提示确认新密码,再次回车,此时密码就被清除掉了,以后 push 的时候就不需要输入密码了。
3、添加你的 SSH key 到 GitHub 上面去
用编辑器(如记事本)打开 id_rsa.pub,该文件所在路径为“C:\Users\Administrator.ssh”复制里边的内容,然后打开 GitHub,登录你的账号,打开设置(右上角 Settings),点击右侧 SSH,然后点击“New SSH key”,添加刚复制的内容
上图中,由于我已经之前添加过了,但可以继续点击New SSH key进行添加,添加完成后的界面如下
4、测试一下该 SSH key
执行下面命令:
ssh -T git@github.com
然后输入 yes 回车,如果没有问题,你上面设置了密码,下一步就会让你输入密码,没有设置密码,就直接会显示出你的 gitHub 用户名,下图表示添加成功:
三、上传项目
在本地的项目目录(E:\GitHub\MyTest)下,注意我们本地创建的项目名称和在github上创建的仓库名称一定要一致,在该文件下右键打开一个git bash,执行下面给出的命令,
1、把这个文件夹变成Git可管理的仓库
通过命令git init把这个文件夹变成Git可管理的仓库
git init
这时可以发现study里面多了个.git文件夹,它是Git用来跟踪和管理版本库的。如果你看不到,是因为它默认是隐藏文件,那你就需要设置一下让隐藏文件可见。执行结果如下所示
2、把项目添加到仓库
git add 文件名 //把项目添加到仓库(或git add .把该目录下的所有文件添加到仓库,注意点是用空格隔开的)。在这个过程中你其实可以一直使用git status来查看你当前的状态。 比如我写一个MyTest.txt文档,内容为Hello Git,并保存。
git add MyText.txt
运行结果如上图
3、把项目提交到仓库。
git commit -m "注释"
将项目提交到本地仓库(repository)
git commit -m "MyFirst Commit"
成功提交后的结果如下图
4、与github(远程仓库)建立联系(前提是已在github上创建该文件夹后)
仓库链接从下图中此处获得
git remote add origin https://github.com/xdobetter/MyTest.git
运行效果如下图
5、把本地库MyTest的所有内容推送到远程仓库(也就是Github)上git push -u origin master
把本地库MyTest的所有内容推送到远程仓库(也就是Github)上,此后,每次本地提交后,只要有必要,就可以使用命令git push origin master
推送最新修改;
git push -u origin master
在执行该命令过程中,弹出登录对方框,输入注册git的账号密码
推送成功后的结果如下
打开我们的github网站,进入我们创建的项目,可以发现我们已经提交上去了,结果如下
发现一个问题,我在生成 SSH key 的时候并没有设置密码,为什么 push 的时候还需要用户名密码?
因为用的是 https 而不是 ssh,更新 origin 为 ssh 格式。
HTTPS的格式为:https://github.com/用户名/仓库名.git
SSH的格式为:git@github.com:用户名/仓库名.git
设置一下:
git remote remove origin
git remote add origin git@github.com:用户名/仓库名.git
设置完之后,我再新建一个txt文件,并输入如上内容,执行下图中语句进行提交
github上的结果
到此,把本地项目上传到github的讲解结束