目录
- Git基本介绍
- GitHub基本介绍
- Git基本操作
- 总结
- 参考文献
Git基本介绍
Git是一个开源的分布式版本控制系统,可以有效地进行项目版本的管理。简单来说Git类似于代码文件的日志,记录文件内容的变化。
早期的集中式版本控制系统,都有一个单一的集中管理的服务器,保存所有文件的修订版本,而协同工作的人们都通过客户端连到这台服务器,取出最新的文件或者提交更新。
在分布式版本控制系统里,客户端并不只提取最新版本的文件快照,而是把代码仓库完整地镜像下来。
这么一来,任何一处协同工作用的服务器发生故障,事后都可以用任何一个镜像出来的本地仓库恢复。因为每一次的提取操作,实际上都是一次对代码仓库的完整备份。
Git的工作流如下图
远程服务器端(Remote)存储项目所有文件,可将文件全部拷贝至本地仓库(Repository),本地工作区(workspace)从仓库获取文件进行文件编辑。在本地工作区添加的文件内容(index)提交至仓库,最终在提交到远程服务器。为了避免两个程序员同时修改同一个文件导致冲突,本地工作区可以直接获得远程服务器代码(即pull的过程)。
GitHub基本介绍
GitHub是在线的基于Git的代码托管服务,可以存放、管理和分享自己的代码。
下图为GitHub主界面
Git基本操作
一.GitHub创建仓库
在new repository里创建仓库,创建的仓库会生成一个地址。
二.Git具体操作
1.首先下载Git
2.Git操作
Git的基本操作有:clone(克隆)、add(添加)、commit(提交)、push(推送)、pull(拉取)、checkout(检出)
(1)右键并打开Git命令行
(2) 配置用户名和邮箱
注意:(引号内请输入自己设置的名字,和你自己的邮箱)此用户名和邮箱是git提交代码时用来显示身份和联系方式的,并不是github用户名和邮箱。
(3)使用git clone克隆远程仓库
将GitHub上的代码仓库克隆
桌面上显示克隆好的仓库
(4)使用git add 添加索引
这里使用vscode写一个index.js文件
该文件(index.js)处于未跟踪状态(untracked)。未跟踪状态的文件是无法提交的
使用git add index.js,使其变成已跟踪状态(tracked)。
这里涉及到Git文件的状态可能不清楚,可以阅读文章git commit -m与-am的区别,其中有详细解释。
注意:路径要在仓库,如果在桌面会显示找不到仓库
进入仓库的路径
添加文件索引
(5)使用git commit提交文件
输入命令git commit -m 'add index.js',将文件提交至暂存区(暂存区可以理解为本地仓库)
(6)使用git push推送文件至远程仓库
输入命令git push将文件推送至远程仓库(GitHub),执行命令后会弹出GitHub登录窗口,输入用户名和密码登录即可。
在GitHub中查看仓库
(7)使用git pull更新仓库数据
由于一个项目常常由多个人同时进行修改操作,所以要更新本地仓库的数据,即将远程仓库最新的更新数据拉取到本地工作区。
举个例子
首先,在GitHub中直接修改index.js文件(原本的index.js文件是空的),记得提交
然后在命令行窗口输入git pull
接着查看工作区,已经显示更新
这里说明一下clone和pull的区别
clone 是本地没有 repository 时,将远程 repository 整个下载过来。
pull 是本地有 repository 时,将远程 repository 里新的 commit 数据(如有的话)下载过来,并且与本地代码merge。
(8)使用git checkout检出文件
git checkout命令主要有两个功能:切换分支和恢复文件
- 切换分支
使用git branch查看当前分支
目前有两个分支,当前分支为master
使用git checkout切换分支
- 恢复文件
将index.js文件删除
使用git checkout恢复文件
(9)在vscode中对文件进行git操作
在vscode中进入源代码管理
字母表示文件状态,当前index.html文件的文件状态显示“U”,表示未跟踪(Untracked)
点击“+”,表示添加索引(相当于git add操作)
文件状态变为已跟踪
点击“√”提交文件(相当于git commit操作)
总结
这篇文章介绍了Git、GitHub以及Git的操作
- Git
Git是一个开源的分布式版本控制系统,可以有效地进行项目版本的管理。 - GitHub
GitHub是在线的基于Git的代码托管服务,可以存放、管理和分享自己的代码。 - Git基本操作
Git的基本操作有:clone(克隆)、add(添加)、commit(提交)、push(推送)、pull(拉取)、checkout(检出)。可以在Git命令窗口或代码编辑器(vscode)里进行上述操作。
参考文献
Git、GitHub和GitLab的区别
git commit -m与-am的区别
Git分支管理