时光穿梭机
版本回退
HEAD指向的版本就是当前版本,因此,Git允许我们在版本的历史之间穿梭,使用命令git reset --hard commit_id。<br>
穿梭前,用git log可以查看提交历史,以便确定要回退到哪个版本。
要重返未来,用git reflog查看命令历史,以便确定要回到未来的哪个版本。
工作区和暂存区
工作区(Working Directory)<br>就是你在电脑里能看到的目录,比如我的learngit文件夹就是一个工作区
版本库(Repository)
工作区有一个隐藏目录.git,这个不算工作区,而是Git的版本库。
Git的版本库里存了很多东西,其中最重要的就是称为stage(或者叫index)的暂存区,还有Git为我们自动创建的第一个分支master,以及指向master的一个指针叫HEAD。
管理修改
撤销修改
命令git checkout -- readme.txt意思就是,把readme.txt文件在工作区的修改全部撤销<br>
用命令git reset HEAD <file>可以把暂存区的修改撤销掉(unstage),重新放回工作区:</file>
删除文件
一是确实要从版本库中删除该文件,那就用命令git rm删掉,并且git commit:
远程仓库
添加远程库
git remote add origin git@github.com:michaelliao/learngit.git
git push -u origin master
从远程库克隆
git clone git@github.com:michaelliao/gitskills.git
分支管理
创建和合并分支
解决冲突
Git用<<<<<<<,=======,>>>>>>>标记出不同分支的内容
git log --graph --pretty=oneline --abbrev-commit
分支管理策略
通常,合并分支时,如果可能,Git会用Fast forward模式,但这种模式下,删除分支后,会丢掉分支信息。<br><br>如果要强制禁用Fast forward模式,Git就会在merge时生成一个新的commit,这样,从分支历史上就可以看出分支信息。
git merge --no-ff -m "merge with no-ff" dev
bug分支
管理过程
git stash
git stash list
Feature分支
开发一个新feature,最好新建一个分支;<br>如果要丢弃一个没有被合并过的分支,可以通过git branch -D <name>强行删除。</name>
Rebase
标签管理
创建标签
git tag -a v0.1 -m "version 0.1 released" 1094adb
操作标签