目录
读者须知
Git是什么
Git的原理
文件在Git中的几种状态
快速上手
结尾
读者须知
本文章适合从未接触过git,或者需要深度学习Git的用户进行阅读.
文末有详细的文档,读者可以前往Github下载阅读!!三克油
Git是什么
简单来说,Git是一个代码备份工具,你可以使用指令对某些节点打上标注信息并且进行备份.你可以利用他在任何时候对代码进行备份,检阅之前的备份,回退到某个备份.额外的还可以合并他人的备份,并且这一系列可以不需要联网就能进行!(当然有网络就会更方便)
官方一点的讲法,Git 是一款分布式的、可供多人开发的版本控制软件,在多人项目开发当中用于控制项目版本,方便执行该场景下的提交、合并、回退等操作。
Git的原理
- Workspace:工作区,就是你写代码的 IDE 所看见的区域
- Index / Stage:暂存区,执行 add 和 stash 之后,你的代码将会被放入该区域,不过 add 会对其进行追踪
- Repository:本地仓库,执行 commit 之后将记录保存到本地
- Remote:远程仓库,执行 push 之后将本地的记录与远程对比再合并
文件在Git中的几种状态
在系统中,一切资源皆文件,所有的文件可以在IDE查看他们的状态来确认他们被提交到哪个区当中!
Untracked: 未跟踪, 此文件在文件夹中, 但并没有加入到 git 库, 不参与版本控制. 通过 git add 状态变为 Staged.
Unmodify: 文件已经入库, 未修改, 即版本库中的文件快照内容与文件夹中完全一致. 这种类型的文件有两种去处, 如果它被修改, 而变为 Modified. 如果使用 git rm 移出版本库, 则成为 Untracked 文件
Modified: 文件已修改, 仅仅是修改, 并没有进行其他的操作. 这个文件也有两个去处, 通过 git add 可进入暂存 staged 状态, 使用 git checkout 则丢弃修改过, 返回到 unmodify 状态, 这个 git checkout 即从库中取出文件, 覆盖当前修改
Staged: 暂存状态. 执行 git commit 则将修改同步到库中, 这时库中的文件和本地文件又变为一致, 文件为 Unmodify 状态. 执行 git reset HEAD filename 取消暂存, 文件状态为 Modified
快速上手
理解完基本概念,对Git有一个基础的模型,就可以上手写代码了.关于Git的安装,可以搜索Git官网来下载Git Bash ,这里不再讲解!!!
打开Git Bash,可以发现是一个类似于CMD的黑框框,而上面的一系列操作,都需要你以指令的形式敲入这个框当中来进行,你的脑海中要你能够知道你敲的指令是到哪一步了,这样才能够游刃有余.
(1)创建一个本地git仓库
首先找一个空白目录,然后将Git Bash的目录切到该目录,输入:
git init
这样你就拥有了一个仓库,会生成一个隐形的.git目录,存放你的备份信息
(2)设置个人信息
git config --global user.name "你的昵称,用于显示提交信息"
git config --global user.email "你的邮箱"
这样你的提交会带上这些信息,方便他人联系你
(3)拉取一个仓库
git clone "https://xxxx.com/url"
这样可以将别人的仓库拉取到本地的当前路径,拉取完后会有该远程仓库的信息
(4)给远程仓库地址取别名
git remote add origin https:www.github.com/xxx.git
这里将https:www.github.com/xxx.git取一个代号叫origin,如果代号已存在会失败
(4)给远程仓库地址改别名
git remote set-url origin https:www.github.com/xxx.git
这里将代号叫origin的远程仓库地址改为https:www.github.com/xxx.git,如果origin不存在会失败
(5)将本地开发进度推送到暂存区
git add .
这一步会将当前项目所有的文件加入暂存区,后面提交会将暂存区内所有内容提交到本地仓库
(6)提交代码到本地仓库
git commit -m "说明信息"
这一步会将暂存区内所有内容形成提交记录交到本地仓库
(7)切换分支
git checkout -b xxx
这一步会将当前分支复制一份出来,命名为xxx分支,并且将切换到xxx分支
如果不带-b,就是直接切换到xxx分支
(8)获取远程仓库的分支
虽然Git可以不需要联网,但是一般有一个统一的仓库,方便大家更新进度.当你需要将别人的备份合并到你本地时,你需要通过网络从该仓库上获取.
git fetch origin A:B
这一步将远程仓库的A分支,拉取到本地的origin/B分支上,其中形似origin/B的分支被称为远程追踪分支
(9)分支合并
git merge AAA
这一步会将你本地的AAA分支合并到当前所在分支,当然你也可以将其换成某个程追踪分支
(10)拉取并合并分支
git pull origin A:B
没记错的话,这一步会将远程仓库的A分支拉取到本地的origin/B分支上,并自动将origin/B合并到本地的B分支上.也相当于fetch与merge的组合
(11)推送分支
git push -u origin A:B
这一步将本地的A分支推送到远程仓库的B分支,并建立追踪,下次可以直接在A分支上使用git push代替该语句
(12)查看远程仓库的信息
git remote -v
这样可以查看你的git push和git pull的目标仓库是哪个
结尾
Git指令实在是太多了,推荐你看看我整理的文档把 ,祝你早日精通Git成为大神!
最后欢迎批评指正!图片来源应该也包含在参考链接当中.
https://github.com/theOnlyUnique/GitFortune/