Git基础

由于Git安装我早已完成就没有进行记录这个博客里面有记录如何下载

既然已经装好了Git我们主要就是学习它的语法了

1
2
git --version
//可以看到版本信息

Git自带一个 git config 的工具来帮助设置控制 Git 外观和行为的配置变量。每台计算机上只需要配置一次,程序升级时会保留配置信息。 你可以在任何时候再次通过运行命令来修改它们。

在Windows系统中,Git会查找HOME目录下(一般为C:\UsersUSER)的.gitconfig文件

需要配置的信息一般是用户信息(用户名和邮箱)

也可以配置默认文本编辑器,当Git需要你输入信息是会调用它。如果没有配置,Git会使用操作系统默认的文本编辑器。

第一步先查看配置

1
git config --list

我的使用用户名和邮箱的。

如果没有的话可以这么配置

1
2
git config --global user.name "用户名"
git config --global user.email 邮箱地址

再次运行git config –list

1
2
3
git config user.name
git config user.email
//也可以单独使用

如果使用了–global选项,那么该命令只需要运行一次。

那么该命令只需要运行一次,因为之后无论你在该系统上做任何事情,Git都会使用那些信息。

当你想针对特定项目使用不同的用户名称和邮件地址时,可以在那个项目下运行没有 –global选项的命令来配置

学会配置,学一些Git命令

输入git后可以看到一些命令,所有的操作命令都是以git开头的,如clone,init,add等

为了学习需要先新建一个文件夹

注意:在进行任何Git操作之前,都要先切换到Git仓库目录,也就是要先切换到项目的文件夹目录下

再键一个test.txt

然后我们进入这个文件夹,把它当作我们的 Git 仓库,鼠标右击选择 Git Bash Here

打开的 GitBash 可以看到自动定位到我们的仓库位置,如果在其他位置打开,还得再次定位,这就是我们在仓库/文件夹打开的原因。

基础操作

git status

可以通过git status命令查看仓库状态

当前还不是一个Git仓库

git init

既然它还不是 Git 仓库,我们就用 git init 初始化,可以看到初始化完成,它是一个空的 Git 仓库

再用git status命令检查仓库发现Git demo已经是一个Git仓库了,并默认进入master分支(主分支)

返回的三条语句:

  • 进入 Git 仓库的主分支
  • 目前还没有提交过文件(git 是版本控制工具,要记录提交历史的以及每一个版本)
  • 这时最主要的是提示 test.txt 文件是 Untracked files ,就是说 test.txt 这个文件还没有被跟踪,还没有提交在 git 仓库里呢,而且提示你可以使用 git add 去操作你想要提交的文件。

git add

往仓库里添加文件输入git add test.txt,再输入git status查看状态

可以看到刚刚的git“不承认”文件,现在通过git add命令承认了,并且把它加到一个可提交的列表(临时缓冲区)

可以用git rm –cached命令去删除这个缓存

git commit

刚刚我们把文件送到缓冲区,接下来用 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,这表示已经没有内容可以提交了,即全部内容已经提交完毕。

补充:

  • git commit -m “message”,-m参数表示可以直接输入后面的”message”,如果不加-m参数(就不能直接输入message,会调用一个编辑器(一般是vim)让你输入message)
  • git commit -a -m “message”加-a参数可以将所有已跟踪文件执行修改或删除操作都提交到本地仓库(即使没添加到缓冲区)
  • 注意:新添加的文件没有被git系统管理的文件不能被提交到本地仓库的。(一般建议不要使用-a参数)
  • git commit –amend,追加提交,在不增加新的commit -id情况下将新修改的代码追加到前一次的commit -id中

git log

打印Git仓库提交日志,会显示作者时间和提交的信息

这里放个原作者的图,有箭头直观

git branch

branch:分支。当多人合作时,你一个模块别人一个模块,各自建一个分支就能保证改动互不干扰,等到最后完成,将分支合到一起即可。

git init会初始化一个主分支master(也就是默认分支)

在此基础上新建git branch name,name就是分支名

git checkout

虽然建立分支,但可以看到 * 还在 master 上,说明我们还处于主分支。这时候,输入 git checkout a 命令,切换到分支 a 上,再次查看分支,* 在 a 前,说明我们处于分支 a ,可以修改分支 a 的内容了。

这样比较慢,可以一步到位git checkout -b a ,建立分支后自动切换到该分支

git merge

当你在a分支完成了你的部分,但是主分支还是原来那样,这时候就需要把你的代码合并到主分支master上

注意,合并分两步 ❗❗❗

  1. 切换到 master 分支,如果你已经在了就不用切换了;
  2. 执行 git merge a ,意思就是把 a 分支的代码合并过来,不出意外,
    这个时候 a 分支的代码就顺利合并到 master 分支来了。

删除分支:有添加就有删除,假如分支新建错了,或者 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 分支

git tag

tag是标签的意思,写报告,写代码都有版本迭代,git可以给每个版本打上标签,这样你忽然想看第一版的报告是什么就可以通过标签切回去

如果想切换至某一标签,还是用刚刚学的 git checkout v1 即可,v1 是某版本标签名