Git学习文档

Git 文档

一,初始化

 Git学习文档Git学习文档

二,初始化之后文件夹会新增一个文件夹  .git

Git学习文档

 

.git目录的查找原理:当在Git 工作区的某个子目录下执行操作的时候,会在工作区目录中依次向上递归查找 .git 目录,找到的.git目录就是工作区对应的版本库,.git目录所对应的目录就是工作区的根目录

 

三,git config命令的三种级别:

 

 Git学习文档

 Git学习文档

 

 Git学习文档

 

 Git学习文档

 

--amend 是对刚刚的提交进行修补,不会产生新的提交

 

--allow-empty 使得空白提交被允许

 

--reset-author AuthorID同步修改

 

设置别名:

 Git学习文档

 

 Git学习文档

 

git config --global   本用户

git config --system  本系统

git config --local    本项目

 

 

 

 

Git暂存区

 

(1)修改后的文件可以直接提交吗???

 

 Git学习文档

 

 Git学习文档

 

 

但是不建议这样去使用,因为git 暂存区的设计是git的精华。 日志举例

 

涉及到一个我改动后不想改的操作。

 

 Git学习文档Git学习文档

 

 

工作区      缓存区(暂存区)      本地仓库

 

git diff          比较的是工作区和暂存区

git diff HEAD     比较的是工作区与HEAD

git diff --cached   比较的是暂存区和HEAD

 

 

HEAD

Git学习文档

 

 

暂存区

 Git学习文档

 

工作区

 

 Git学习文档

 

 Git学习文档

比较的是工作区和暂存区

 

 

 Git学习文档

比较的是暂存区和HEAD

 

 

 Git学习文档

比较的是工作区与HEAD

 

 

 

如果功能开发一部分后,领导又不想要了怎么办???

 

(1)未加入缓存区,就是还没有使用git add命令

git checkout . 或者 git checkout 文件名

 

(2)加入了缓存区

使用git reset 命令

 

(3)我已经commit 到本地仓库了怎么办???   ---穿越时空,改变历史

 

  A,  git checkout

 

B,  git branch    创建分支

 

C,  git merge     分支合并(注意容易出现冲突)

 

  Git学习文档

 

 

成功后

 

 Git学习文档

 

分支:

 Git学习文档

 

现实场景:我们在dev环境下开发,然后线上代码出现了问题,需要切换到master环境进行修改,但是我在dev环境下的代码由于还没有开发完成,不能提交到本地仓库。

 

 Git学习文档

 Git学习文档

 Git学习文档

 

使用git stash

 Git学习文档

 

切换之后发现文件中没有之前的内容了。。。。

 

使用 git statsh pop 命令恢复。

 

Git 标签

 

git tag -a v1.4 -m 'my version 1.4'

 Git学习文档Git学习文档

 

 

gitsvn的区别:http://www.jianshu.com/p/bfec042349ca

每一个开发人员的电脑上都有一个Local Repository,所以即使没有网络也一样可以Commit,查看历史版本记录,创建项 目分支等操作,等网络再次连接上Push到Server端。

SVN,当你提交你的完成品时,它将直接记录到*版本库。当你发现你的完成品存在严重问题时,你已经无法阻止事情的发生了。如果网路中断,你根本没办法提交!而Git的提交完全属於本地版本库的活动。而你只需“推”(git push)到主要版本库即可。Git的“推”其实是在执行“同步”(Sync)。

区别还有很多,但是分布式和集中式是最主要的。。

 

 

 

关于git stash

https://gist.github.com/subchen/3409a16cb46327ca7691

 

 

Git学习文档