git

git核心理论

git本地有三个工作区域:工作目录(working directory)、暂存区(stage/index)、资源库(repository)或git directory。如果加上远程git 仓库(remote directory)就分为四个工作区域,文件再四个区域的转换关系如下:

remote directory

git push git pull

history

git commit git reset

stage

git add files git checkout

working directory

  • workspace:工作区就是平时存放项目代码的地方

  • index/state:暂存区,用于临时存放你的改动,事实上只是一个文件,保存即将提交到文件列表信息。

  • repository:仓库区(本地仓库),就是安全存放数据的位置,这里面有你提交到所有版本的数据,其中HEAD指向最新放入仓库的版本。

  • remote :远程仓库,托管代码服务器,可以简单的认为是你项目组中一台电脑用于远程数据交换。

本地的三个区域确切的说应该是git仓库中HEAD指向的版本。

工作流程:

  • 再工作目录中添加,修改文件
  • 将需要进行版本管理的文件放入暂存区域;git add .
  • 将暂存区的文件提交到git 仓库。git commit

因此,git管理文件有三种状态:已修改(modify),已暂存(staged),已提交(committed)

git 文件操作:

版本控制就是对文件进行版本控制,要对文件进行修改提交等操作,首先要知道文件当前的状态,不然可能会提交了现在还不想提交的文件,或者要提交的文件没有提交上。

  • 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 config --list //查看配置
git init //初始化仓库
git add . //添加暂存区
git commit -m //提交暂存区的文件到本地仓库  -m 提交消息。

文件忽略:

git 分支

git branch -r //列出所有分支
git branch [branch-name] //新建一个分支,但仍然停留再当前分支
git checkout -b [brach] upstream/dev //新建一个和远程分支平行的branch并切换到该分支。
git merge [branch] //合并指定分支到当前分支
git branch -d branch-name //删除分支
git push origin --delete branch-name //删除远程分支

git log

git log 查看提交日志,多次提交分别做了啥事情

git log --oneline //简化log到一行
git log -p //详细

git checkout 把握git状态 git status reset

git chechout -- filename 取消当前的改变,

如果加入到索引区,如果想返回之前状态。

git reset HEAD <file> ,退出索引区。

再 git checkout -- filename 就取消修改。

git diff --cached 将加入到索引区的文件进行diff比较。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 基于廖雪峰老师的git教程整理 一.Git简介 git是用C语言编写的分布式控制版本系统 安装Git 在Mac O...
    OhYoung1990阅读 209评论 0 0
  • Git 命令行学习笔记 Git 基础 基本原理 客户端并不是只提取最新版本的文件快照,而是把代码仓库完整的镜像下来...
    sunnyghx阅读 3,963评论 0 11
  • Git 基础 基本原理 客户端并不是只提取最新版本的文件快照,而是把代码仓库完整的镜像下来。这样一来,任何一处协同...
    __silhouette阅读 15,958评论 5 147
  • Git基础 获取Git仓库的两种方式 将尚未进行版本控制的本地目录转换为Git仓库 从其他服务器==克隆==一个已...
    squarejohn_5dc8阅读 342评论 0 1
  • 初识git git官网 作者简介 作者:林纳斯·托瓦兹(Linus Benedict Torvalds, 1969...
    冷若秋枫阅读 263评论 0 1