关于Git学习笔记(一)

版本控制工具分类:集中式版本控制(SVN)和分布式版本控制(git)。

git的核心思想:1.分布式    各个repo都具有完整的镜像        2.快照    git每次记录的都是完整的repo信息    3.状态区     4.分支

创建git仓库

1.git  init  将一个目录快速设置成Git的代码仓库。

2.git  clone  用于clone一个远程仓库到本地。

提交修改

每当开发完成一定的功能后,就需要将完成的代码提交到仓库,进行版本的一次提交。

add&&commit
git statue  查看仓库状态变化,git  add <file>的方式添加版本控制(添加到了缓存区),在通过git  commit指令提交到代码仓库。
通过git  log查看提交记录。或是用git  shortlog。

追加修改

若commit后发现有错误,可以随时进行修改。用git   commit -amend实现。

查看代码仓库状态

通过git status可以告诉开发者当前仓库中所有的文件的版本追溯,当前哪一个文件进行了修改。还可以通过git   diff指令查看发生变化的文件的具体变化。git  diff还可以比较提交节点间的差异。 如git  diff  HEAD比较早前版本的差异。diff工具通常功能更加强大,如Medl,beyond compare等。

追溯历史版本(通过alias给指令设置别名以取代原先的复杂指令)

git  log 查看所有历史提交记录

git  blame  追溯一个指定文件的历史修改记录

工作区和缓存区

Git通常是工作在三个区域,工作区,缓存区和历史区。工作区即开发和修改代码的区域,历史区保存各版本的区域,暂存区则是git的核心,add语句就是将修改记录保存到暂存区,暂存区保存在.git文件下的index的文件夹中。开发者所做的代码提交记录都保存在这里。commit将缓存区的内容提交到仓库。(git管理的是修改的内容,而不是文件)

git回退

checkout&&reset

git checkout是用于还原一个代码仓库中的文件。修改文件之后,执行add之前,如果执行checkout指令,则会抛弃当前本地的所有修改,恢复到上次最后提交的版本。若已经执行了add,则会将文件恢复到执行add操作后的最初状态,即恢复add之后的修改,add之前的修改没有办法处理。故checkout是用版本库里的版本替换工作区的版本。用git  reset  HEAD <file>将一个文件移出缓存区。若已经执行了commit,则用git  reset  <last commit SHA> <file>执行回退,git  reset的原理是重置掉提交记录,但不修改本地的工作区,从而进行新的提交。(SHA即commit   ID)

回退版本

git中HEAD表示当前版本,用HEAD^,HEAD^^等表示之前的版本,往上一百个版本,则写成HEAD~100。

如;git reset --head HEAD^。(这里也可以用commit  ID代替HEAD^)

操作历史(git  reflog)

git   文件操作

git  提供了类似Linux的文件管理的基本指令,常见的操作有删除和暂存文件。

git  rm

与shell的rm删除指令相比,执行git  rm指令,然后再更新时可以省去git  add指令。

猜你喜欢

转载自www.cnblogs.com/android428/p/9503257.html