1.怎么回退到之前的commit?
用git reset --hard HEAD回退到最新提交的版本
用git reset --hard HEAD^回退到上一个版本
用git reset --hard commit_id回退到指定commit_id的版本
根据-–soft -–mixed -–hard,会对working tree和index和HEAD进行重置:
git reset -–mixed:此为默认方式,不带任何参数的git reset,即时这种方式,它回退到某个版本,只保留源码,回退commit和index信息
git reset -–soft:回退到某个版本,只回退了commit的信息,不会恢复到index file一级。如果还要提交,直接commit即可
git reset -–hard:彻底回退到某个版本,本地的源码也会变为该版本的内容
用表格表示为:
指令 | 作用范围 |
--hard | 回退全部,包括HEAD, index, working tree |
--mixed | 回退部分,包括HEAD, index |
--soft | 只回退HEAD |
2.git checkout 的用法有哪些?
(1)命令git checkout -- readme.txt
意思就是,把readme.txt
文件在工作区的修改全部撤销,这里有两种情况:
一种是readme.txt
自修改后还没有被放到暂存区,现在,撤销修改就回到和版本库一模一样的状态;
一种是readme.txt
已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后当时的状态。
总之,就是让这个文件回到最近一次git commit
或git add
时的状态。
(2)git checkout -b {{branch-name}} :git checkout
命令加上-b
参数和分支名字表示创建并切换分支
(3)git checkout {{branch-name}} 表示切换到分支,既可以切换本地分支,也可以切换远程分支,另外使用git branch 查看已有分支。
3.git branch 的用法有哪些?
(1)git branch 查看已有分支。
(2)git branch -d {{branch-name}} 删除已有分支。如果使用-D表示即使该分支存在未合并的修改也要删除该分支。
(3)git branch {{branch-name}}表示创建本地分支。
(4)git branch -a来查看本地和远程所有的分支。
(5)git remote update来更新远程信息
3.git reset 的用法有哪些?
(1)实现版本的回退
(2)git reset
命令既可以回退版本,也可以把暂存区的修改回退到工作区。当我们用HEAD
时,表示最新的版本。如git reset HEAD readme.txt,也可以简写为
git reset readme.txt
4.git diff的用法?
用git diff HEAD -- readme.txt
命令可以查看工作区和版本库里面最新版本的区别。
如果是查看工作区和版本库里面最新版本的区别也可以省略 head
5.git pull拉下来的代码是拉到哪里了?
git pull 拉下来的代码实际上是拉倒了git版本区的当前分支上。
整个结构如下图:
6.head是什么意思?
Git必须知道当前版本是哪个版本,在Git中,用HEAD
表示当前版本,也就是最新的提交版本,上一个版本就是HEAD^
,上上一个版本就是HEAD^^
,当然往上100个版本写100个^
比较容易数不过来,所以写成HEAD~100
7.git最有用的指令是哪个?
git --help来查看帮助信息。
8.如何查看git本地分支对应的远程分支?
git config --list
9.切换关联远程主机?
如果需要首先,删除关联的远程主机
git remote remove origin
然后,关联到新的远程主机
git remote add origin ssh://git@github.com:git_username/repository_name.git
注意:origin代表远程仓库 后面紧接着仓库地址
知识扩展:
为了便于管理,Git要求每个远程主机都必须指定一个主机名。git remote
命令就用于管理主机名。
不带选项的时候,git remote
命令列出所有远程主机。
$ git remote origin
使用-v
选项,可以参看远程主机的网址。
$ git remote -v origin ssh://git@github.com:jquery/jquery.git (fetch) origin ssh://git@github.com:jquery/jquery.git (push)
上面命令表示,当前只有一台远程主机,叫做origin,以及它的网址。
克隆版本库的时候,所使用的远程主机自动被Git命名为origin
。如果想用其他的主机名,需要用git clone
命令的-o
选项指定。
$ git clone -o jQuery https://github.com/jquery/jquery.git $ git remote jQuery
上面命令表示,克隆的时候,指定远程主机叫做jQuery。
git remote show
命令加上主机名,可以查看该主机的详细信息。
$ git remote show <主机名>
git remote add
命令用于添加远程主机。
$ git remote add <主机名> <网址>
git remote rm
命令用于删除远程主机。
$ git remote rm <主机名>
git remote rename
命令用于远程主机的改名。
$ git remote rename <原主机名> <新主机名>