Git 原理 流程 命令

来源:互联网 发布:淘宝店铺手机怎么激活 编辑:程序博客网 时间:2024/06/07 19:38

1.9.1Git工作原理

 

Git工作原理图

 

自我认识(看博客后):

看了好多博客但是感觉都大同小异,还是找不到重心,我说一下我理解的Git原理,Git他的命令特别多 运用也特别的方便,他每次在工作区上面写东西都提交到本地服务区。但是我们在本地服务区与工作区中间有一个暂存区,这个这个暂存区是把我们在工作区的东西 用 add的命令提交到暂存区的。我们最终通过暂存区来提交到本地仓库,我们commit提交只能提交暂存区的数据,暂存区我们一般用index来表示。Git有好多,底层命令,高层命令。所谓的高层命令不过是由多个底层命令得来的。

Git命令是用特别方便,就算是提交到本地仓库了也可以撤回。

Git有一个弊端,就是占用本地的内存,我们每更改一份数据就回生成一份信的数据,反复多次就很占内存,但是我们现在的计算机可以多加硬盘而且内存越来越大,这个问题也就没什么大不了的了。我的理解到此结束。。。。

Git 中有三个重要的区域:工作区域,暂存区,本地数据库

Git版本控制系统

自己理解:Git它是分布式,不像SVN是集中式,集中式主要的东西在主干上,一旦主干坏了,就完了,可是分布式他不一样,如果一个丢失了可以在别的分布上找,他的每次更新都在每个上都有,只要使用Git命令提交推送到别的模块里面就可以了。

 

Git 和其他版本控制系统的主要差别在于,Git 只关心文件数据的整体是否发生变化,而大多数其他系统则只关心文件内容的具体差异。这类系统(CVS,Subversion,Perforce,Bazaar 等等)每次记录有哪些文件作了更新,以及都更新了哪些行的什么内容:

 

Git工作时候的文件快照

 

 

 

1.9.2Git工作流程

基本的 Git 工作流程如下:

1. 在工作目录中修改某些文件。

2. 对修改后的文件进行快照,然后保存到暂存区域。

3. 提交更新,将保存在暂存区域的文件快照永久转储到 Git 目录中。

 

1.9.3Gitd 命令(分支合并)

Git中,可以使用git merge和 git rebase俩个命令来进行分支的合并

如果你没有改变分支,那默认的是本地的分支 master

git merge命令示例:

git merge branchname

这个命令把分支"branchname"合并到了当前分支里面。

 

多路合并

你可以一次合并多个头,只需简单地把它们作为git merge的参数列出.例如,

$ git merge scott/master rick/master tom/master

相当于:

$ git merge scott/master

$ git merge rick/master

$ git merge tom/master

add

添加新文件到 Git代码仓库的索引中

$ git add filename

mv

移动或重命名文件

$ git mv old-filename new-filename

rm

从工作目录和 Git代码索引中删除文件

$ git rm filename

status

查看目前工作目录的代码状态,自上次提交以来的添加、修改和删除等

$ git status

diff

查看自上次提交以来,本地代码改动的具体情况

$ git diff

commit

提交修改的代码(只是提交到本地的代码库,不会推送到服务器)

$ git commit -am '修改说明'

如果觉得刚提交的修改说明写得不够好,可输入以下命令调整

$ git commit --amend

push

将自上次 push以来的,本地历次 commit,推送到服务器

结合我们的实际,应该这样写:

$ git push origin master:your-id

其中,master是本地的分支名;your-id填你在服务器上的 id,服务器的版本库里会有以你的id 为名称的分支。

pull

将别人推送到服务器的代码,拉到你的机器里

$ git pull

log

查看修改记录,含作者、时间、修改说明等

$ git log

show

显示具体的代码改动情况

显示最后一次 commit修改的内容:

$ git show

显示指定 commit修改的内容:

TIPgit log命令中,每条 commit会有一长长的字符串,此即 commid id,取其前面五六位即可。

$ git show commit-id

branch

分支管理

列出所有分支(当前所在分支前会有“*”号):

$ git branch

新建分支:

$ git branch 新分支名

删除分支:

$ git branch -d 欲删除的分支名

【注意!】不要把 ‘-d’写成了 ‘-D’,危险!

· -d:要求:被删除分支的所有修改,已经合并到当前分支;

· -D:直接删除,未合并的代码,将被丢弃!

checkout

恢复某个已修改的文件(撤销未提交的修改):

$ git checkout file-name

切换到另外的分支,进行开发:

$ git checkout branch-name

【注意!】该命令可能伴随大量的文件增删/修改。Windows下,改动已被占用的文件可能会被拒绝,导致版本库出现严重问题。如果确实要这样做,安全起见,最好先注销一次。

原创粉丝点击