Git回退版本的速度非常快,在Git内部有个指向当前版本的HEAD指针,当你回退版本的时候,Git只是把指针指向的位置换了一下。
$ git reflogreflog用来记录你的每一次命令Git的版本库里存了很多东西,其中最重要的就是称为stage(或者叫index)的暂存区,还有Git为我们自动创建的第一个分支master,以及指向master的一个指针叫HEAD。
我们把文件往Git版本库里添加的时候,是分两步执行的 第一步是用git add把文件添加进去,实际上就是把文件修改添加到暂存区;第二步是用git commit提交更改,实际上就是把暂存区的所有内容提交到当前分支。因为我们创建Git版本库时,Git自动为我们创建了唯一一个master分支,所以,现在,git commit就是往master分支上提交更改。你可以简单理解为,需要提交的文件修改通通放到暂存区,然后,一次性提交暂存区的所有修改。
$ git checkout -- file 丢弃工作区的修改$ git reset HEAD filereset命令既可以回退版本,也可以把暂存区的修改回退到工作区。当我们用HEAD时,表示最新的版本$ git rm file 从版本库中删除该文件$ git checkout -- file 如果删除错了通过git checkout可以一键还原$ ssh-keygen -t rsa -C GitHub账户名 创建SSH Key$ git remote add origin GitHub地址 将本地仓库与远程仓库关联,必须有拥有SSH Key的公钥添加后,远程库的名字就是origin,这是Git默认的叫法,也可以改成别的,但是origin这个名字一看就知道是远程库。
$ git push -u origin master 把本地库的内容推送到远程,用git push命令,实际上是把当前分支master推送到远程。$ git clone GitHub地址 克隆 GitHub地址的仓库$ git branch 查看分支$ git branch 创建分支$ git checkout 切换分支$ git checkout -b 创建+切换分支$ git merge 合并某分支到当前分支$ git branch -d 删除分支$ git log --graph 查看分支合并图通常,合并分支时,如果可能,Git会用Fast forward模式,但这种模式下,删除分支后,会丢掉分支信息。
$ git merge --no-ff -m "merge with no-ff" dev 使用--no-ff参数,禁用Fast forward$ git stash 将分支储存起来,等需要时恢复$ git stash list 查看储存起来的分支恢复储存分支的两种方法:一是用git stash apply恢复,但是恢复后,stash内容并不删除,你需要用git stash drop来删除。另一种方式是用git stash pop,恢复的同时把stash内容也删了:
$ git branch -D feature-vulcan 强行删除分支$ git remote 查看远程库的信息$ git remote -v 显示更详细的信息$ git push origin master 推送分支,就是把该分支上的所有本地提交推送到远程库。推送时,要指定本地分支,这样,Git就会把该分支推送到远程库对应的远程分支上$ git tag v1.0 当前版本打一个新标签$ git tag 查看所有标签$ git tag v0.9 -m "version 0.9" commit id 给某一个提交的版本打标签,-m说明文字$ git show <标签> 查看标签信息$ git tag -d <标签> 删除标签$ git push origin <标签> 推送标签到远程仓库$ git push origin --tags 将所有标签全部推送到远程仓库$ git tag -d <标签> 如果标签已经推送到远程,要删除远程标签先删除本地标签$ git push origin :refs/tags/<标签> 然后从远程删除 相关资源:七夕情人节表白HTML源码(两款)