- 1. Git 安装
- 2. Git 基础
- 初次运行 Git 前的配置
- 2.1 git status
- 2.2 git init
- 2.3 git add
- 2.4 git commit
- 2.5 git log
- 2.6 git branch
- 2.7 git checkout
- 2.8 git merge
- 2.9 git tag
- 3. 总结
导读:我的操作系统是 Windows 10,Git 安装比较容易,按默认选项一直 next 即可。
首先,去官网 https://git-scm.com/downloads 下载你的操作系统对应的版本。
默认安装在 C 盘的 Program Files 下,你可以选择更改安装路径,比如 D 盘
输入
git --version
返回版本号说明安装成功!
2. Git 基础安装好 Git,我们就要学习它的语法了。其实关于 Git 有很多图形化的软件可以操作,但是建议大家从命令行学起,因为这样才能理解每一步操作的意义,之后再用图形软件完全没问题。不要抵触,基本的命令也不多,用几次就记住啦
初次运行 Git 前的配置在电脑上初次安装 git 是需要配置的
Git 自带一个git config的工具来帮助设置控制 Git 外观和行为的配置变量。每台计算机上只需要配置一次,程序升级时会保留配置信息。 你可以在任何时候再次通过运行命令来修改它们。
在 Windows 系统中,Git 会查找$HOME目录下(一般情况下是C:Users$USER)的.gitconfig文件。
我们需要配置的内容一般是用户信息,即用户名和邮箱。
配置之前,我们可以使用命令查看已有配置。
打开 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 命令。
打开 GitBash,我们先输入 git 进行测试:
所有的操作命令都是以 git 开头的,可以看到上面列举了一些常用的命令 ,比如 clone,init,add 等。
为了学习这些命令,首先要新建一个文件夹,在 E 盘下建立一个 Git Demo 的文件夹。
注意:在进行任何 Git 操作之前,都要先切换到 Git 仓库目录,也就是先要先切换到项目的文件夹目录下。
并在文件夹夹里创建一个文件如 demo.txt
把这个文件夹当作我们的 Git 仓库,鼠标右击选择 Git Bash Here:
打开的 GitBash 可以看到自动定位到我们的仓库位置,如果在其他位置打开,还得再次定位,这就是我们在仓库/文件夹打开的原因。
首先输入 git status 命令,查看仓库状态。可以看到提示,当前目录还不是一个 Git 仓库,它还只是个普通的文件夹。
以后我们可以经常使用 git status 命令查看仓库状态
2.2 git init既然它还不是 Git 仓库,我们就用 git init 初始化,可以看到初始化完成,它是一个空的 Git 仓库。
我们再用 git status 命令检查一下仓库,发现 Git Demo 目录已经成为一个 Git 仓库了,并且默认进入 Git 仓库的 master分支,即主分支。
返回的三条语句:
- 进入 Git 仓库的主分支
- 目前还没有提交过文件(git 是版本控制工具,要记录提交历史的以及每一个版本)
- 这时最主要的是提示 demo.txt 文件是 Untracked files ,就是说 demo.txt 这个文件还没有被跟踪,还没有提交在 git 仓库里呢,而且提示你可以使用 git add 去操作你想要提交的文件。
接下来我们往仓库里添加文件,根据提示,输入 git add demo.txt,再输入 git status 看看仓库状态:
虽然仓库没有提交历史,但提示以下文件 Changes to be committed ,意思就是 demo.txt 文件等待被提交。
可以看到刚刚 git “不承认” 我们的文件,现在通过 git add 命令”承认“了,并且把它加到一个可提交的列表(临时缓冲区)。
也可以使用 git add .添加文件夹里的所有文件 (有个点)
当然你可以使用 git rm --cached 这个命令去移除这个缓存。
2.4 git commit刚刚我们把文件送到缓冲区,接下来用 git commit 命令将缓存区里的改动给提交到本地的版本库。
每次使用 git commit 命令我们都会在本地版本库生成一个 40 位的哈希值,这个哈希值也叫 commit-id(这个版本的编号),commit-id 在版本回退的时候是非常有用的,它相当于一个索引,可以在未来的任何时候通过与 git reset 的组合命令回到这里。
git commit 不是单独使用的,一般需要参数指定提交方式,我们可以输入 git commit --help 查看使用帮助(会跳转到相关网页)。
输入 git commit -m ”first commit“,我们成功将文件 demo.txt 提交到了 Git 仓库。其中, -m 代表提交信息, first 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 仓库提交日志,会显示作者、时间和你写的提交信息:
2.6 git branchbranch 是分支的意思,多人合作时,你一个模块,别人一个模块,你们各建一个分支就能保证改动互不干扰,等最后做完,把你们的分支合并起来就好。
git init 会初始化一个主分支 master,也是我们现在的默认分支。
输入 git branch,可以看到我们就在 master 这里:
在此基础上新建分支用 git branch a,其中 a 是我起的分支名字。然后再用 git branch 查看,可以看到 master 有了一个分支,这时候分支 a 跟分支 master 是一模一样的内容。
虽然建立分支,但可以看到 * 还在 master 前面,说明我们还处于主分支。这时候,输入 git checkout a 命令,切换到分支 a 上,再次查看分支,* 在 a 前,说明我们处于分支 a ,可以修改分支 a 的内容了。
2.8 git merge先新建再切换很麻烦,有一步到位的方法 git checkout -b a,意思是建立分支后自动切换到该分支。
你在 a 分支完成了你的部分,但是主分支还是原来那样,这个时候就需要把你的代码合并到主分支 master上来,git merge 就是合并分支用到的命令。
合并分两步
- 切换到 master 分支,如果你已经在了就不用切换了;
- 执行 git merge a ,意思就是把 a 分支的代码合并过来,不出意外,
这个时候 a 分支的代码就顺利合并到 master 分支来了。
我这里a 分支没有内容
2.9 git tag删除分支:有添加就有删除,假如分支新建错了,或者 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 是某版本标签名。
3. 总结以上全是一些最基本的 git 操作,而且全是在本地环境进行操作的,完全没有涉及到远程仓库,最后总结一下基本 Git 操作:
git status :查看仓库状态
git init:创建一个空仓库,或者重新初始化一个已有仓库
git add:把文件添加到可提交列表(临时缓冲区)
git commit:提交改动(增删改)至仓库
git log:打印提交日志
git branch:查看、添加、删除分支
git checkout:切换分支、标签
git merge:合并分支
git tag:新建、查看标签



