git的基本用法

发布于 2017-09-03  约 6 分钟

本博主前一段时间刚接触git,鉴于以前没有用过git,而且作为前端届中的一名有理想的菜鸟,应该要掌握git的基本使用,所以私下花了一些时间去学习了一下基本用法,在学习的过程中也总结了一些看法和心得,因此在这里分享一下。
接下来主要分四个方面分享git:

  1. git的概念;

  2. git仓库的初始化;

  3. git的工作原理;

  4. git常用的命令;


1.git的概念:
在说git之前,先说一下另一个版本控制系统---svn;
svn:集中式版本控制器,它有一个中央服务器,完整的项目版本就放在这个中央服务器上,每个开发者都要从中央服务器下载项目,然后再进行开发,最后上传给中央服务器。

clipboard.png

git的定义:git是分布式版本控制系统,适用于多人同时开发同一个项目的应用场景;
特点:不需要中央服务器,不用联网,每个开发者都拥有一套完整的项目版本,多人协助,且可以多分支开发,然后再合并。

clipboard.png

2.git仓库的初始化
仓库:版本库,项目的目录,仓库中的所有文件都交由git管理,包括修改,删除,恢复等;
假设在本地F盘的workplace中创建一个git仓库:
step1:切换到F盘中的workplace中;

 cd F:/
 cd workplace/
 mkdir testgit
 cd testgit/
 pwd //用来查看当前路径,从而判断路径是否正确

当创建了目录后,可以在该目录下创建各种后缀名的文件,
最后创建该目录的git仓库:

git init

之后将目录中的文件添加到git仓库中(后面会介绍到);

3.git的工作原理
在使用git时,应该知道几个专业名词:工作区,缓存区,版本库;
工作区:项目目录中除git仓库外(git仓库一般作为隐藏文件存在);
缓存区:git仓库中的一个区域(stage区域),专门用来存在临时性文件(就是git add添加的文件),stage区域是在git仓库中的index文件夹里;
版本库:git仓库所包含的文件,也就是stage区域中所要提交到的地方;

clipboard.png

首先:工作区中某个文件添加新的内容或者修改了某部分内容,添加或修改后可以将文件通过git add 添加到stage区;
其次:在stage区中会对文件中添加或者修改的内容进行处理;

  1. 将新增内容或修改的内容放到Object区中,Object区会创建一个对象来存放该部分内容;

  2. stage区会得到Object区中相对应的objectId并保存(objectId相当于一个索引);

最后:stage区通过git commit提交到本地的版本库,此时master会得到objectId,并根据objectId在Object区中找到相对应的内容;

4.git常用的命令

1.文件处理:

git add filename //添加文件到stage区
git commit -m "注释" //将git add 到stage区中的文件提交到版本库
git  status  //查看当前stage区中文件是否commit
git diff filename //查看修改过的文件内容

2.取消缓存(即文件还在stage区,没有commit )

git checkout --file //撤销在workspace区文件的修改,还需要撤销后git add 到stage区
git reset Head --file //撤销stage区文件的修改,恢复到上一版的模样
git rm -cached file //删除stage区中文件
git rm file //删除workspace和stage区中的文件

3.版本处理:

git log //查看历史版本
git reflog //查看版本号
git reset --hard 指定的版本号 //版本回退到指定的版本号
git reset --hard Head~N //指定回退到前N个的版本号

4.分支处理

git branch //查看当前分支
git branch branchName //创建分支
git checkout branchName //切换到指定分支
git checkout -b branchName //创建并切换到指定分支
git checkout -d branchName //删除分支
git merge branchName //将分支与master分支合并

5.远程库操作

git clone url //克隆远程仓库的一个项目版本到本地,并生成与项目名同名的目录(适用于首次)
git fetch //提取远程仓库数据来更新本地数据,但更新后还需要合并到开发者当前的分支上
git pull //提取远程仓库数据来更新本地数据,并尝试合并到开发者当前的分支上
git push [remoteName] [branchName] //将本地的分支推送到远程仓库同名分支上
git remote //查看远程仓库
git remote -v //查看远程仓库和url
git remote add name url //将本地仓库以name的名义推送到指定url的远程仓库
git remote rm  name //删除远程仓库

6.代码暂存

git stash //将当前工作区未提交的内容推送到git栈,然后工作区会变回原来的样子,可多次提交
git stash list //查看git栈中所有git stash放进去的版本号
git stash apply //将git栈中最近一次的版本号恢复到工作区中
git stash apply stash@{n} //将指定git栈中某个版本号恢复到工作区
git stash pop //语法和apply一致,不同的是apply恢复后不会删除git栈中恢复的版本,而pop则会
git stash clean //清楚git栈

以上就是博主对git的初步认识,git的用法远不止以上这些,所以还需要在日后的项目开发中补充git的知识。

阅读 925发布于 2017-09-03

推荐阅读

2574 人关注
173 篇文章
专栏主页
目录