git与github使用教程详解

git与github使用教程

在这里插入图片描述
在Windows上安装Git
1.Git官网直接下载安装程序,然后按默认选项安装即可。
2. 安装完成后,在开始菜单里找到“Git”->“Git Bash”,出现一个类似命令行窗口的窗口,就说明Git安装成功!
在这里插入图片描述
3.Git是分布式版本控制系统,每个机器必须自报家门:名字和Email地址。这相当于给安装在你自己电脑的是git起了一个名称,因为git每次commit都会依据名称记录信息。
$ git config --global user.name “Your Name”
$ git config --global user.email “Your Email”
在这里插入图片描述
创建版本库
版本库又名仓库,英文名repository,可以简单理解成一个目录,这个目录里面的所有文件都可以被Git管理起来,每个文件的修改、删除,Git都能跟踪,以便任何时刻都可以追踪历史,或者在将来某个时刻可以“还原”。
1.创建一个版本库非常简单,首先,选择一个合适的地方,创建一个空目录:
$ mkdir test
$ cd test
$ pwd
在这里插入图片描述
2.通过git init命令把这个目录变成Git可以管理的仓库:
$ git init
在这里插入图片描述
瞬间Git就把仓库建好了,并提示这是一个空的仓库(empty Git repository),当前目录下多了一个.git的目录,这个目录是Git来跟踪管理版本库的,没事千万不要手动修改这个目录里面的文件,不然就把Git仓库给破坏了。
在这里插入图片描述
3.新建一个readme.txt文本:
$ vi readme.txt
在这里插入图片描述
增加内容,并保存:
Git is good system.
在这里插入图片描述
4.把文件添加到git仓库暂存区:
$ git add readme.txt
在这里插入图片描述
5.把文件提交到git仓库:
$ git commit -m “first time commit readme.txt”
在这里插入图片描述
git commit命令:-m后面输入的是本次提交的说明,可以输入任意内容,最好是有意义的,这样你就能从历史记录里方便地找到改动记录。

git commit命令执行成功后会告诉你,1 file changed:1个文件被改动(我们新添加的readme.txt文件);2 insertions:插入了两行内容(readme.txt有两行内容)。

commit可以一次提交很多文件,所以你可以多次add不同的文件:
$ git add file1.txt
$ git add file2.txt file3.txt
$ git commit -m “add 3 files.”

版本回退
1.增加内容,并保存:
Git is verry good system.
在这里插入图片描述
2.尝试提交readme.txt文件:
$ git add readme.txt
$ git commit -m “second time commit readme.txt”
在这里插入图片描述
像这样,你不断对文件进行修改,然后不断提交修改到版本库里,一旦你把文件改乱了,或者误删了文件,还可以从最近的一个commit恢复,然后继续工作,而不是把几个月的工作成果全部丢失。
3.在Git中,我们用git log命令查看提交历史记录:
在这里插入图片描述
git log命令显示从最近到最远的提交日志,我们可以看到2次提交,最近的一次是second time commit readme.txt,上一次是first time commit readme.txt。

更多命令:

简化查看log 提交日志:
$ git log --pretty=oneline

退回版本:
在Git中,用HEAD表示当前版本,如上面最新的提交5ad0c06…,上一个版本就是HEAD ^,上上个版本就是HEAD ^ ^,当然往上100个版本写100个 ^ 数不过来,所以写成HEAD~100。

退回first time commit readme.txt版本
$ git reset --hard HEAD^
HEAD is now at 48ce08b add distributed

退回second time commit readme.txt版本
$ git reset --hard 5ad0c
HEAD is now at 5ad0c append GPL

查看Git命令记录(长时间的记录):
$ git reflog

查看Git状态:
$ git status

丢弃工作区的修改:
git checkout – file //file为需要丢弃修改的文件

把暂存区的修改撤销掉:
git reset HEAD //file为需要丢弃暂存区修改的文件

工作区和暂存区
工作区有一个隐藏目录.git,这个不算工作区,而是Git的版本库。
Git的版本库里存了很多东西,其中最重要的就是称为stage(或者叫index)的暂存区,还有Git为我们自动创建的第一个分支master,以及指向master的一个指针叫HEAD。
在这里插入图片描述
第一步是用git add把文件添加进去,实际上就是把文件修改添加到暂存区;

第二步是用git commit提交更改,实际上就是把暂存区的所有内容提交到当前分支。

因为我们创建Git版本库时,Git自动为我们创建了唯一一个master分支,所以,现在,git commit就是往master分支上提交更改。

git与github协作
现在已经在本地创建了一个Git仓库后,又想在GitHub创建一个Git仓库,并且让这两个仓库进行远程同步,这样,GitHub上的仓库既可以作为备份,又可以让其他人通过该仓库来协作。
(请先在https://github.com申请一个github账号)

1.在用户主目录下,看看有没有.ssh目录,如果有,再看看这个目录下有没有id_rsa和id_rsa.pub这两个文件,如果已经有了,可直接跳到下一步。如果没有,打开Shell(Windows下打开Git Bash),创建SSH Key:
$ ssh-keygen -t rsa -C “youremail@example.com”

你需要把邮件地址换成你github账号下关联的主邮件地址,如下图,然后一路回车,使用默认值即可,由于这个Key也不是用于军事目的,所以也无需设置密码。
在这里插入图片描述
如果一切顺利的话,可以在输出提示目录里找到.ssh目录,里面有id_rsa和id_rsa.pub两个文件,这两个就是SSH Key的秘钥对,id_rsa是私钥,不能泄露出去,id_rsa.pub是公钥,可以放心地告诉任何人。
在这里插入图片描述
红框就是id_rsa和id_rsa.pub两个文件存储路径,可以到相应文件找到这两个文件。
在这里插入图片描述
2.登陆GitHub,打开“Account settings”,“SSH Keys”页面:
在这里插入图片描述
填上任意Title,在Key文本框里粘贴id_rsa.pub文件的内容,然后点“Add SSH Key”:
在这里插入图片描述
点击“SSH and GPG keys”,你就应该看到已经添加的Key:
在这里插入图片描述
为什么GitHub需要SSH Key呢?因为GitHub需要识别出你推送的提交确实是你推送的,而不是别人冒充的,而Git支持SSH协议,所以,GitHub只要知道了你的公钥,就可以确认只有你才能推送。

当然,GitHub允许你添加多个Key。假定你有若干电脑,你一会儿在公司提交,一会儿在家里提交,只要把每台电脑的Key都添加到GitHub,就可以在每台电脑上往GitHub推送了。

最后友情提示,在GitHub上免费托管的Git仓库,任何人都可以看到(但只有你自己才能改)。所以,不要把敏感信息放进去。

如果你不想让别人看到Git库,有两个办法,一个是交点保护费,让GitHub把公开的仓库变成私有的,这样别人就看不见了(不可读更不可写)。另一个办法是自己动手,搭一个Git服务器,因为是你自己的Git服务器,所以别人也是看不见的。这个方法我们后面会讲到的,相当简单,公司内部开发必备。

确保你拥有一个GitHub账号后,我们就即将开始远程仓库的学习。

3.github添加远程库
在这里插入图片描述
按上面顺添加你的工程,请特别留意“注意”这里:点击选择,就会在github工程里默认添加一个readme.txt文件,后续想把git上的文件push到github前,要先用命令git clone更新一下本地git的文件,否则push会失败。(建议在push前,用git clone命令更新本地git文件,以避免push出错)
在这里插入图片描述
在GitHub上的这个test仓库还是空的,GitHub告诉我们,可以从这个仓库克隆出新的仓库,也可以把一个已有的本地仓库与之关联,然后,把本地仓库的内容推送到GitHub仓库。

在本地git的test仓库下运行命令:
$ git remote add origin https://github.com/mworkfun/test.git
在这里插入图片描述
注意:请把上面的mworkfun替换成你自己的GitHub账户名,否则,你在本地关联的就是我的远程库,关联没有问题,但是你以后推送是推不上去的,因为你的SSH Key公钥不在我的账户列表中。

添加后,远程库的名字就是origin,这是Git默认的叫法,也可以改成别的,但是origin这个名字一看就知道是远程库。

5.把本地库的所有内容推送到远程库上:
在这里插入图片描述
把本地库的内容推送到远程,用git push命令,实际上是把当前分支master推送到远程。

由于远程库是空的,我们第一次推送master分支时,加上了-u参数,Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令。

在push过程中如果出现以下提示框,请在上面输入你的github账号与密码即可。
在这里插入图片描述
在这里插入图片描述

推送成功后,可以立刻在GitHub页面中看到远程库的内容已经和本地一模一样:
在这里插入图片描述
从现在起,只要本地作了提交,就可以通过命令:

$ git push origin master

把本地master分支的最新修改推送至GitHub,现在,你就拥有了真正的分布式版本库!

备注:SSH警告

当你第一次使用Git的clone或者push命令连接GitHub时,会得到一个警告:

The authenticity of host ‘github.com (xx.xx.xx.xx)’ can’t be established.
RSA key fingerprint is xx.xx.xx.xx.xx.
Are you sure you want to continue connecting (yes/no)?

这是因为Git使用SSH连接,而SSH连接在第一次验证GitHub服务器的Key时,需要你确认GitHub的Key的指纹信息是否真的来自GitHub的服务器,输入yes回车即可。

Git会输出一个警告,告诉你已经把GitHub的Key添加到本机的一个信任列表里了:

Warning: Permanently added ‘github.com’ (RSA) to the list of known hosts.

这个警告只会出现一次,后面的操作就不会有任何警告了。

4.远程库克隆
首先,登陆GitHub,创建一个新的仓库,名字叫gitskills:
在这里插入图片描述
备注:如果不勾选Initialize this repository with a README,新建的就是一个空的远程库,执行clone命令得到的是空文件。

勾选Initialize this repository with a README,这样GitHub会自动为我们创建一个README.md文件。创建完毕后,可以看到README.md文件:
在这里插入图片描述
现在,远程库已经准备好了,下一步是用命令git clone克隆一个本地库:
$ git clone https://github.com/mworkfun/test-clone.git
在这里插入图片描述
注意把Git库的地址换成你自己的,然后进入test-clone目录看看,已经有README.md文件了:
在这里插入图片描述
等待完善:
在这里插入图片描述

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值