Git学习

#Git学习 ##1.Git基本命令 git branch 查看本地分支git

git branch -r查看远程分支学习

git checkout -b backend_1_39_0_base 建立本地分支指针

git branch —set-upstream-to=origin/backend_1_39_0_base 与远程分支创建联系对象

git status 获取本地分支状态it

git pull 拉取远程仓库ast

git add . 提交到暂存区stream

git commit -m "lalalal"提交到本地仓库object

git push 提交到远程仓库file

git reset --hard commit_id 转换到某次commit方法

git log 能够查看提交历史,以便肯定要回退到哪一个版本

git reflog 查看命令历史,以便肯定要回到将来的哪一个版本

git diff #是工做区(work dict)和暂存区(stage)的比较

git diff --cached 是暂存区(stage)和分支(master)的比较

git checkout -- file 能够丢弃工做区的修改(file是文件名)

命令git checkout -- readme.txt意思就是,把readme.txt文件在工做区的修改所有撤销,这里有两种状况:

一种是readme.txt自修改后尚未被放到暂存区,如今,撤销修改就回到和版本库如出一辙的状态;

一种是readme.txt已经添加到暂存区后,又做了修改,如今,撤销修改就回到添加到暂存区后的状态。

总之,就是让这个文件回到最近一次git commit或git add时的状态。

git checkout <name> 切换分支

git merge <name> 合并某分支到当前分支

##2.Git对象模型 每一个对象(object) 包括三个部分:类型,大小和内容。大小就是指内容的大小,内容取决于对象的类型,有四种类型的对象:"blob"、"tree"、 "commit" 和"tag"。

  • “blob”用来存储文件数据,一般是一个文件。
  • “tree”有点像一个目录,它管理一些“tree”或是 “blob”(就像文件和子目录)
  • 一个“commit”只指向一个"tree",它用来标记项目某一个特定时间点的状态。它包括一些关于时间点的元数据,如时间戳、最近一次提交的做者、指向上次提交(commits)的指针等等。
  • 一个“tag”是来标记某一个提交(commit) 的方法。

每一个目录都建立了 tree对象 (包括根目录), 每一个文件都建立了一个对应的 blob对象 . 最后有一个 commit对象 来指向根tree对象(root of trees), 这样咱们就能够追踪项目每一项提交内容

##3.工做区和暂存区

工做区:电脑能看到的目录

版本库(Repository)

工做区有一个隐藏目录.git,这个不算工做区,而是Git的版本库。

Git的版本库里存了不少东西,其中最重要的就是称为stage(或者叫index)的暂存区,还有Git为咱们自动建立的第一个分支master,以及指向master的一个指针叫HEAD。

把文件往Git版本库里添加的时候,是分两步执行的:

第一步是用git add把文件添加进去,实际上就是把文件修改添加到暂存区;

第二步是用git commit提交更改,实际上就是把暂存区的全部内容提交到当前分支。

相关文章
相关标签/搜索