之前我们了解到 Git 是一个版本控制工具,GitHub 基于 git 完成了版本控制功能。因此,我们要想进行代码托管,或者进行团队协作,这都少不了一个工具,那就是:Git
本篇文章我们将在本地学习 Git 的安装及基础使用,让我们开始吧
上一篇:GitHub小白入门(二)仓库操作
原博客地址:GitHub-Tutorial
导读:我的操作系统是 Windows 10,Git 安装比较容易,按默认选项一直 next 即可。
首先,去官网 https://git-scm.com/downloads 下载你的操作系统对应的版本。
点击下载好的安装文件,就是下面这个窗口,然后点击 Next
默认安装在 C 盘的 Program Files 下,你可以选择更改安装路径,比如 D 盘,然后点击 Next:
默认安装的组件如下,不用管(如果想创建桌面快捷方式,可以选第一个),直接点击 Next:
在开始菜单创建一个 Git 命名的文件夹,默认即可,点击 Next:
选择 Git 使用的默认编辑器,有 vim 、notepad 等选项,可以选其他的,我选择了默认的 Vim,点击 Next:
下一步是修改系统的环境变量,三个选项依次为:
我们选推荐的第二项就好,点击 Next·:
选择 HTTPS 传输后台,默认即可,点击 Next:
配置行结束标志,选择默认即可,点击 Next:
配置 Git Bash 的终端模拟器,默认即可,点击 Next:
配置补充功能,还是默认即可,点击 Next:
下面这个配置实验选项,因为是新功能,它也说不一定稳定,我就先不选了,点击 Install:
开始安装啦:
安装成功,完成!
我们测试一下,在开始菜单找到这个图标,点击 Git Bash:
输入
git --version
返回版本号说明安装成功!
导读:安装好 Git,我们就要学习它的语法了。其实关于 Git 有很多图形化的软件可以操作,但是建议大家从命令行学起,因为这样才能理解每一步操作的意义,之后再用图形软件完全没问题。不要抵触,基本的命令也不多,用几次就记住啦
Git 自带一个 git config
的工具来帮助设置控制 Git 外观和行为的配置变量。每台计算机上只需要配置一次,程序升级时会保留配置信息。 你可以在任何时候再次通过运行命令来修改它们。
在 Windows 系统中,Git 会查找 $HOME目录下(一般情况下是C: \Users$USER)的.gitconfig
文件。
我们需要配置的内容一般是用户信息,即用户名和邮箱。(当然也可以配置默认文本编辑器了,当 Git 需要你输入信息时会调用它。 如果未配置,Git 会使用操作系统默认的文本编辑器)
配置之前,我们可以使用命令查看已有配置。
打开 GitBash,使用第一个命令查看所有配置,通过第二个命令查看所有配置以及它们所在的文件:
git config --list
git config --list --show-origin
这里我演示一下第一个命令,可以看到没有显示用户名(user.name)和邮箱(user.email)
接着开始配置用户名,使用如下命令即可:
git config --global user.name "用户名"
git config --global user.email 邮箱地址
在你的 C:\Users\用户名 目录下,你会找到一个 .gitconfig 文件
再运行检查配置的命令,可以看到最底下显示用户信息:
你也可以使用下面命令单独查看用户配置:
git config user.name
git config user.email
再次强调,如果使用了–global选项,那么该命令只需要运行一次,因为之后无论你在该系统上做任何事情, Git 都会使用那些信息。 当你想针对特定项目使用不同的用户名称与邮件地址时,可以在那个项目目录下运行没有 --global 选项的命令来配置。
配置好后,下面开始学习 git 命令。
所有的操作命令都是以 git 开头的,可以看到上面列举了一些常用的命令,比如 clone,init,add 等。
为了学习这些命令,我们首先要新建一个文件夹,我选择在 E 盘下建立一个叫 Git Demo 的文件夹。
注意:在进行任何 Git 操作之前,都要先切换到 Git 仓库目录,也就是先要先切换到项目的文件夹目录下。
并在文件夹夹里创建一个文件如 test.txt。
然后我们进入这个文件夹,把它当作我们的 Git 仓库,鼠标右击选择 Git Bash Here:
打开的 GitBash 可以看到自动定位到我们的仓库位置,如果在其他位置打开,还得再次定位,这就是我们在仓库/文件夹打开的原因。
下面我们开始 Git 操作的速成学习,一共涉及九个操作——
首先输入 git status 命令,查看仓库状态。可以看到提示,当前目录还不是一个 Git 仓库,它还只是个普通的文件夹。
以后我们可以经常使用 git status 命令查看仓库状态
既然它还不是 Git 仓库,我们就用 git init 初始化,可以看到初始化完成,它是一个空的 Git 仓库。
我们再用 git status 命令检查一下仓库,发现 Git Demo 目录已经成为一个 Git 仓库了,并且默认进入 Git 仓库的 master分支,即主分支。
返回的三条语句:
接下来我们往仓库里添加文件,根据提示,输入 git add test.txt,再输入 git status 看看仓库状态:
虽然仓库没有提交历史,但提示以下文件 Changes to be committed ,意思就是 test.txt 文件等待被提交。
可以看到刚刚 git “不承认” 我们的文件,现在通过 git add 命令”承认“了,并且把它加到一个可提交的列表(临时缓冲区)。
当然你可以使用 git rm --cached 这个命令去移除这个缓存。
刚刚我们把文件送到缓冲区,接下来用 git commit 命令将缓存区里的改动给提交到本地的版本库。
每次使用 git commit 命令我们都会在本地版本库生成一个 40 位的哈希值,这个哈希值也叫 commit-id(这个版本的编号),commit-id 在版本回退的时候是非常有用的,它相当于一个索引,可以在未来的任何时候通过与 git reset 的组合命令回到这里。
git commit 不是单独使用的,一般需要参数指定提交方式,我们可以输入 git commit --help 查看使用帮助(会跳转到相关网页)。
输入 git commit -m ”first commit“,我们成功将文件 text.txt
提交到了 Git 仓库。其中, -m 代表提交信息, first commit 是本次提交的信息,需要写在双引号内,提交信息你也可以写成 my commit,text commit 等任意句子。
我们再看看仓库状态,结果显示 nothing to commit, working tree clean,这表示已经没有内容可以提交了,即全部内容已经提交完毕。
为什么不把文件直接提交到仓库呢❓因为我们可能提交一个错误的文件,先 add 再 commit 能有效防止错误提交。就像坐火车需要到候车室(缓冲区)等待一样,直接走到火车群里可能上错车。当然也有办法把这两步合并成一步,不过后面再介绍,建议新手先按部就班的一步步来。
补充git commit常见的用法有下面三个:
git commit -m “message”,-m 参数表示可以直接输入后面的 “message” ,如果不加 -m 参数,那么是不能直接输入 message的,而是会调用一个编辑器一般是 vim 来让你输入这个 message。
git commit -a -m “massage”,加的 -a 参数可以将所有已跟踪文件中的执行修改或删除操作的文件都提交到本地仓库,即使它们没有经过 git add 添加到缓存区,注意,新加的文件(即没有被 git 系统管理的文件)是不能被提交到本地仓库的。建议一般不要使用 -a 参数,正常的提交还是使用 git add 先将要改动的文件添加到暂存区,再用 git commit 提交到本地版本库。
git commit --amend,追加提交,它可以在不增加一个新的commit-id的情况下将新修改的代码追加到前一次的commit-id中
输入 git log 命令,打印 Git 仓库提交日志,会显示作者、时间和你写的提交信息:
branch 是分支的意思,多人合作时,你一个模块,别人一个模块,你们各建一个分支就能保证改动互不干扰,等最后做完,把你们的分支合并起来就好。
git init 会初始化一个主分支 master,也是我们现在的默认分支。
输入 git branch,可以看到我们就在 master 这里:
在此基础上新建分支用 git branch a,其中 a 是我起的分支名字。然后再用 git branch 查看,可以看到 master 有了一个分支,这时候分支 a 跟分支 master 是一模一样的内容。
虽然建立分支,但可以看到 * 还在 master 上,说明我们还处于主分支。这时候,输入 git checkout a 命令,切换到分支 a 上,再次查看分支,* 在 a 前,说明我们处于分支 a ,可以修改分支 a 的内容了。
先新建再切换很麻烦,有一步到位的方法 git checkout -b a,意思是建立分支后自动切换到该分支。
你在 a 分支完成了你的部分,但是主分支还是原来那样,这个时候就需要把你的代码合并到主分支 master上来,git merge 就是合并分支用到的命令。
注意,合并分两步 ❗❗❗
删除分支:有添加就有删除,假如分支新建错了,或者 a 分支的代码已经顺利合并到 master 分支来了,那么 a 分支没用了,用 git branch -d 删除。删除分支 a 的语句为 git branch -d a,这里不再演示。
强制删除分支:上面说了 git branch -d 是删除分支的意思,有些时候可能会删除失败,比如如果 a 分支的代码还没有合并到master,你执行 git branch -d a 是删除不了的,它会智能的提示你a分支还有未合并的代码,但是如果你非要删除,那就执行 git branch -D a 就可以强制删除 a 分支。
这是今天学习的最后一个操作,tag 是标签的意思,写报告、写代码都有版本的迭代,比如 1.0,1.1 。git 可以给每个版本打上这样的标签,这样你忽然想看看第一版的报告是什么内容,就可以通过标签切换回去。
git tag v1 代表新建 v1 tag,你可以换成其他名字,git tag 代表查看标签。
如果想切换至某一标签,还是用刚刚学的 git checkout v1 即可,v1 是某版本标签名。
以上全是一些最基本的 git 操作,而且全是在本地环境进行操作的,完全没有涉及到远程仓库,最后总结一下基本 Git 操作:
下一篇:GitHub 小白入门(四)本地与远程仓库的交互
返回:GitHub 教程目录