关于windows下git安装这里就不详细讲了,网上有很多教程
工作原理:
Workspace:工作区
Index / Stage:暂存区
Repository:仓库区(或本地仓库)
Remote:远程仓库
工作原理:
一般工作流程如下:
克隆 Git 资源作为工作目录。
在克隆的资源上添加或修改文件。
如果其他人修改了,你可以更新资源。
在提交前查看修改。
提交修改。
在修改完成后,如果发现错误,可以撤回提交并再次修改并提交。
创建版本库:
什么是版本库?版本库又名仓库,英文名repository,可以简单的理解一个目录,这个目录里面的所有文件都可以被Git管理起来,每个文件的修改,删除,Git都能跟踪,以便任何时刻都可以追踪历史,或者在将来某个时刻还可以将文件”还原”。
在目标路径下使用git init
命令把这个目录变成git可以管理的仓库,这时候目录下会多了一个.git的目录,这个目录就是Git来跟踪管理版本的。
一. 如何把文件添加到版本库
第一步:使用 git add +文件名(全缀)
命令添加到暂存区里面去
第二步:用命令 git commit
告诉Git,把文件提交到仓库。
可以通过命令git status
来查看状态,检查是否还有文件未提交
git diff +文件名(全缀)命令查看文件被修改了什么内容
二.版本回退:
在对文件进行了修改后,使用git log 命令来查看修改历史记录,git log命令可以显示从最近到最远的显示日志,分别显示:
每次提交版本号
最近一次文件内容操作
上一次文件内容操作
如果嫌上面显示的信息太多的话,也可以使用命令 git log –pretty=oneline
一次显示
现在我想使用版本回退操作,我想把当前的版本回退到上一个版本,要使用什么命令呢?可以使用如下2种命令,第一种是:git reset --hard HEAD^
那么如果要回退到上上个版本只需把HEAD^
改成 HEAD^^
以此类推。那如果要回退到前100个版本的话,使用上面的方法肯定不方便,我们可以使用下面的简便命令操作:git reset --hard HEAD~100
即可。
另外可以使用git reflog
获取各个版本号,再使用git reset --hard
版本号回退
三.理解工作区与暂存区:
工作区:
就是你在电脑上看到的目录,比如目录下testgit里的文件(.git隐藏目录版本库除外)。或者以后需要再新建的目录文件等等都属于工作区范畴。
版本库(Repository):
工作区有一个隐藏目录.git,这个不属于工作区,这是版本库。其中版本库里面存了很多东西,其中最重要的就是stage(暂存区),还有Git为我们自动创建了第一个分支master
,以及指向master的一个指针HEAD
。
我们前面说过使用Git提交文件到版本库有两步:
- 第一步:是先使用
git add
把文件添加进去,实际上就是把文件添加到暂存区。 - 第二步:然后使用
git commit
提交更改,实际上就是把暂存区的所有内容提交到当前分支上。
四:Git撤销修改和删除文件操作。
一:撤销修改
在未提交前,发现操作之后的内容有误,需要恢复以前的版本:
1.如果我知道要删掉那些内容的话,直接手动更改去掉那些需要的文件,然后add添加到暂存区,最后commit掉。
2.可以按以前的方法直接恢复到上一个版本。使用 git reset --hard HEAD^
3.首先在做撤销之前,我们可以先用 git status
查看下当前的状态。可以发现,Git会告诉你,git checkout -- file
可以丢弃工作区的修改.
可以使用命令git checkout -- +文件名(全缀)
命令git checkout -- +文件名(全缀)
意思就是,把文件在工作区做的修改全部撤销,这里有2种情况,如下:
1.文件自动修改后,还没有放到暂存区,使用撤销修改就回到和版本库一模一样的状态。
2.另外一种是文件已经放入暂存区了,接着又作了修改,撤销修改就回到添加暂存区后的状态。
(命令git checkout -- +文件名(全缀)
中的 – 很重要,如果没有 – 的话,那么命令变成创建分支了。)
二:删除文件
使用rm+文件名(全缀)
命令
创建与合并分支:
在 版本回填退里,每次提交,Git都把它们串成一条时间线,这条时间线就是一个分支。截止到目前,只有一条时间线,在Git里,这个分支叫主分支,即master
分支。HEAD
严格来说不是指向提交,而是指向master
,master才是指向提交的,所以,HEAD指向的就是当前分支。
命令git checkout –b(branchname)
表示创建并切换,相当于如下2条命令
git branch (branchname)
git checkout (branchname)
git branch
查看分支,会列出所有的分支
可以在master分支上,使用如下命令 git merge (branchname)
把分支上的内容合并到master上,合并后使用命令git branch
删除分支
总结创建与合并分支命令如下:
查看分支:git branch
创建分支:git branch name
切换分支:git checkout name
创建+切换分支:git checkout –b name
合并某分支到当前分支:git merge name
删除分支:git branch –d name
解决合并冲突:
多人协作: