Git基础介绍和使用

GIT介绍  

Git 是一个开源的分布式版本控制软件,用以有效、高速的处理从很小到很是大的项目版本管理。 Git 最初是由Linus Torvalds设计开发的,用于管理Linux内核开发。Git 是根据GNU通用公共许可证版本2的条款分发的自由/免费软件,安装参见:http://git-scm.com/git

GitHub是一个基于Git的远程文件托管平台(同GitCafe、BitBucket和GitLab等)。github

Git自己彻底能够作到版本控制,但其全部内容以及版本记录只能保存在本机,若是想要将文件内容以及版本记录同时保存在远程,则须要结合GitHub来使用。使用场景:缓存

  • 无GitHub:在本地 .git 文件夹内维护历时文件
  • 有GitHub:在本地 .git 文件夹内维护历时文件,同时也将历时文件托管在远程仓库

其余:服务器

    集中式:远程服务器保存全部版本,用户客户端有某个版本
    分布式:远程服务器保存全部版本,用户客户端有全部版本app

git工做原理

git的工做原理仍是比较简单的,当咱们建立了本地代码仓库后,会在本地代码仓库的根目录中生成一个.git的隐藏文件。分布式

.git为一个文件目录,又叫作版本库。在本地代码仓库文件夹中,除.git目录以外的全部与.git同级的目录及其子目录都叫作工做区。设计

工做区(Working Directory):仓库文件夹里出.git目录之外的内容版本控制

版本库(Repository):.git目录,用于存储记录版本信息指针

暂缓区(stage),分支(master):git自动建立的第一个分支blog

HEAD指针:用户指向当前分支

git add和git commit的原理

git add:把文件修改或者新添加的的文件添加到暂存区

git commit:把暂存区的全部内容提交到当前分支

下图就能够解释git add 和 git commit的原理:

git经常使用的命令

git init 初始化
 
git add filename.txt  添加要往远程传的文件到一个临时列表
 
git commit -m "xxx"  # 说明为啥上传
 
git push origin master  # 上传
 
git clone https://github.com/triaquae/Weibo  # 克隆远程的项目
 
git status  查看修改结果
 
git log  查看修改过几回
 
git reflog  查看修改事后全部历史操做
 
git log --pretty=oneline  查看修改过的全部版本
 
git reset --hard 加版本  回滚到哪一个版本
 
git reset --hard head^  回滚到上个版本
 
git reset --hard head^^  回滚到上上(回滚到上两个)个版本
 
git reset HEAD filename.txt  撤回提交到暂存区的操做
 
git checkout --filename.txt  撤销工做区操做(能够多个文件)
 
git rm filename.txt  删除暂存区
 
git checkout -b "dev"  建立分支(引号里是分支名)
 
git push origin xxx  提交到分支库(xxx表示分支名)
 
git branch  查看分支
 
git checkout dev  切换到分支库
 
git merge dev  合并分支库到主库(dev表示分支库)
 
git pull  拉远程库的文件
 
git stash  缓存工做区的内容
 
git stash list  查看暂存区的内容
 
git stash apply  把暂存区的内容恢复到工做区
 
git stash pop  把暂存区的内容恢复到工做区而且把暂存区的删除
 
版本回退:
git reset --hard HEAD : 回退到当前的版本
git reset --hard HEAD^ :  回退到上一个版本
git reset --hard HEAD^^ : 回退到上上个版本
git reset --hard HEAD~100 : 回退到前100版本
git reset --hard 版本号(前5位)
咱们修改或者新添加的文件起初是处于工做区,经过git add命令能够把工做区的文件移动到版本库中的暂缓区(stage)。

处在暂缓区(stage)的代码能够经过git commit -m “提交的注释” 提交到版本库中的分支(master)。

处在分支(master)中的代码能够经过git push命令push到共享版本库。

注意:只有分支中的文件才能够push到共享版本库。
相关文章
相关标签/搜索