Git用来做分布式版本控制,简单点说就是文件历史的一个管理工具;github是世界上最大的软件远程仓库,是一个面向开源和私有软件项目的托管平台。主要的区别就是Git是一个本地仓库,而github是一个远程仓库,你可以共享自己的代码、能很好的进行团队开发、或者学习别人的代码等等。
Git使用
1、首先去 官网下载对应自己电脑Git版本
2、windows和Mac下载完成之后直接安装进行相关配置,自行选择合适的存储位置,其它的可以不用设置,可以一直next,过程比较简单。
使用linux或者Unix的小伙伴打开终端,在终端输入
sudo apt-get install git
然后输入密码即可安装
3、安装完成之后需要进行Git设置,windows打开GitBash,macos和linux用户打开终端,这里设置的是自己的名称和邮箱,名称方便别人辨认是谁提交的数据,方便辨认。
$ git config --global user.name "Your Name"
$ git config --global user.email "Your Email"
将you name换成你自己的名字,your email换成你自己的邮箱
接下来你就可以使用你的Git了!!
4、这里打开电脑终端,进入一个你要记录文件更改的文件夹,这里我创建了一个example文件夹,然后输入
git init
初始化你的文件夹,然后这个文件夹以后的更改就会被记录了,如果文件夹里面没有内容的话会提示 Initialized empty Git repository in D:/Git/example/.git/
手动创建一个hello.txt文件,里面存放内容为
print("Hello Git!")
现在就可以把这个文件夹放进仓库里面了
首先,输入git add命令把文件添加至仓库缓存区
git add hello.txt
若无任何提示表明添加成功
然后,使用git commit把缓存区的文件提交到仓库
git commit -m "我提交了hello.txt"
其中 -m 和后面引号内容是本次提交的说明,也就是描述你每次改了什么
-m后面的内容能是他人更加容易阅读,也让自己更加快捷的看清楚每一步提交了什么东西
[master (root-commit) 505b7f5] 我提交了hello.txt
1 file changed, 1 insertion(+)
create mode 100644 hello.txt
这就表明你已经提交成功了,1 file changed表明一个问件被改动,也就是当前所提交了hello.txt,1 insertion表明里面有一行内容
你也可以使用add同时加入多个文件,然后一次提交
git add hello2.txt
git add hello3.txt
git commit -m "提交了两个文件"
或者
git add hello2.txt hello3.txt
git commit -m "提交了两个文件"
add是将文件放入缓冲区,commit才是提交至仓库
[master 9db4b72] 提交了两个文件
2 files changed, 2 insertions(+)
create mode 100644 hello2.txt
create mode 100644 hello3.txt
5、开始说到Git是文件历史的一个管理工具,也就是我能够回到之前的历史记录。好比如现在我将之前的hello.txt的内容更改一下
print("Hello Git!!")
print("Hello World!!")
按照上面的步骤提交hello.txt,出现如下提示信息
[master 0076f57] 我在hello里面添加了一行内容
1 file changed, 2 insertions(+), 1 deletion(-)
现在如果我们需要前一个版本的hello就可以通过Git实现,首先git log查看一下版本信息
commit fab757c5e130d0f06cfd43ee86caf9fe5f27d725 (HEAD -> master)
Author: Qiang-Young <2845290850@qq.com>
Date: Tue Apr 13 21:56:48 2021 +0800
我在hello里面添加了一行内容
commit 505b7f5a313a74a7340e2f5a26135cbb47e530a0
Author: Qiang-Young <2845290850@qq.com>
Date: Tue Apr 13 13:44:35 2021 +0800
我提交了hello.txt
最新的提交会出现在最上面,这里的Author就是你的用户名和邮箱,以及更改时间,这里的commit是版本号,这个commit id是我们找回当时版本的唯一凭据。如果我们要回到以前的版本就可以通过git reset命令,可以使用
git reset --hard HEAD^
Git中使用HEAD表示当前版本,HEAD^ 表示上一个版本,HEAD^^ 表示上上一个版本,当然往上100个版本写100个^比较容易数不过来,所以写成HEAD~100。现在用git log查看版本信息
commit 505b7f5a313a74a7340e2f5a26135cbb47e530a0 (HEAD -> master)
Author: Qiang-Young <2845290850@qq.com>
Date: Tue Apr 13 13:44:35 2021 +0800
我提交了hello.txt
回到了最初的版本,当然txt里面的信息也发生了变化,变成了
print("Hello Git!!")
我们还可以通过之前的commit的信息又恢复为最新的版本
git reset --hard fab757c5
版本号没必要写全,前几位就可以了,Git会自动去找,也不能写的太少,这样会容易找到多个。现在就会看见txt又恢复到了两行信息
print("Hello Git!!")
print("Hello World!!")
当你忘掉了你的版本的commit时,可以通过git reflog查询,它用来记录你的每一次命令
D:\Git\example>git reflog
fab757c (HEAD -> master) HEAD@{0}: reset: moving to fab757c5
505b7f5 HEAD@{1}: reset: moving to HEAD^
fab757c (HEAD -> master) HEAD@{2}: commit: 我在hello里面添加了一行内容
至此Git的简单使用就差不多了
Github使用
1、进入github官网注册账号
2、第二步:创建SSH Key。在用户主目录下,看看有没有.ssh目录,如果有,再看看这个目录下有没有id_rsa和id_rsa.pub这两个文件,如果已经有了,可直接跳到下一步。如果没有,打开Shell(Windows下打开Git Bash),创建SSH Key:
ssh-keygen -t rsa -C "your email"
你需要把邮件地址换成你自己的邮件地址,然后一路回车,使用默认值即可,无需设置密码。
如果一切顺利的话,可以在用户主目录里找到.ssh目录,里面有id_rsa和id_rsa.pub两个文件,这两个就是SSH Key的秘钥对,id_rsa是私钥,不能泄露出去,id_rsa.pub是公钥,可以放心地告诉任何人。
打开id_rsa.pub,复制里面的内容。
然后登陆你的GitHub,打开右上角“settings”
在里面找到“SSH Keys and GPG keys”页面,然后,点“New SSH Key”,填上任意Title,在Key文本框里粘贴id_rsa.pub文件的内容即可
GitHub需要识别出你推送的提交确实是你推送的,而不是别人冒充的,而Git支持SSH协议,所以,GitHub只要知道了你的公钥,就可以确认只有你自己才能推送。
当然,GitHub允许你添加多个Key。假定你有若干电脑,你一会儿在公司提交,一会儿在家里提交,只要把每台电脑的Key都添加到GitHub,就可以在每台电脑上往GitHub推送了。
最后友情提示,在GitHub上免费托管的Git仓库,任何人都可以看到(但只有你自己才能改)。所以,不要把敏感信息放进去。
3、现在你就可以创建一个仓库了,点击右上角的repositories,进入之后New一个新仓库就可以了
然后进入你新建的仓库主页
这里有两种方式关联本地仓库,一是把本地已有的同名Git仓库和GitHub上的仓库关联起来,二就是直接将Github的仓库克隆到本地
4、关联本地仓库
在本地创建一个example文件夹,然后初始化文件夹,设置为Git仓库
git init
在本地仓库提交一个hello.txt文件
git add hello.txt
git commit -m "我提交了hello.txt"
然后将本地仓库与远程仓库连接起来
git remote add origin git@github.com:Qiang-Young/example.git
输入的后面部分可以直接去你的仓库复制
然后把本地仓库内容推送到远程库当中
git push -u origin master
由于远程库是空的,我们第一次推送master分支时,加上了-u参数,Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令。在我的仓库里面就可以看见本地仓库推送的内容
然后git add和git commit就可以正常使用了
git push origin master
5、直接克隆远程仓库,打开终端进入存放克隆仓库的文件夹,使用命令git clone
git clone git@github.com:Qiang-Young/example.git
后面的内容与前面一样,是你的仓库地址。当然你也可以克隆其它人的仓库。在你克隆的仓库里面还是可以使用git add和git commit,提交到本地之后使用git push就能推送到远程仓库了
6、可以在你的仓库界面中setting里面删除你的仓库。在你的仓库中当然也可以直接导入你电脑当中的文件
以上就是Git以及Github的大致使用教程啦