下载安装
1.官方下载网址:;
2.安装十分简单,按照默认配置,一直点击next,最后点击install,即安装成功;
3.安装成功之后,则自动配置好系统路径,打开命令提示符,输入git,得到如下图所示的结果,则安装成功。
配置用户名和邮箱
1.如果装好了git,打开开始菜单,搜索git,即会出现git bsah,点击打开命令窗口;
2.给本机器的所有git仓库全局配置一个用户名和邮箱,--global即代表全局,当然也可以给某个git仓库单独指定特定的用户名和邮箱,若如下图所示则表示;
git config --global user.name "Your Name" --全局配置用户名git config --global user.email "email@example.com" --全局配置邮箱
3.通过如下命令,可以查看当前的用户名和邮箱,如果能查询到,即说明配置成功。
git config user.name --查看当前用户名git config user.email --查看当前邮箱
正式开始使用git
初始化git仓库
1.首先我们创建一个文件夹作为试验品,在该目录下创建一个readme.md文件,文件内容如下所示
this is my first git Project
2.在该目录下,右键打开git bash命令窗口,使用pwd命令可以查看当前路径
pwd --查看当前路径
3.使用如下命令,将该文件夹变为git可以管理的仓库
git init --初始化git仓库
4.此时查看该文件夹,在目录下发现多了一个.git文件夹,如果没有,可能是被隐藏起来了,这个文件夹即是Git来跟踪管理版本库的;
提交文件至git仓库
1.使用如下命令,将文件提交至git暂存区
git add readme.md --提交至暂存区
2.使用如下命令,将暂存区的文件提交至分支,可以省去readme.md这个文件名,-m后面指的是注释
git commit readme.md -m "write a file" --从暂存区提交至仓库
3.到此已经将文件提交至本地的git仓库
4.此时修改readme.md文件,将内容修改为如下所示;
this is my second git Projectchange the file currently
5.使用如下命令查看当下仓库的状态,从下图可知,git告诉我们readme.md文件被修改,但还没有被提交至仓库
git status --查看仓库状态
6.使用如下命令查看文件修改内容,
git diff readme.md --查看readme.md文件修改的内容
7.使用git add命令之后,再次使用git status查看git仓库状态,提示告诉我们,将要被提交的修改包括readme.md
git add readme.mdgit status
8.执行git commit将文件提交至仓库,提交完成再次使用git status查看仓库状态,这时已经没有需要提交的修改了
git commit -m "the second commit"git status
版本回退
1.使用如下命令查看仓库的提交日志,信息很多很杂
git log
2.使用--pretty=oneline,可以查看两次commit的关键信息,主要有commitId和注释
git log --pretty=oneline
3.使用如下命令,可以回到第一个版本
git reset --hard HEAD~1 --1代表往前回退一个版本,如果要回退100个版本,则为~100 或者 git reset --hard HEAD^ --一个^表示往前回退一个版本,如果要往前回退两个版本,则为^^,依次类推
4.这时,再次使用git log命令,发现此时只有一次提交记录,说明版本回退成功,使用cat readme.md查看目前文件中的内容,发现已经回到了最初的内容,回退成功
git logcat readme.md --查看文件中的具体内容
5.此时如果后悔了,想恢复之前修改,就可以通过如下方式找回
git reflog --查看之前所有命令操作 git reset --hard e30281f --e30281f即为第二次的commitId
6.此时再次查看readme.md内容,发现已经回到了第二次修改时的状态
git logcat readme.md
远程仓库
1.本地仓库搭建完成之后,我们就需要有一个远程仓库来帮我们管理代码,这样就能与他人共享代码,实现团队协作。通过github我们就能实现这样的功能,但是免费的github是对所有人公开的。下面我们就开始使用github.
1.由于本地的git仓库与github仓库之间的传输需要SSH加密,因此我们首先需要创建SSH Key,打开开始中的git bash,输入如下命令,一路回车即可
ssh-keygen -t rsa -C "676541069@qq.com" --生成ssh key,引号中的为你的邮箱
2.进入到'/c/Users/Administrator下,就会出现.ssh文件夹,里面存放着ssh key的公钥和私钥,如果原来就存在这个文件夹,可以跳过上一个步骤。
3.登录github官方网站:,注册账号,并登录。
4.点击setting中添加SSH key,将上方的id_rsa.pub(公钥)中的内容,添加进去,点击Add SSH Key,即可。
5.添加成功之后,如下所示,这样GitHub就能识别出推送的提交确实是你推送的。
6.下面我们就开始新建一个远程库, 点击右上角的“+”号,然后点击New repository
6.输入一个仓库名称,如下所示
7.如下即为github远程仓库地址,分为SSH地址和HTTP地址,两者都可,具体区别请请查找相关资料,此时的远程仓库为一个空仓库。
8.下面我们回到本地仓库所在的文件夹,打开git bash,使用如下命令将本地仓库与远程仓库进行关联,origin后面即为上图中的github远程仓库地址,使用git remote,查看远程仓库信息,能查询到说明关联成功。
git remote add origin git@github.com:shenyanfei/test-git.git --将本地仓库与远程仓库进行关联 git remote --查看远程仓库信息 git remote -v --查看远程仓库信息
9.使用如下命令,将本地代码推送至远程仓库,由于远程仓库为一个空仓库,所以第一次推送需要加上 -u,后面要推送时不需要加上-u,master代表分支,在建立git仓库时,git默认为我们创建git分支,若后期创建了新分支,可修改master
git push -u origin master --从本地推送代码至远程
10.当你第一次使用Git的clone
或者push
命令连接GitHub时,会得到一个警告,这是因为Git使用SSH连接,而SSH连接在第一次验证GitHub服务器的Key时,需要你确认GitHub的Key的指纹信息是否真的来自GitHub的服务器,输入yes
回车即可。
11.此时再次查看我们刚刚创建的github远程仓库,就会发现它已经不是一个空的仓库,里面多了readme.md文件,这即为我们本地仓库中创建的文件,打开查看文件里面的内容,与本地一致,说明,代码推送成功。
12.下面我们重新创建一个非空的github远程仓库。勾选上下图中的选项,这样这个github远程仓库就不为空,存在一个README.md文档。
13.打开默认存在README.md文件,里面的内容为我们创建的仓库名称
14.创建分支,搜索分支,如果不存在则会弹出创建的提示,点击即可创建。
15.点击下图中的clone or download即可出现远程仓库地址。
16.使用如下命令,将远程仓库中的内容克隆至本地仓库,准备一个空的文件夹,右键打开git bash,克隆完成之后,发现该文件夹下出现了test-git-pro文件夹,这就是我们克隆下来为项目。
git clone git@github.com:shenyanfei/test-git-pro.git --克隆远程仓库代码至本地仓库,地址为上图中的地址
17.我们进入到该文件夹,里面有一个READEME.md文件,查看里面的内容,同远程仓库中的相同。
18.修改github上README.md文件,内容如下所示,然后点击commit changes即可
# test-git-proI want to test git
19.使用如下命令,从远程仓库中更新本地仓库,再次查看文件中的内容,发现内容已更新
git pull origin master --从远程仓库中更新代码cat README.md
分支管理
1.当我们需要开发一个功能时,但又不确定\这个功能是否可行,为了不污染主分支上的内容,我们可以选择重新创建一个分支,开发完成之后,再将该分支合并到主分支,如果中间需要舍弃该功能,我们是需要删除该分支,切换回主分支即可。下面我们就开始创建分支。
2.使用下面的命令我们可以创建一个新分支并切换到该分支
git checkout -b dev --相当于两条命令 等于 git branch dev --创建一个dev分支 加上 git checkout dev --切换至dev分支
3.创建并切换分支成功之后,我们去修改README.md文件,在最后添加一行内容,如下所示
# test-git-proI want to test gitToday is a beautiful day --最新添加
4.保存成功之后,我们将修改提交至dev仓库,注意,每当有修改需要提交至仓库时都要经过这两步。
git add README.md --提交至git暂存区,提醒git有修改需要提交至仓库 git commit -m "commit to dev" --提交至git仓库
5.下面我们分别来查看一下dev和master分支上的README.md中的文件,发现dev上的文件中内容修改了,而master上的文件中内容并未需改,再一次体现出git的强大之处。
cat README.mdgit checkout mastercat README.md
6.那么怎么才能让master分支也拥有dev分支上的内容,我们只要将dev分支合并至master分支即可
git merge dev --合并dev至master分支
7.合并完成之后,可以根据需要删除dev分支
git branch --查看现有分支git branch -d dev --删除dev分支(已被合并的分支) git branch -D dev --强制删除dev分支(未被合并的分支)
解决冲突
1.假设我们刚刚没有删除dev分支,如果已经删除,请重新创建,下面我们将分支切换至dev分支,再次去修改README.md文件,这次是修改而不是添加,我们将最后一行的beautiful改为good,内容如下
# test-git-proI want to test gitToday is a good day --修改beautiful为good
2.我们将修改提交至dev分支,记住还是git add和git commit这两步
git checkout dev --切换分支为devgit add README.md --将修改内容提交至git暂存区,提醒git有修改内容需要提交至仓库git commit -m "change beautiful to good" --将暂存区内容提交至仓库cat README.md --查看提交之后的文件内容
3.下面我们切换分支到master,然后将README.md中的beautiful修改为sunny,具体内容如下所示。
# test-git-proI want to test gitToday is a sunny day --beautiful改为sunny
4.修改完成将其提交至master分支
git add README.mdgit commit -m "change beautiful to sunny"
5.下面我们将dev分支合并至master分支,发现产生了冲突,打开README.md文件,确实产生了冲突,因为master分支和dev分支同时修改了一处内容,而我们的git并不知道该听谁的,所以产生了冲突,统一了意见(sunny还是good,二者选其一)之后才给合并
git merge dev
6.下面我们将master分支上的README.md中的内容改为如下所示。
# test-git-proI want to test gitToday is a good dayTomorrow is a sunny day
7.再次提交并合并,这时合并成功,说明git也不是万能的,当两个分支同时修改一处内容时,在合并时它无法自行合并,这时就需要我们手动解决冲突,然后再进行合并
git add README.mdgit commit -m "handle conflict"git merge devcat README.md
8.开发完成了,现在可以将本地仓库中的代码提交至远程仓库了
git push origin master --将本地仓库推送至远程仓库
9.推送成功,查看github远程仓库中的READEME.md文件,已经与本地同步
实践
1.下面我们根据上面的方式,将之前创建的nuxt项目使用git来管理。
2.首先我们在github上创建一个空的仓库,同上相同,这里不做截图。
3.我们进入到该项目所在文件夹,右键打开git bash
4.按照下面的步骤,输入命令
git initgit remote add origin git@github.com:shenyanfei/login-pro.gitgit add -A . --一次性推送所有的修改文件git commit -m "the first commit"git push -u origin master
5.此时再查看一下github远程仓库,发现代码已经同步上去了,至于远程库中缺少的一些文件,是因为.gitignore文件在发挥作用
6.git地址:git@github.com:shenyanfei/login-pro.git
参考:
说明:本文为原创作品,若有参考会在文中提及,如有遗漏,涉及侵权,请联系本人,将立即修正。