Git和GitHub的使用
Posted 大彤小忆
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Git和GitHub的使用相关的知识,希望对你有一定的参考价值。
1. Git和GitHub简介
Git是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理。Git 是Linus Torvalds为了帮助管理Linux内核开发而开发的一个开放源码的版本控制软件。
GitHub是世界上最大的软件远程仓库,是一个面向开源和私有软件项目的托管平台,使用Git做分布式版本控制。
2. Git和SVN的区别
SVN(Subversion)属于集中式的版本控制系统。集中式的版本控制系统都有一个单一的集中管理的服务器,保存所有文件的修订版本,而协同工作的人们都通过客户端连到这台服务器,取出最新的文件或者提交更新。
优点:每个人都可以一定程度上看到项目中的其他人正在做些什么。而管理员也可以轻松掌控每个开发者的权限。
缺点:中央服务器的单点故障、容错性差。
Git属于分布式的版本控制系统。分布式相比于集中式的最大区别在于开发者可以提交到本地,每个开发者通过克隆,在本地机器上拷贝一个完整的Git仓库。
3. GitHub的基本概念和用途
3.1 GitHub的基本概念
仓库(Repository):用来存放项目代码,每个项目对应一个仓库,多个开源项目则有多个仓库。
收藏(Star):用来收藏项目,方便下次查看。
复制克隆项目(Fork)
发起请求(Pull Request)
关注(Watch):关注项目,当项目更新可以接收到通知。
事务卡片(Issue)
GitHub主页: 左侧主要显示用户动态及关注的用户或仓库的动态;右侧显示所有的git库。
仓库主页: 主要显示项目的信息。
个人主页: 显示个人信息。
3.2 GitHub的用途
GitHub大概有三种用途:
- 合作开发
如果有多个人一起开发某项目,把仓库设在GitHub,大家在各自笔记本写代码、修改使用git上传、同步,避免了复制粘贴代码,而且还能实现版本控制,谁修改了什么内容一清二楚,连谁写了多少行改了多少行代码都能统计清楚。摸鱼是不可能的。 - 软件仓库
GitHub提供两种仓库私有仓库和公开仓库。GitHub免费为所有用户提供公开仓库空间,公开仓库向网络公开,所有人都能访问,但只有所有者和授权用户才能修改。私有仓库不对外公开,但要向GitHub付费。 - 代码公开
我们可以在这里找到全世界程序员的劳动成果,上到各种算法实现、下到各种app源码。只要遵循开源协议,都可以copy下来用。
4. Git的工作流程
- 从远程仓库中克隆Git资源作为本地仓库;
- 从本地仓库中checkout代码然后进行代码修改;
- 在提交前先将代码提交到暂存区;
- 提交修改到本地仓库,本地仓库中保存修改的各个历史版本;
- 在修改完成后,需要和团队成员共享代码时,可以将代码push到远程仓库。
5. Git的安装和Github的注册
5.1 Git的安装
Git的使用需要安装Git和TortoiseGit两个软件。
Git 2.31.1安装步骤→Git 2.31.1的安装。
TortoiseGit-2.8.0.0安装步骤→TortoiseGit-2.8.0.0的安装。
5.2 GitHub的注册
进入GitHub网页,点击右上角的Sign up
,根据步骤完成账号的注册。
6. Git和GitHub的使用
6.1 创建本地仓库
- step1:新建一个本地仓库文件夹
Repository
,在本地仓库文件夹下再新建一个空的文件夹test
;
- step2:双击进入
test
文件夹,鼠标右击,点击Git GUI Here
(或者点击下面的Git Bash Here
);
- step3:如果第2步点击
Git GUI Here
的话,点击Create New Repository
;
如果第2步点击Git Bash Here
的话,在命令框输入git init
,直接跳转到第6步;
- step4:点击
Browse
,找到我们新建的空文件夹test
,点击Create
;
- step5:出现如下界面,关闭即可;
- step6:点击文件资源管理器左上角的
文件
按钮,点击更改文件和搜索选项
,然后点击查看
,找到隐藏文件和文件夹
,点击显示隐藏的文件、文件夹和驱动器
,最后点击确定
;
- step7:可以在
test
文件夹下看到.git
的文件夹,本地仓库创建完毕。
6.2 向本地仓库中添加文件
- step1:在本地仓库的
.git
文件夹的同一路径下,添加文件;
- step2:选中添加的文件,鼠标右击,点击
TortoiseGit
下的Add...
;
- step3:出现
Finished!Success
后,添加完成,点击OK
;
- step4:在
test
文件夹下可以看到刚才新建的文件图标上多了一个蓝色的加号
,说明我们将此文件添加到暂存区;
- step5:选中带有蓝色加号的文件,鼠标右击,点击
Git Commit -> "master"...
;
- step6:在
Message
栏填写信息,点击Commit
;
- step7:出现
Success
,点击Close
;
- step8:在
test
文件夹下可以看到新建的文件图标上蓝色加号变为绿色的对号
,说明我们已将此文件提交到本地仓库;
6.3 修改本地仓库中的文件内容并提交
- step1:将本地仓库中的
hello.txt
文件内容进行修改,会发现文件图标上的绿色对号变为红色的叹号
;
- step2:选中带有红色叹号的文件,鼠标右击,点击
Git Commit -> "master"...
;
- step3:在
Message
栏填写信息,点击Commit
;
- step4:出现
Success
,点击Close
;
- step5:在本地仓库中可以看到
hello.txt
文件图标上的红色叹号变为绿色的对号
,双击打开文件看到内容已修改成功,说明我们已将此文件内容成功修改并提交到本地仓库;
- step6:选中带有绿色对号的文件,鼠标右击,点击
TortoiseGit
下的Show log
;
- step7:可以看到
hello.txt
文件目前共有两个版本;
- step8:如果想看
hello.txt
文件的两个版本有什么变化,选中两个记录,鼠标右击,点击Compare revisions
;
- step9:可以看到两个版本之间的差异。
6.4 删除本地仓库中的文件
- step1:按
Delete
键将本地仓库中的文件删除,在test
文件夹下看不到hello.txt
文件,鼠标右击,点击TortoiseGit
下的Repo-browser
;
- step2:在版本库浏览器中可以看到
hello.txt
文件依旧存在,说明仓库中的文件并没有真正被删除,我们可以将文件还原回来;
- step3:在
test
文件夹下,鼠标右击,点击TortoiseGit
下的Revert...
;
- step4:选中要恢复的文件,点击
OK
,出现Finish!Success
,点击OK
;
- step5:在
test
文件夹下,可以看到hello.txt
文件又出现了;
- step6:想要彻底删除
hello.txt
文件,按Delete
键删除本地仓库中的文件后,鼠标右击,点击Git Commit -> "master"...
;
- step7:在
Message
栏填写信息,点击Commit
,出现Success
,点击Close
;
- step8:再次查看版本库浏览器(鼠标右击,点击
TortoiseGit
下的Repo-browser
),可以看到hello.txt
文件不存在了,说明仓库中的文件被真正删除;
- step9:还有一种
删除并保留本地副本
的删除方式,再次新建一个hello.txt
文件并添加到本地仓库,鼠标右击,点击TortoiseGit
下的Delete(keep local)
;
- step10:点击
Remove
,然后点击确定
;
- step11:发现
hello.txt
文件图标上绿色对号变为红色的叉号
,鼠标右击,点击Git Commit -> "master"...
;
- step12:在
Message
栏填写信息,点击Commit
,出现Success
后,点击Close
;
- step13:回到
test
文件夹下,发现hello.txt
文件图标上的红色叉号不见了,查看版本库浏览器(鼠标右击,点击TortoiseGit
下的Repo-browser
),可以看到hello.txt
文件不存在了,说明仓库中的文件被真正删除,但本地副本还存在。
6.5 将工程添加到本地仓库
- step1:将之前实现的机房预约系统工程复制到本地仓库的
.git
文件夹的同一路径下;
- step2:选中此文件夹,鼠标右击,点击
TortoiseGit
下的Add...
,然后点击OK
,出现Finished! Success
后,点击OK
,可以看到文件夹的图标上出现了红色的叹号
,表示已将文件夹放到暂存区;
- step3:将工程文件添加到本地仓库前,可以对工程文件夹中的某些文件进行忽略操作,不将它们提交到本地仓库中。双击打开机房预约系统文件夹,选中要忽略的文件,鼠标右击,点击
TortoiseGit
下的Delete and add to ignore list
下的admin.txt
;
- step4:选择
Ignore item(s) recursively
和.gitignore in the containing directories of the items
,点击OK
,然后点击是
,再点击确定
;
- step5:可以看到
admin.txt
文件图标下面的蓝色加号没有了,并多了一个.gitignore
文件;.gitignore
文件需要添加到暂存区(选中此文件,鼠标右击,点击TortoiseGit
下的Add...
,出现Finished!Success
后,然后点击OK
);
- step6:将
test
路径中的机房预约系统文件夹提交到本地仓库(选中此文件夹,鼠标右击,点击Git Commit -> "master"...
,在Message
栏填写信息,点击Commit
,出现Success
后,点击Close
),发现机房预约系统文件夹图标下的红色叹号变为绿色的对号
,查看版本库浏览器(鼠标右击,点击TortoiseGit
下的Repo-browser
),出现了机房预约系统文件夹,说明我们已将此工程提交到本地仓库。
6.6 创建远程仓库
- step1:账号注册完成后,进行登录,进入Github网页的个人主页,点击左上方的加号
+
下的New repository
按钮新建仓库;
- step2:在跳转到的新页面中输入项目名称
Repository name
(必填)及描述Description
(可选),点击下方的Create repository
按钮确认创建,即可创建一个新的远程仓库;
- step3:创建好远程仓库后,会出现如下界面。
6.7 将本地仓库推送到远程仓库
6.7.1 使用SSH方式
- step1:创建好远程仓库
test
后,在如下界面点击SSH
;
- step2:在本地仓库的
test
文件夹下,鼠标右击,点击Git Bash Here
,在命令行输入ssh-keygen -t rsa
,然后一直回车,会生成密钥对;
- step3:在
C:\\Users\\Administrator\\.ssh
路径下,可以看到两个文件,其中id_rsa
是私钥,id_rsa.pub
是公钥;
- step4:使用
EditPlus
文字编辑器打开id_rsa.pub
文件,复制里面所有内容;
- step5:切换到刚开创建好远程仓库后得到的Github页面上,点击自己头像下面的
Settings
;
- step6:点击
SSH and GPG keys
,然后点击New SSH key
,在下一个界面中,在Title
栏输入title
,在Key
栏粘贴刚才复制的公钥,点击Add SSH key
;
- step7:出现如下界面,说明我们已将公钥配置好;
- step8:回到本地仓库的
test
文件夹下,鼠标右击,点击Git Bash Here
,在命令行输入git remote add origin
+从新建好的远程仓库页面复制的SSH路径,然后一直回车,使本地仓库与远程仓库建立联系;再输入git push -u origin master
,然后回车,输入yes
,回车,将本地仓库推送到远程;
- step9:刷新Github页面,可以看到本地仓库中的机房预约系统已经推送到远程仓库
test
中;
- step10:除了使用命令行外,还可以使用图形用户界面进行推送。在本地仓库的
test
文件夹下,鼠标右击,点击Git Sync...
,然后点击Manage
,双击origin
,发现远程仓库test
的Remote
和URL
已存在,点击Remove
进行删除,然后依次点击是
、确定
、Close
,将我们之前用命令行建立的与远程的连接删除;
- step11:在Github页面重新新建一个远程仓库
test2
,复制SSH路径,在本地仓库的test
文件夹下,鼠标右击,点击Git Sync...
,然后点击Manage
,在左侧菜单栏选择Git
下的Remote
,依次填写Remote
(填写origin)和URL
(填写SSH路径)栏的内容;在填写Putty Key
之前,先要确保左侧菜单栏Network
中的SSH client
为C:\\Program Files\\Git\\usr\\bin\\ssh.exe
,然后在Git
下的Remote
中填写Putty Key
,点其后面的三个点...
,选择C:\\Users\\Administrator\\.ssh\\id_rsa
(选择id_rsa
文件时,需要将文件类型设为All Files(*.*)
),点击Add New/Save
,会在Remote
栏内出现origin
,然后点击确定
,本地仓库就和远程仓库建立联系;
- step12:建立联系后,在如下界面点击
Push
,然后点击是
,出现Success
后,点击Close
,就把我们的本地仓库成功推送到远程仓库;
- step13:刷新Github页面,可以看到本地仓库中的机房预约系统已经推送到远程仓库
test2
中。
6.7.2 使用HTTPS方式
- step1:在Github网页新建一个远程仓库
test3
,在如下界面,点击HTTPS
,复制后面框中的内容;
- step2:在本地仓库的
test
文件夹下,鼠标右击,点击Git Sync...
,然后点击Manage
,在左侧菜单栏选择Git
下的Remote
,依次填写Remote
(填写origin1)和URL
(填写复制的HTTPS路径)栏的内容,点击Add New/Save
,再点击是
,会在Remote
栏内出现origin1
,然后点击确定
,本地仓库就和远程仓库建立联系;
- step3:建立联系后,在如下界面的
Remote URL
栏选择origin1
,然后点击Push
,出现Success
后,点击Close
,就把我们的本地仓库成功推送到远程仓库;
- step4:刷新Github页面,可以看到本地仓库中的机房预约系统已经推送到远程仓库
test3
中。
6.8 克隆远程仓库到本地
- step1:新建一个文件夹
Clone-test
作为克隆远程仓库到本地的存放路径;
6.8.1 使用SSH方式
- step1:在Github页面打开要克隆的远程仓库
test
,点击右上角的Code
下的SSH
,复制路径;
- step2:在
Clone-test
文件夹中,鼠标右击,点击Git Bash Here
,在命令行输入git clone
+复制的SSH路径,然后回车,可以在Clone-test
文件夹下看到远程仓库test
文件夹的出现,说明已克隆成功。
6.8.2 使用HTTPS方式
- step1:除了使用命令行外,还可以使用图像用户界面进行克隆。在Github页面重新打开一个要克隆的远程仓库
test2
,点击右上角的Code
下的HTTPS
,复制路径;
- step2:在
Clone-test
文件夹中,鼠标右击,点击Git Clone...
,在跳出的界面的URL
栏中粘贴刚复制的远程仓库test2
的HTTPS
路径,点击OK
,出现Success
后,点击Close
;
- step3:可以在
Clone-test
文件夹下看到远程仓库test2
文件夹的出现,说明已克隆成功。
以上是关于Git和GitHub的使用的主要内容,如果未能解决你的问题,请参考以下文章