1.核心概念
工作区、暂存区和版本库
工作区:简单理解就是需要进行版本的某个文件夹(假设为demo),这个文件夹有一些特殊之处——多了.git这个隐藏的文件夹
(注意,使用 git add 命令的文件在工作区)
版本库:demo文件夹下的.git文件夹就是版本库,也叫仓库
(注意,使用 git commit 命令的文件在版本库)
暂存区:暂存区可以理解为一个虚拟工作区,这个虚拟工作区会跟踪工作区的文件变化(增删改等操作)。这个工作区的位于.git文件夹下的index目录下(当前文件更改没add的在暂存区)
2.基本操作
1.在文件夹中初始化一个Git仓库
控制台切换到工程目录使用
git init
2.加入工作区
git add加文件名或文件夹名
git add
3.提交到版本库
git commit
4.查询历史版本
git reflog
5.返回到历史版本
其中filename 为reflog查询的版本的名称
使用
git checkout filename
或者
git reset --hard filename
3.git合并分支
分支首先是属于版本区,所谓合并分支其实是合并commit后的不同版本。只不过这个两个要合并的版本属于不同分支而已。
使用git init新建版本控制默认会有一个master分支,那么通常需要新建一个分支来,最后合并master分支和新建的分支。
操作步骤如下
(1)在某一版本上新建分支
使用命令
git checkout -b mynewbranch
则新建的分支名为mynewbranch,现在有两个分支master与mynewbranch分支。
(2)当修改mynewbranch分支并生成新的此分支版本后,使用
git merge master
合并分支,注意,当前分支为mynewbranch时用此命令
(3)然后git 会自动在项目中显示文件的不同之处,修改成你想要的版本后使用
git add
保存工作区
使用
git commit -m 646b4cf
确认合并并提交,其中646b4cf为合并版本之一的名称,此时git会出现新的合并后的版本。
回退到老版本修改代码并且commit,会出现新的分支,并提示
fatal: You are not currently on a branch.
To push the history leading to the current (detached HEAD)
state now, use
git push origin HEAD:<name-of-remote-branch>
合并代码的解决方法
git push origin HEAD:master
参考博客
http://blog.csdn.net/u011116672/article/details/51253234
http://blog.csdn.net/ppn029012/article/details/8878416
http://blog.jobbole.com/78960/